Re: [Ganglia-developers] Trunk r920 snapshot available
On Mon, Jan 14, 2008 at 05:05:18PM -0800, Bernard Li wrote: > Happy new year to you all! > > To celebrate the new year, I have just posted the latest 3.1.x > snapshots in our website: > > http://www.ganglia.info/snapshots/3.1.x > > As usual, the RPMs were built on CentOS 4.x, so if you are on a > significantly different distribution, please rebuild the .src.rpm or > install from the source tarball. > > If you encounter any issues, please report them to > [EMAIL PROTECTED] I'll look at using either this or a fresh checkout in the next couple of days to roll some debs as well, for those of you who want something more up to date than I have uploaded at the moment. Stu -- >From the prompt of Stu Teasdale A man always remembers his first love with special tenderness, but after that begins to bunch them. -- Mencken - Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
[Ganglia-developers] questions re: user-defined instance data collection, reporting, and listening
Thanks for your reply. 1. So my understanding is that Ganglia offers no application instance management help per se - it's up to the collection module that we write to worry about differentiating between common metrics reported by a set of application instances on a node. 2. Since the limit is what will fit into UDP packet, is there any way to disassemble/re-assemble a variable sized metric that sometimes exceeds a UDP packet size? 4. If the metrics to be collected change for any reason (add a new one, delete an old one, change the collection interval, etc.) does Ganglia automatically detect such changes in flight simply by a configuration change, or do all daemons need to be purposefully restarted? Lou. "Brad Nicholes" <[EMAIL PROTECTED]> 01/14/2008 02:06 PM To , Lou Degenaro/Watson/[EMAIL PROTECTED] cc Subject [Ganglia-developers] questions re: user-defined instance datacollection, reporting, and listening >>> On 1/14/2008 at 7:41 AM, in message <[EMAIL PROTECTED]>, Lou Degenaro <[EMAIL PROTECTED]> wrote: > I'm looking for help in understanding if Ganglia can be used to monitor a > cluster relative to our needs. > > Questions: > > 1. In our situation. each node has one or more application "instances" > running, where each application instance has an id and consists of a set > of daemons running on the node. Thus app-1 may be comprised of one set of > instances of daemons a,b,c and app-2 may be comprised of another set of > instances of daemons a,b,c. The question is, can Gangalia be used to > monitor instance specific information. For example, say daemon "a" > produces metric "m". We'd like to collect metric "m" from app-1 and from > app-2, where both apps are on the same node, and be able to tell which "m" > is which. > Using Ganglia 3.1.0 (which has not been formally released yet) you can write either C interface or Python interface modules that can collect and report anything you want. In your case, as long as the names of the metrics are different, gathering metrics for app-1 and app-2 can be easily done. There is already a similar module in concept, that gathers metrics for each CPU that it discovers in the system. In other words, if the system has 4 CPUs, then 4 metrics are gathered and reported. The difference here is that we are gathering multiple CPU data and you would be gathering data for multiple instances of daemon running on the system. The bottomline is if your module can differentiate between multiple entities on the system and gather data for each, ganglia can report it. > 2. What is the size limitation of Ganglia collected data - limited by what > can fit into a UDP packet? > Depends on what you are talking about. Yes the limit is the size of a UDP packet however 90% of the time the data being collected is just a numeric value. You can gather a string but this is usually only done for "collect once" constant type metrics. > 3. How does one programmatically get collected data? Can our "collector" > application daemon easily listen for the reports or must polling be used? > Normally this is done through some type of polling mechanism. You can either poll the gmetad port and/or query the data directly from the RRD files. Examples of how to do this are in the web frontend PHP code. > 4. Can the set of nodes reporting / collected be (programmatically) > changed on-the-fly? > The set of nodes that are collecting data is determined by whether gmond is running on the machine or not. If a new machine enters the grid and gmond is started on that box, the report for that machine magically shows up. If a machine shutdown or gmond is stopped, the machine is reported as down. Stopped machines can also be configured to be cleaned after a period of time. > 5. Do all nodes have to have all information? Can a hierarchy be > established so that only a small set of "authority" nodes be the keepers > of all information in order to minimize network traffic? > No and Yes. The default configuration is that all nodes hold information about every other node (multicast mode). However the nodes can be configured to only report to a single node (unicast mode). Brad - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
[Ganglia-developers] questions re: user-defined instance datacollection, reporting, and listening
>>> On 1/15/2008 at 9:24 AM, in message <[EMAIL PROTECTED]>, Lou Degenaro <[EMAIL PROTECTED]> wrote: > Thanks for your reply. > > 1. So my understanding is that Ganglia offers no application instance > management help per se - it's up to the collection module that we write to > worry about differentiating between common metrics reported by a set of > application instances on a node. > Yes, your metric module would have to make sure that the metric names are unique. > 2. Since the limit is what will fit into UDP packet, is there any way to > disassemble/re-assemble a variable sized metric that sometimes exceeds a > UDP packet size? > No, not in the current version. > 4. If the metrics to be collected change for any reason (add a new one, > delete an old one, change the collection interval, etc.) does Ganglia > automatically detect such changes in flight simply by a configuration > change, or do all daemons need to be purposefully restarted? > If the configuration of gmond on a given node changes, gmond on that node must be restarted. However nothing else in the system needs to be restarted. Gmetad will just pick up and record any new metrics and the web frondend will just start displaying the new or changed metrics. Brad > > > > "Brad Nicholes" <[EMAIL PROTECTED]> > 01/14/2008 02:06 PM > > To > , Lou Degenaro/Watson/[EMAIL > PROTECTED] > cc > > Subject > [Ganglia-developers] questions re: user-defined instance datacollection, > reporting, and listening > > > > > > On 1/14/2008 at 7:41 AM, in message > <[EMAIL PROTECTED]>, > Lou > Degenaro <[EMAIL PROTECTED]> wrote: >> I'm looking for help in understanding if Ganglia can be used to monitor > a >> cluster relative to our needs. >> >> Questions: >> >> 1. In our situation. each node has one or more application "instances" >> running, where each application instance has an id and consists of a set > >> of daemons running on the node. Thus app-1 may be comprised of one set > of >> instances of daemons a,b,c and app-2 may be comprised of another set of >> instances of daemons a,b,c. The question is, can Gangalia be used to >> monitor instance specific information. For example, say daemon "a" >> produces metric "m". We'd like to collect metric "m" from app-1 and > from >> app-2, where both apps are on the same node, and be able to tell which > "m" >> is which. >> > > Using Ganglia 3.1.0 (which has not been formally released yet) you can > write either C interface or Python interface modules that can collect and > report anything you want. In your case, as long as the names of the > metrics are different, gathering metrics for app-1 and app-2 can be easily > done. There is already a similar module in concept, that gathers metrics > for each CPU that it discovers in the system. In other words, if the > system has 4 CPUs, then 4 metrics are gathered and reported. The > difference here is that we are gathering multiple CPU data and you would > be gathering data for multiple instances of daemon running on the system. > The bottomline is if your module can differentiate between multiple > entities on the system and gather data for each, ganglia can report it. > >> 2. What is the size limitation of Ganglia collected data - limited by > what >> can fit into a UDP packet? >> > > Depends on what you are talking about. Yes the limit is the size of a UDP > packet however 90% of the time the data being collected is just a numeric > value. You can gather a string but this is usually only done for "collect > once" constant type metrics. > >> 3. How does one programmatically get collected data? Can our > "collector" >> application daemon easily listen for the reports or must polling be > used? >> > > Normally this is done through some type of polling mechanism. You can > either poll the gmetad port and/or query the data directly from the RRD > files. Examples of how to do this are in the web frontend PHP code. > > >> 4. Can the set of nodes reporting / collected be (programmatically) >> changed on-the-fly? >> > > The set of nodes that are collecting data is determined by whether gmond > is running on the machine or not. If a new machine enters the grid and > gmond is started on that box, the report for that machine magically shows > up. If a machine shutdown or gmond is stopped, the machine is reported as > down. Stopped machines can also be configured to be cleaned after a > period of time. > >> 5. Do all nodes have to have all information? Can a hierarchy be >> established so that only a small set of "authority" nodes be the keepers > >> of all information in order to minimize network traffic? >> > > No and Yes. The default configuration is that all nodes hold information > about every other node (multicast mode). However the nodes can be > configured to only report to a single node (unicast mode). > > Brad ---
Re: [Ganglia-developers] Trunk r920 snapshot available
Hi Stu: On 1/15/08, Stu Teasdale <[EMAIL PROTECTED]> wrote: > I'll look at using either this or a fresh checkout in the next couple of > days to roll some debs as well, for those of you who want something more > up to date than I have uploaded at the moment. When they're ready I'll upload them to the snapshots directory so users will have easy access to them. TIA, Bernard - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
Re: [Ganglia-developers] mod_python
Hi Brad: The following patch should make tcpconn.py compatible with Python 2.3.x which does not have the subprocess module: --- tcpconn.py.orig 2008-01-15 15:30:09.0 -0800 +++ tcpconn.py 2008-01-15 15:30:48.0 -0800 @@ -30,7 +30,7 @@ #* Author: Brad Nicholes (bnicholes novell.com) #**/ -import os, sys, subprocess +import os, sys, popen2 import threading import time @@ -210,7 +210,7 @@ tempconns[conn] = 0 #Call the netstat utility and split the output into separate lines -netstat_output=subprocess.Popen(["netstat", '-t', '-a'], stdout=subprocess.PIPE).communicate()[0] +netstat_output=popen2.popen2(["netstat", '-t', '-a'], mode='r')[0].read() lines = netstat_output.splitlines() #Iterate through the netstat output looking for the 'tcp' keyword in the tcp_at Cheers, Bernard On 11/8/07, Brad Nicholes <[EMAIL PROTECTED]> wrote: > >>> On 11/7/2007 at 4:16 PM, in message > <[EMAIL PROTECTED]>, "Bernard Li" > <[EMAIL PROTECTED]> wrote: > > Hi Brad: > > > > On 11/7/07, Brad Nicholes <[EMAIL PROTECTED]> wrote: > > > >> Yes, the fact that the .py file exists in the > > /usr/lib/ganglia/python_modules directory means that mod_python will > > automatically load the module. Gmond will not try to collect metrics from > > it > > or call any of its handlers, but it will load the module. The only way to > > avoid this is to move the .py file out of the directory or give it a > > different extention. So to disable a python module, you not only have to > > rename the .conf file, but you also have to move or remove the corresponding > > .py file itself. > >> So the more interesting question is why won't the tcpconn module load? > > One of the nice things about building a gmond python module is that you can > > actually do all of the development and debugging completely independent from > > gmond. In other words, you can just run the .py script directly through > > python and it will function just as if gmond had called it. Have you tried > > to run tcpconn.py directly in python? I would be interested to know what it > > is failing on. > > > > # python tcpconn.py > > Traceback (most recent call last): > > File "tcpconn.py", line 33, in ? > > import os, sys, subprocess > > ImportError: No module named subprocess > > > > # rpm -q python > > python-2.3.4-14.4 > > > > 'subprocess' was introduced in Python 2.5 I believe -- perhaps you can > > re-write it using popen? > > > > Perfect, that's what I needed to know. > > Brad > > - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
Re: [Ganglia-developers] mod_python
Bernard, works for me. Thanx, Matthias On Tue, 15 Jan 2008, Bernard Li wrote: > Hi Brad: > > The following patch should make tcpconn.py compatible with Python > 2.3.x which does not have the subprocess module: > > --- tcpconn.py.orig 2008-01-15 15:30:09.0 -0800 > +++ tcpconn.py 2008-01-15 15:30:48.0 -0800 > @@ -30,7 +30,7 @@ > #* Author: Brad Nicholes (bnicholes novell.com) > > #**/ > > -import os, sys, subprocess > +import os, sys, popen2 > import threading > import time > > @@ -210,7 +210,7 @@ > tempconns[conn] = 0 > > #Call the netstat utility and split the output into separate > lines > -netstat_output=subprocess.Popen(["netstat", '-t', '-a'], > stdout=subprocess.PIPE).communicate()[0] > +netstat_output=popen2.popen2(["netstat", '-t', '-a'], > mode='r')[0].read() > lines = netstat_output.splitlines() > > #Iterate through the netstat output looking for the 'tcp' > keyword in the tcp_at > > Cheers, > > Bernard > > On 11/8/07, Brad Nicholes <[EMAIL PROTECTED]> wrote: > > >>> On 11/7/2007 at 4:16 PM, in message > > <[EMAIL PROTECTED]>, "Bernard Li" > > <[EMAIL PROTECTED]> wrote: > > > Hi Brad: > > > > > > On 11/7/07, Brad Nicholes <[EMAIL PROTECTED]> wrote: > > > > > >> Yes, the fact that the .py file exists in the > > > /usr/lib/ganglia/python_modules directory means that mod_python will > > > automatically load the module. Gmond will not try to collect metrics > > > from it > > > or call any of its handlers, but it will load the module. The only way to > > > avoid this is to move the .py file out of the directory or give it a > > > different extention. So to disable a python module, you not only have to > > > rename the .conf file, but you also have to move or remove the > > > corresponding > > > .py file itself. > > >> So the more interesting question is why won't the tcpconn module load? > > > One of the nice things about building a gmond python module is that you > > > can > > > actually do all of the development and debugging completely independent > > > from > > > gmond. In other words, you can just run the .py script directly through > > > python and it will function just as if gmond had called it. Have you > > > tried > > > to run tcpconn.py directly in python? I would be interested to know what > > > it > > > is failing on. > > > > > > # python tcpconn.py > > > Traceback (most recent call last): > > > File "tcpconn.py", line 33, in ? > > > import os, sys, subprocess > > > ImportError: No module named subprocess > > > > > > # rpm -q python > > > python-2.3.4-14.4 > > > > > > 'subprocess' was introduced in Python 2.5 I believe -- perhaps you can > > > re-write it using popen? > > > > > > > Perfect, that's what I needed to know. > > > > Brad > > > > > > - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ > ___ > Ganglia-developers mailing list > Ganglia-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ganglia-developers > - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
Re: [Ganglia-developers] mod_python
works for me too. Check it in :) Brad >>> On 1/15/2008 at 5:18 PM, in message <[EMAIL PROTECTED]>, Matthias Blankenhaus <[EMAIL PROTECTED]> wrote: > Bernard, > > works for me. > > Thanx, > Matthias > > On Tue, 15 Jan 2008, Bernard Li wrote: > >> Hi Brad: >> >> The following patch should make tcpconn.py compatible with Python >> 2.3.x which does not have the subprocess module: >> >> --- tcpconn.py.orig 2008-01-15 15:30:09.0 -0800 >> +++ tcpconn.py 2008-01-15 15:30:48.0 -0800 >> @@ -30,7 +30,7 @@ >> #* Author: Brad Nicholes (bnicholes novell.com) >> > # > **/ >> >> -import os, sys, subprocess >> +import os, sys, popen2 >> import threading >> import time >> >> @@ -210,7 +210,7 @@ >> tempconns[conn] = 0 >> >> #Call the netstat utility and split the output into separate > lines >> -netstat_output=subprocess.Popen(["netstat", '-t', '-a'], >> stdout=subprocess.PIPE).communicate()[0] >> +netstat_output=popen2.popen2(["netstat", '-t', '-a'], >> mode='r')[0].read() >> lines = netstat_output.splitlines() >> >> #Iterate through the netstat output looking for the 'tcp' >> keyword in the tcp_at >> >> Cheers, >> >> Bernard >> >> On 11/8/07, Brad Nicholes <[EMAIL PROTECTED]> wrote: >> > >>> On 11/7/2007 at 4:16 PM, in message >> > <[EMAIL PROTECTED]>, "Bernard Li" >> > <[EMAIL PROTECTED]> wrote: >> > > Hi Brad: >> > > >> > > On 11/7/07, Brad Nicholes <[EMAIL PROTECTED]> wrote: >> > > >> > >> Yes, the fact that the .py file exists in the >> > > /usr/lib/ganglia/python_modules directory means that mod_python will >> > > automatically load the module. Gmond will not try to collect metrics >> > > from > it >> > > or call any of its handlers, but it will load the module. The only way >> > > to >> > > avoid this is to move the .py file out of the directory or give it a >> > > different extention. So to disable a python module, you not only have to >> > > rename the .conf file, but you also have to move or remove the > corresponding >> > > .py file itself. >> > >> So the more interesting question is why won't the tcpconn module load? >> > > One of the nice things about building a gmond python module is that you > can >> > > actually do all of the development and debugging completely independent > from >> > > gmond. In other words, you can just run the .py script directly through >> > > python and it will function just as if gmond had called it. Have you > tried >> > > to run tcpconn.py directly in python? I would be interested to know >> > > what > it >> > > is failing on. >> > > >> > > # python tcpconn.py >> > > Traceback (most recent call last): >> > > File "tcpconn.py", line 33, in ? >> > > import os, sys, subprocess >> > > ImportError: No module named subprocess >> > > >> > > # rpm -q python >> > > python-2.3.4-14.4 >> > > >> > > 'subprocess' was introduced in Python 2.5 I believe -- perhaps you can >> > > re-write it using popen? >> > > >> > >> > Perfect, that's what I needed to know. >> > >> > Brad >> > >> > >> >> - >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ >> ___ >> Ganglia-developers mailing list >> Ganglia-developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ganglia-developers >> > > - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ > ___ > Ganglia-developers mailing list > Ganglia-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ganglia-developers - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
[Ganglia-developers] Click-to-enlarge patch
This is a re-post of a patch I sent back in December (originally based on someone else's code). This patch changes the default template so that clicking on the 4 canned reports in the cluster_view will link to a larger version of that image. This behavior already exists in found in the 3.0.x releases, but is missing from the SVN trunk. -- Jesse Becker GPG Fingerprint -- BD00 7AA4 4483 AFCC 82D0 2720 0083 0931 9A2B 06A2 click-to-embiggen.patch Description: Binary data - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
Re: [Ganglia-developers] Click-to-enlarge patch
On Tue, Jan 15, 2008 at 09:08:03PM -0500, Jesse Becker wrote: > This is a re-post of a patch I sent back in December (originally based > on someone else's code). Committed revision 921, thanks Carlo - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers
Re: [Ganglia-developers] Trunk r920 snapshot available
On Tue, Jan 15, 2008 at 09:35:31AM +, Stu Teasdale wrote: > On Mon, Jan 14, 2008 at 05:05:18PM -0800, Bernard Li wrote: > > Happy new year to you all! > > > > To celebrate the new year, I have just posted the latest 3.1.x > > snapshots in our website: > > > > http://www.ganglia.info/snapshots/3.1.x > > > > As usual, the RPMs were built on CentOS 4.x, so if you are on a > > significantly different distribution, please rebuild the .src.rpm or > > install from the source tarball. > > > > If you encounter any issues, please report them to > > [EMAIL PROTECTED] > > I'll look at using either this or a fresh checkout in the next couple of > days to roll some debs as well, for those of you who want something more > up to date than I have uploaded at the moment. Stu, are there going to be any debs for 3.0.x uploaded as well, or you are aiming for 3.1.0 to stabilize and then use that as the first official 3.x package for debian? Carlo - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers