There are more qualified people on this list to answer your question
about dynamically setting metric callbacks.
But a quick glance through gmond.c reveals that it might not be
possible with the current framework.

When gmond starts up, it calls the function setup_metric_callbacks(),
which steps through linked list of mmodule objects (core/DSO) and
registers callbacks based on your metric_info array. This happens in
the beginning within the main() block. So unless you are planning to
bounce the gmond each day and have it initialize the metric_info array
differently each time, you won't be able to do this during runtime.

Hope that helps.
JB

On Mon, Nov 16, 2009 at 5:04 PM, Sylvester Steele
<sylvesterste...@gmail.com> wrote:
> Kim,
>
> I got the tarball to which you'd put up the link earlier on in the mailing
> list. I got your module to work no problem there!
>
> But, I have a question:
>
> All the Ganglia modules have a metric array. The mod_cpu has this:
>
> static Ganglia_25metric cpu_metric_info[] =
> {
>    {0, "cpu_num",    1200, GANGLIA_VALUE_UNSIGNED_SHORT, "CPUs", "zero",
> "%hu",  UDP_HEADER_SIZE+8, "Total number of CPUs"},
>    {0, "cpu_speed",  1200, GANGLIA_VALUE_UNSIGNED_INT,   "MHz",  "zero",
> "%u",  UDP_HEADER_SIZE+8, "CPU Speed in terms of MHz"},
>    {0, "cpu_user",     90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "Percentage of CPU utilization that occurred
> while executing at the user level"},
>    {0, "cpu_nice",     90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "Percentage of CPU utilization that occurred
> while executing at the user level with nice priority"},
>    {0, "cpu_system",   90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "Percentage of CPU utilization that occurred
> while executing at the system level"},
>    {0, "cpu_idle",     90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "Percentage of time that the CPU or CPUs were
> idle and the system did not have an outstanding disk I/O request"},
>    {0, "cpu_aidle",  3800, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "Percent of time since boot idle CPU"},
>    {0, "cpu_wio",      90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "Percentage of time that the CPU or CPUs were
> idle during which the system had an outstanding disk I/O request"},
>    {0, "cpu_intr",     90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "cpu_intr"},
>    {0, "cpu_sintr",    90, GANGLIA_VALUE_FLOAT,          "%",    "both",
> "%.1f", UDP_HEADER_SIZE+8, "cpu_sintr"},
>    {0, NULL}
>
> };
>
>
> Now, what if the number of metrics that my module monitors changes? Ie If I
> want to monitor 5 metrics today but 10 tomorrow- Is it possible to
> dynamically initialize the metrics somehow?
>
> Will the following work:
>
>
> For (how many ever metrics)
> {
> cpu_metric_info[i]= appropriate string
> }
>
> And put this for loop in the metric_init function..
>
> Will that do the trick?
>
> Thanks,
> Sylvester
>
>
> ------------------------------------------------------------------------------
> 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-developers mailing list
> Ganglia-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ganglia-developers
>

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

Reply via email to