Code

mic plugin: Use the "core number" as plugin instance.
authorFlorian Forster <octo@collectd.org>
Sat, 11 May 2013 07:55:09 +0000 (09:55 +0200)
committerFlorian Forster <octo@collectd.org>
Sat, 11 May 2013 07:55:09 +0000 (09:55 +0200)
Previously, per-core CPU statistics would be dispatched as (e.g.):

  <host>/mic-0/cpu-1-user

This makes graping hard, because it required to parse the type instance to
seperate out different graphs. The core number has therefore been moved to the
plugin instance, so the "mic" plugin behaves more like the "cpu" plugin, e.g.:

  <host>/mic-0-cpu-1/cpu-user

src/mic.c

index c89f8eb6c193209f9c207e6166575cc75f4df92b..a2d4dc3317b6872e9b7398abfd9b64984a086e4d 100644 (file)
--- a/src/mic.c
+++ b/src/mic.c
@@ -214,7 +214,8 @@ static int mic_read_temps(int mic)
        return (0);
 }
 
-static void mic_submit_cpu(int micnumber, const char *type_instance, int core, derive_t val)
+static void mic_submit_cpu(int micnumber, const char *type_instance,
+               int core, derive_t val)
 {
        value_t values[1];
        value_list_t vl = VALUE_LIST_INIT;
@@ -226,13 +227,14 @@ static void mic_submit_cpu(int micnumber, const char *type_instance, int core, d
 
        strncpy (vl.host, hostname_g, sizeof (vl.host));
        strncpy (vl.plugin, "mic", sizeof (vl.plugin));
-       ssnprintf (vl.plugin_instance, sizeof (vl.plugin_instance), "%i", micnumber);
+       if (core < 0) /* global aggregation */
+               ssnprintf (vl.plugin_instance, sizeof (vl.plugin_instance),
+                               "%i", micnumber);
+       else /* per-core statistics */
+               ssnprintf (vl.plugin_instance, sizeof (vl.plugin_instance),
+                               "%i-cpu-%i", micnumber, core);
        strncpy (vl.type, "cpu", sizeof (vl.type));
-       if (core < 0)
-               strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
-       else
-               ssnprintf (vl.type_instance, sizeof (vl.type_instance),
-                               "%i-%s", core, type_instance);
+       strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
 
        plugin_dispatch_values (&vl);
 }