processes plugin: Use the new "delay_rate" type for Delay Accounting.
authorFlorian Forster <octo@collectd.org>
Fri, 8 Dec 2017 08:39:59 +0000 (09:39 +0100)
committerFlorian Forster <octo@collectd.org>
Fri, 8 Dec 2017 08:42:09 +0000 (09:42 +0100)
src/collectd.conf.pod
src/processes.c
src/types.db

index dab723a..80842b1 100644 (file)
@@ -6891,8 +6891,9 @@ Disabled by default.
 If enabled, collect Linux Delay Accounding information for matching processes.
 Delay Accounting provides the time processes wait for the CPU to become
 available, for I/O operations to finish, for pages to be swapped in and for
 If enabled, collect Linux Delay Accounding information for matching processes.
 Delay Accounting provides the time processes wait for the CPU to become
 available, for I/O operations to finish, for pages to be swapped in and for
-freed pages to be reclaimed. The metrics are reported as a percentage, e.g.
-C<percent-delay-cpu>. Disabled by default.
+freed pages to be reclaimed. The metrics are reported as "seconds per second"
+using the C<delay_rate> type, e.g. C<delay_rate-delay-cpu>.
+Disabled by default.
 
 This option is only available on Linux, requires the C<libmnl> library and
 requires the C<CAP_NET_ADMIN> capability at runtime.
 
 This option is only available on Linux, requires the C<libmnl> library and
 requires the C<CAP_NET_ADMIN> capability at runtime.
index 1fcd7a6..738a6de 100644 (file)
@@ -903,9 +903,9 @@ static void ps_submit_proc_list(procstat_t *ps) {
     plugin_dispatch_values(&vl);
   }
 
     plugin_dispatch_values(&vl);
   }
 
-  /* The ps->delay_* metrics are in nanoseconds per second. This factor converts
-   * them to a percentage. */
-  gauge_t const delay_factor = 100.0 / 1000000000.0;
+  /* The ps->delay_* metrics are in nanoseconds per second. Convert to seconds
+   * per second. */
+  gauge_t const delay_factor = 1000000000.0;
 
   struct {
     char *type_instance;
 
   struct {
     char *type_instance;
@@ -920,7 +920,7 @@ static void ps_submit_proc_list(procstat_t *ps) {
     if (isnan(delay_metrics[i].rate_ns)) {
       continue;
     }
     if (isnan(delay_metrics[i].rate_ns)) {
       continue;
     }
-    sstrncpy(vl.type, "percent", sizeof(vl.type));
+    sstrncpy(vl.type, "delay_rate", sizeof(vl.type));
     sstrncpy(vl.type_instance, delay_metrics[i].type_instance,
              sizeof(vl.type_instance));
     vl.values[0].gauge = delay_metrics[i].rate_ns * delay_factor;
     sstrncpy(vl.type_instance, delay_metrics[i].type_instance,
              sizeof(vl.type_instance));
     vl.values[0].gauge = delay_metrics[i].rate_ns * delay_factor;
index 4ca57aa..f27ba46 100644 (file)
@@ -44,6 +44,7 @@ current                 value:GAUGE:U:U
 current_connections     value:GAUGE:0:U
 current_sessions        value:GAUGE:0:U
 delay                   value:GAUGE:-1000000:1000000
 current_connections     value:GAUGE:0:U
 current_sessions        value:GAUGE:0:U
 delay                   value:GAUGE:-1000000:1000000
+delay_rate              value:GAUGE:0:U
 derive                  value:DERIVE:0:U
 df                      used:GAUGE:0:1125899906842623, free:GAUGE:0:1125899906842623
 df_complex              value:GAUGE:0:U
 derive                  value:DERIVE:0:U
 df                      used:GAUGE:0:1125899906842623, free:GAUGE:0:1125899906842623
 df_complex              value:GAUGE:0:U