]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
cpu plugin: Fold `usage_global_rate` into `usage_rate`.
authorFlorian Forster <octo@collectd.org>
Wed, 10 Jan 2024 17:27:10 +0000 (18:27 +0100)
committerFlorian Forster <octo@collectd.org>
Mon, 22 Jan 2024 15:07:57 +0000 (16:07 +0100)
src/cpu.c
src/cpu_test.c

index 045bb45f3c0be607c6db823a04bab01e91d211c9..f25d80b6d62b7f5ba64786493c52882495fd3987 100644 (file)
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -521,25 +521,20 @@ static void usage_reset(usage_t *u) {
   memset(u, 0, sizeof(*u));
 }
 
-static gauge_t usage_global_rate(usage_t *u, state_t state) {
-  usage_finalize(u);
-
-  return u->global[state].has_rate ? u->global[state].rate : NAN;
-}
-
 static gauge_t usage_rate(usage_t *u, size_t cpu, state_t state) {
   usage_finalize(u);
 
+  usage_state_t us;
   if (cpu == CPU_ALL) {
-    return usage_global_rate(u, state);
-  }
-
-  size_t index = (cpu * STATE_MAX) + state;
-  if (index >= u->states_num) {
-    return NAN;
+    us = u->global[state];
+  } else {
+    size_t index = (cpu * STATE_MAX) + state;
+    if (index >= u->states_num) {
+      return -1;
+    }
+    us = u->states[index];
   }
 
-  usage_state_t us = u->states[index];
   return us.has_rate ? us.rate : NAN;
 }
 
@@ -547,7 +542,7 @@ static gauge_t usage_ratio(usage_t *u, size_t cpu, state_t state) {
   usage_finalize(u);
 
   gauge_t global_rate =
-      usage_global_rate(u, STATE_ACTIVE) + usage_global_rate(u, STATE_IDLE);
+      usage_rate(u, CPU_ALL, STATE_ACTIVE) + usage_rate(u, CPU_ALL, STATE_IDLE);
   return usage_rate(u, cpu, state) / global_rate;
 }
 
index c3304f1f580f73bf9994a26ca81faa0bb5e4abc0..ec4ed1b4f32506f48b4ef47564de532331625432 100644 (file)
@@ -216,7 +216,7 @@ DEF_TEST(usage_count) {
   return ret;
 }
 
-DEF_TEST(usage_global_rate) {
+DEF_TEST(usage_rate_CPU_ALL) {
   usage_t usage = {0};
 
   cdtime_t t0 = TIME_T_TO_CDTIME_T(100);
@@ -230,8 +230,8 @@ DEF_TEST(usage_global_rate) {
   // Unable to calculate a rate with a single data point.
   EXPECT_EQ_DOUBLE(NAN, usage_rate(&usage, 0, STATE_USER));
   EXPECT_EQ_DOUBLE(NAN, usage_rate(&usage, 1, STATE_USER));
-  EXPECT_EQ_DOUBLE(NAN, usage_global_rate(&usage, STATE_USER));
-  EXPECT_EQ_DOUBLE(NAN, usage_global_rate(&usage, STATE_ACTIVE));
+  EXPECT_EQ_DOUBLE(NAN, usage_rate(&usage, CPU_ALL, STATE_USER));
+  EXPECT_EQ_DOUBLE(NAN, usage_rate(&usage, CPU_ALL, STATE_ACTIVE));
 
   cdtime_t t1 = t0 + TIME_T_TO_CDTIME_T(10);
   derive_t cpu0_t1 = cpu0_t0 + 300;
@@ -247,8 +247,8 @@ DEF_TEST(usage_global_rate) {
 
   EXPECT_EQ_DOUBLE(want_cpu0_rate, usage_rate(&usage, 0, STATE_USER));
   EXPECT_EQ_DOUBLE(want_cpu1_rate, usage_rate(&usage, 1, STATE_USER));
-  EXPECT_EQ_DOUBLE(want_global_rate, usage_global_rate(&usage, STATE_USER));
-  EXPECT_EQ_DOUBLE(want_global_rate, usage_global_rate(&usage, STATE_ACTIVE));
+  EXPECT_EQ_DOUBLE(want_global_rate, usage_rate(&usage, CPU_ALL, STATE_USER));
+  EXPECT_EQ_DOUBLE(want_global_rate, usage_rate(&usage, CPU_ALL, STATE_ACTIVE));
 
   usage_reset(&usage);
   return 0;
@@ -258,7 +258,7 @@ int main(void) {
   RUN_TEST(usage_rate);
   RUN_TEST(usage_ratio);
   RUN_TEST(usage_count);
-  RUN_TEST(usage_global_rate);
+  RUN_TEST(usage_rate_CPU_ALL);
 
   END_TEST;
 }