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
-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;
{
value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
strncpy (vl.host, hostname_g, sizeof (vl.host));
strncpy (vl.plugin, "mic", sizeof (vl.plugin));
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));
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);
}
plugin_dispatch_values (&vl);
}