Why can't you just do the following:

# webserver.pyconf
modules {
  module {
    name = "lsof"
    language = "python"
    param httpd {
      value = "doesnt-matter"
    }
    param crawler {
      value = "doesnt-matter"
    }
  }
}

collection_group {
  collect_every = 30
  time_threshold = 60

  metric {
    name = "lsof-httpd"
    title = "Web Server open files"
    value_threshold = 1.0
  }

  metric {
    name = "lsof-crawler"
    title = "crawler open files"
    value_threshold = 1.0
  }
}

Then just iterate through all of the params that your module receives and 
construct a unique metric name by appending the param name to the module name.  
Then create a separate descriptor for each unique metric name and pass that 
back.  Gmond will generate a metric for each of the descriptors and call your 
module to gather each one individually.  This way you have one python module 
that is loaded once but generates metrics for each process that you specify in 
the config file.

Brad

>>> On 9/2/2009 at 2:15 AM, in message
<68fea9390909020115y1485f0b2j8056ae00b36be...@mail.gmail.com>, Matt
<mattmora...@gmail.com> wrote:
> Hi all,
> 
> I'm trying to create my python metric modules as versatile as
> possible, but i'm not sure exactly how they are supposed to be used.
> For instance, i've got a python script that grabs open files for a
> process.  Can I invoke this module multiple times with different
> pyconf files? and if so, how do I change the metric name? I don't
> really want to use multiple descriptors, as I don't want to check for
> processes I know that are not on the server.  example:
> 
> The lsof.py script has a descriptor for lsof, can I use the same
> lsof.py for two pyconf files? won't the metrics both show up as lsof?
> Or do I need a different lsof.py for every process/metric I want to
> capture?
> 
> # webserver.pyconf
> modules {
>   module {
>     name = "lsof"
>     language = "python"
>     param name {
>       value = "httpd"
>     }
>   }
> }
> 
> collection_group {
>   collect_every = 30
>   time_threshold = 60
>   metric {
>     name = "lsof"
>     title = "Web Server open files"
>     value_threshold = 1.0
>   }
> }
> 
> #crawler.conf
> modules {
>   module {
>     name = "lsof"
>     language = "python"
>     param processname {
>       value = "crawler"
>     }
>   }
> }
> 
> collection_group {
>   collect_every = 30
>   time_threshold = 60
>   metric {
>     name = "lsof"
>     title = "crawler open files"
>     value_threshold = 1.0
>   }
> }
> 
> Thanks,
> 
> Matt
> 
> ------------------------------------------------------------------------------
> 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
> Ganglia-general@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/ganglia-general 




------------------------------------------------------------------------------
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
Ganglia-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-general

Reply via email to