>>> On 9/13/2010 at 3:07 PM, in message
<da69eb53d9a64f0ab97a9454a66df...@peterphaald04f>, "Peter Phaal"
<peter.ph...@inmon.com> wrote:
> We have started this project and the pieces seem to be falling into place
> nicely. We already have the first metrics showing up in the web interface.
> 
> The changes needed to implement sFlow support are contained entirely within
> the gmond.c file and are limited to the process_udp_recv_channel method.
> 
> Adding the following lines to the gmond.conf file enables sFlow support:
> /* sFlow channel */
> /* Note: 6343 is the IANA registered port for the sFlow protocol */
> udp_recv_channel {
>   port = 6343
> }
> 
> Our initial goal is to populate all the standard metrics from libmetrics.
> Once we have that working, we will send a patch containing the changes to
> gmond.c.
> 


Sorry to jump into this thread so late but I thought that I would throw my 2 
cents in.  

I finally got a chance to take a look at the code.  I was able to compile it 
but ran into some C99 issues with variable declarations.  Once I got the code 
to compile, I was able to take a closer look at what it was doing.  From what I 
could tell, it looks like the sflow integration is based around reading XDR 
packets from an sflow agent and turning them into gmond spoofing metrics.  My 
first question after seeing this is why does this code have to be built into 
gmond.c?  Why can't it just do the same thing in a module that would be plugged 
into gmond?  

The reason why I ask this is because we went to a lot of work to pull all of 
the metric gathering out of gmond and into modules (including all of the 
standard metrics).  Some of the main reasons for this is so that metric 
gathering could be pluggable without having to affect the gmond code itself.  
That way if a bug was ever found and fixed for a specific metrics, we wouldn't 
have to re-release all of Ganglia just for one metric fix.  Also, modules give 
the user the ability to customize each gmond agent to conform to the specific 
needs of the node where gmond is running.  Regarding sflow, it seems that in 
order to integrate the sflow metrics into the Ganglia monitoring system, only a 
single gmond node needs to be configured to gather the sflow metrics.  All of 
the other gmond agents can continue to be configured and run as they were.  
Given that, it would make more sense to integrate sflow as a module that could 
be loaded under a single gmond agent rather than replacing all the gmond agents 
or even upgrading just a single agent.  It would also seem to follow the way 
that other metric modules and spoofing modules have been implemented as well.

Implementing the sflow integration as a module would also allow it to change 
whenever a newer version of sflow is released or whenever the sflow spec or 
transport changes.  A user could simply upgrade his ganglia sflow module and be 
up to date with the latest spec without having to wait for the Ganglia project 
to re-release ganglia.

Anyway, the more that I am learning about sflow and what it does especially in 
relation to Ganglia and what it does, this all seems like a really cool idea.  
I am looking forward to seeing this integration done especially if it is 
through a pluggable module.

Brad




------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Ganglia-developers mailing list
Ganglia-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-developers

Reply via email to