Ahh.. fair enough. I'll see what I can do. :-)
Thanks!

On Thu, Jul 2, 2009 at 10:20 AM, Brad Nicholes<bnicho...@novell.com> wrote:
> Creating a standard template for building a module independent of the core is 
> something that we really haven't gotten around to doing.  So I think in this 
> instance, you would be the template creator :).  You should be able to start 
> with the Ganglia autoconf stuff and derive something from there.  Sorry, I 
> wish we had a standard template because I know that would make life easier.
>
> Brad
>
>
>>>> On 7/1/2009 at 7:46 PM, in message
> <8121824c0907011846q7934d103t980e76728842f...@mail.gmail.com>, JB Kim
> <jbremn...@gmail.com> wrote:
>> Thanks for the feedback. Creating these metrics into independent
>> module makes sense. I'll refactor it to isolate the code within
>> mod_iostat.c and see how it works out.
>> Before I do so, is there a "standard" template for configure/make
>> files to build these DSO modules independently?
>> Having such deployment template (perhaps also .spec) structure would
>> encourage other developers to contribute code more easily, I think.
>>
>> On Wed, Jul 1, 2009 at 11:15 AM, Brad Nicholes<bnicho...@novell.com> wrote:
>>>   Thanks for the new module code.  I haven't had a chance to actually look
>> at the code yet but considering that this is a new metric module, it might be
>> better to decouple it from the rest of the Ganglia code as an independent
>> module rather than having the code integrated into metrics.c and the core
>> build system.  If the module is independently buildable then it really
>> doesn't matter if it is linux only or cross platform.  Even if the module
>> remained linux only, only those who are interested would download, build and
>> use it which is fine.  It would also make it much easier for us to simply
>> drop the tarball into the /contrib directory of SVN in order to make it
>> available immediately rather than having to integrate it into the core build
>> and re-release the whole project.  The ideal situation would be to also
>> include a .spec file that would allow the module to be built and packaged
>> into its own RPM.  But just a buildable source tarball would be great.
>>>
>>>   It is good to see people contributing new modules to the project even if
>> they are only for a single platform.  The more modules we have to offer, the
>> better the whole project is for everybody.
>>>
>>> Brad
>>>
>>>>>> On 6/30/2009 at 9:00 PM, in message
>>> <8121824c0906302000y181b23adr87ebd98124450...@mail.gmail.com>, JB Kim
>>> <jbremn...@gmail.com> wrote:
>>>> Hi folks
>>>>
>>>> Wow, it didn't occur to me this thread was more than a year ago. Time
>>>> surely flies when you have a newborn at home. :-)
>>>> In any case, I've made necessary modifications to 3.1.2 release to
>>>> allow iostat-related metrics for linux.
>>>>
>>>> Here is the tarball that compiles on linux and reports 7 extra metrics
>>>> from a new DSO module called iostat.
>>>>
>>>> http://www.remnantone.com/pkgs/ganglia/ganglia-3.1.2_io.tar.gz
>>>>
>>>> The mod_iostat contains the following metrics:
>>>>
>>>>   - io_readtot
>>>>   - io_readkbtot
>>>>   - io_writetot
>>>>   - io_writekbtot
>>>>   - io_svctmax
>>>>   - io_queuemax
>>>>   - io_busymax
>>>>
>>>> The code changes have been made to:
>>>>
>>>>   - libmetrics/libmetrics.h
>>>>   - libmetrics/linux/metrics.c
>>>>   - gmond/modules/mod_iostat.c
>>>>   - Makefile.am changes to include a new module build
>>>>
>>>> There are couple of points:
>>>>
>>>> * The new set of metrics are only for linux at this point. (supports
>>>> 2.4 and 2.6 kernels)
>>>>   As you can see, all of the metric functions are implemented within
>>>> libmetrics/linux/metrics.c
>>>> * These metric functions report aggregated values. 4 of them are sums
>>>> across disks, 3 of them are max across the disks.
>>>>   These metrics would be ideal for cluster computing nodes which often
>>>> has 1 or 2 disks, not for large servers with multitude of disks.
>>>> * I had thought about making things isolated to 
>>>> modules/iostat/mod_iostat.c.
>>>>   However, since the current implementation only works on linux, I
>>>> decided it was best to place it in libmetrics/linux, which is
>>>>   already os-dependent code, rather than trying to support multi-os
>>>> build with bunch of #ifdef/#endif inside of
>>>> modules/iostat/mod_iostat.c.
>>>> * Future improvements should consider reporting independent io metrics
>>>> for user supplied list of disks instead of aggregating the whole.
>>>> * Lastly, apologies for ugly code...
>>>>
>>>> If there's sufficient interest and you would like these metrics to be
>>>> included in the subsequent release, I'll enhance/modify the code as
>>>> necessary.
>>>>
>>>> Thanks!
>>>>
>>>> On Tue, Apr 29, 2008 at 8:58 PM, JB Kim<jbremn...@gmail.com> wrote:
>>>>> Sure, sounds like a plan. I'll take a crack at it and let you know.
>>>>>
>>>>> On Tue, Apr 29, 2008 at 12:18 PM, Brad Nicholes <bnicho...@novell.com> 
>>>>> wrote:
>>>>>> >>> On 4/28/2008 at 8:26 PM, in message
>>>>>> <8121824c0804281926wb285fe4u5f269cfbf58a0...@mail.gmail.com>, "JB Kim"
>>>>>>
>>>>>> <jbremn...@gmail.com> wrote:
>>>>>> > Folks,
>>>>>> >
>>>>>> > I've made some changes to ganglia 3.0.7 gmond code to provide 
>>>>>> > aggregated
>>>>>> > disk IO
>>>>>> > statistics for linux hosts. Since a given host can have one or more 
>>>>>> > disks,
>>>>>> > the
>>>>>> > values from each individual disk are aggregated to a sum or to a max.
>>>>>> >
>>>>>> > It seems like a lot of folks are using a wrapper for iostat command to 
>>>>>> > send
>>>>>> > data
>>>>>> > via gmetric. While this is also a useful approach, I thought it would 
>>>>>> > be
>>>>>> > nice
>>>>>> > and convenient to have this reported from gmond, although the data
>>>>>> > would be summarized
>>>>>> > for an entire host. The code simply reads from either /proc/partitions
>>>>>> > or /proc/diskstats, and
>>>>>> > maintains the old and the new values for each disk to calculate the 
>>>>>> > diff.
>>>>>> >
>>>>>> > These are the new metrics that were added:
>>>>>> >
>>>>>> >
>>>>>> >   Ganglia_metric_cb_define("io_readtot",          io_readtot_func);
>>>>>> >   Ganglia_metric_cb_define("io_readkbtot",        io_readkbtot_func);
>>>>>> >   Ganglia_metric_cb_define("io_writetot",         io_writetot_func);
>>>>>> >   Ganglia_metric_cb_define("io_writekbtot",       io_writekbtot_func);
>>>>>> >   Ganglia_metric_cb_define("io_svctmax",          io_svctmax_func);
>>>>>> >   Ganglia_metric_cb_define("io_queuemax",         io_queuemax_func);
>>>>>> >   Ganglia_metric_cb_define("io_busymax",          io_busymax_func);
>>>>>> >
>>>>>> >
>>>>>> > If you are interested, you can download and try out the source here:
>>>>>> >
>>>>>> > http://www.remnantone.com/pkgs/ganglia/ganglia-3.0.7_io.tar.gz
>>>>>> >
>>>>>> > and the README doc about the modifications I've made:
>>>>>> >
>>>>>> > http://www.remnantone.com/pkgs/ganglia/README
>>>>>> >
>>>>>> >
>>>>>> > I have been running this modified gmond for sometime at work and it
>>>>>> > worked out quite
>>>>>> > nicely.
>>>>>> >
>>>>>> > I don't know how relevant this is considering the pending move to more
>>>>>> > modular
>>>>>> > framework for gmond core metrics in 3.1.x, but hopefully it will be
>>>>>> > useful for folks still dependent on version 3.0.x. Having said that,
>>>>>> > I'd be happy to help
>>>>>> > integrate these metrics into 3.1.x framework as .so loadable modules,
>>>>>> > if there's sufficient
>>>>>> > interest.
>>>>>> >
>>>>>>
>>>>>> I would suggest that you convert these metrics to modules first so that 
>>>>>> they
>>>> can be included as part of the 3.1.x branch.  Then if there is enough
>>>> interest in backporting them, they can be backported to the 3.0.x branch.
>>>>>>
>>>>>> Brad
>>>>>>
>>>>>>
>>>>>
>>>
>>>
>>>
>
>
>

------------------------------------------------------------------------------
_______________________________________________
Ganglia-developers mailing list
Ganglia-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-developers

Reply via email to