I have just merged the monitor-core-XDR-refactor branch back into trunk.  
The work that was done in the branch touched a lot of the core functionality of 
gmond, gmetad and gmetric.  
   First of all, this new code has refactored the XDR packets by splitting them 
into value packets and metadata packets.  The idea here is that gmond will 
normally just send a value packet on the multicast channel that just carries 
enough information so that other listeners know where the packet came from, the 
metric being reported, the value type and the value itself.  All other 
information is carried in the metadata packet which also includes additional 
metadata such as a metric title and group(s) that the metric belongs to.  
   For a multicast connection, the metadata packets are only sent on an as 
needed bases.  In other words, if a gmond listener recieves a value packet but 
does not currently hold the associated metadata for the metric, it can request 
that all gmonds listening on the same multicast channel, send the metadata for 
all metrics included in a specific metric collection.  This allows any gmond to 
resync with all other gmonds on an as needed bases.  In unicast mode there 
isn't a way to broadcast a metadata request.  Therefore a new directive has 
been added called send_metadata_interval that allows a gmond to resend its 
metric metadata on a specific interval.  The purpose for doing this is to try 
to avoid sending metric metadata with every metric value.  This wasn't 
necessarily a problem for the builtin metrics because every gmond already had 
hardcoded knowledge of the metadata.  However for gmetrics or modular metrics 
this was not the case.  For these types of metrics, all metadata ha
 d to be sent with each metric value.  The new code makes a compromise between 
sending minimal metadata for hardcoded metrics and all metadata for unknown 
metrics.  It also decouples the now builtin metrics from the hardcoded metadata 
which will allow them to be ported to modular metrics.
   This refactoring also added another capability to the entire ganglia system 
and that is the ability for each metric to carry additional metadata that can 
be used to enhance the web frontend.  At this point the additional metadata 
that is being carried is TITLE, GROUP and DESCRIPTION.  However, the new 
metadata packets are designed to be able to carry any additional metadata 
without gmond having to know or care about what the data really is.  The 
downside to this is that under the current architecture of gmetad, the XML 
decoding code needs to know what to expect as far as XML tags and attributes.  
So given the current gmetad architecture, gmetad will have to modified whenever 
a new type of metadata is added.  This needs to be fixed.

Calling for PHP web frontend help!
  With the introduction of additional metadata, there is some work that needs 
to be done to the web frontend.  I am not a PHP hacker and I know that many of 
you are, so I am asking for help in this area.  The XML output of both gmond 
and gmetad has been enhanced to include a new tag called <EXTRA_DATA>  This tag 
is contained by the <METRIC> tag and carries a single attribute and value.  The 
attribute can actually anything but is currently defined to be TITLE, GROUP or 
DESC.  There can only be a single TITLE or DESC passed for each metric however 
there maybe multiple GROUPs.  I would like to see somebody enhance the web 
frontend in such a way so that the TITLE is being used as the title for each 
metric graph rather than the metric name.  Also a new filtering method should 
be added to allow user to display graphs based on the GROUP that a metric 
belongs to.  The DESCription data could be added as mouse-over text for each 
graph or constant metric.  I think that these types of en
 hancements will go a long way to improving the usability of the web frontend.
   It would also be very helpful of those C coders out their would review the 
changes that I have made to make sure that I am not dropping metric packets or 
leaking memory in some way.  I am hoping that with these changes we can start 
seriously looking at a 3.1 release.  I would also like some feedback on the 
spoofing functionality.  Spoofing was reworked to simply be additional metadata 
for a metric.  I think I have it all working again but it could use some more 
testing.

Brad

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ganglia-developers mailing list
Ganglia-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-developers

Reply via email to