I just wanted to thank Rick Cobb and Ofer Inbar for their answers; both have been very useful.
-----Original Message----- From: Ofer Inbar [mailto:[email protected]] Sent: Wednesday, August 26, 2009 1:38 PM To: Jorge Medina Cc: [email protected] Subject: Re: [Ganglia-general] Embedded gmetric Jorge Medina <[email protected]> wrote: > I added a UDP receiving channel on the gmond.conf file on every node of > the cluster. > On every node, my application sends UDP messages (unicast > messages) with metric informatiuon to the local gmond process. > > If I telnet to the gmond TCP port, I get the XML with the state > of the whole cluster. The local <HOST> has the additional > metrics published by my application. > Nevertheless, I don't get these additional metrics for all other nodes. > > I was expecting that gmond will receive the unicast messages and > that these would be broadcasted to all remaining nodes in the > cluster. > > Is my expectation wrong? Yes, it is wrong, but this is something that comes up a lot because it's counterintuitive and not very clear from the documentation last time I read it (which was last year). We naturally think of what a gmond knows as a single collection of stuff. In fact, each gmond has two completely distinct "personalities" 1. the part that gathers metrics from the local host and sends them out 2. the part that listens for metrics on the network and collects them gmond's personality #1 only "knows" local metrics, which it gets either from its own code, python modules, or calls to gmetric. #1 is also the only one that actively sends out what it knows to the multicast or unicast send channels. gmond's personality #2 is local-host-agnostic, and doesn't automatically know anything that #1 knows (even though it's the same process, the data is distinct). #2 merely listens on the network, collects all the metrics it hears about on the receive channels it is configured for, and collects all of it. It makes what it knows available to others as XML via the TCP port, so you have to actively ask it to learn what it knows (which is what gmetad does). By sending out directly to UDP, your application is taking on role #1 for itself, and skipping its local gmond process' personality #1. Therefore, it needs to play the role of a gmond, and send the metrics it has out to all the places they need to go, just as gmond would. Your solution, of doing a multicast, is one thing that'd work. Another would be to make your application call gmetric locally, which would hit gmond's personality #1, which would then send it out. -- Cos ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Ganglia-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ganglia-general

