]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
cmds: Add support for `METRIC_TYPE_FPCOUNTER`.
authorFlorian Forster <octo@collectd.org>
Wed, 31 Jan 2024 07:46:29 +0000 (08:46 +0100)
committerFlorian Forster <octo@collectd.org>
Wed, 31 Jan 2024 13:39:14 +0000 (14:39 +0100)
src/utils/cmds/cmds_test.c
src/utils/cmds/putmetric.c

index 9c061f57566f1df5185a4a0d7d21ed053d78afac..30ce3832a5e58259193e663a36c4eccb5c3245cf 100644 (file)
@@ -314,8 +314,8 @@ static struct {
     {
         "PUTMETRIC untyped type=untyped 42",
         NULL,
-        CMD_OK,
-        CMD_PUTMETRIC,
+        CMD_ERROR,
+        CMD_UNKNOWN,
     },
     {
         "PUTMETRIC quoted_gauge type=\"GAUGE\" 42",
@@ -428,7 +428,7 @@ DEF_TEST(format_putmetric) {
                       },
                   .value.gauge = 42,
               },
-          .want = "PUTMETRIC test 42",
+          .want_err = EINVAL,
       },
       {
           .m =
@@ -460,12 +460,12 @@ DEF_TEST(format_putmetric) {
                   .family =
                       &(metric_family_t){
                           .name = "test",
-                          .type = METRIC_TYPE_UNTYPED,
+                          .type = METRIC_TYPE_GAUGE,
                       },
                   .value.gauge = 42,
                   .time = TIME_T_TO_CDTIME_T(1594809888),
               },
-          .want = "PUTMETRIC test time=1594809888.000 42",
+          .want = "PUTMETRIC test type=GAUGE time=1594809888.000 42",
       },
       {
           .m =
@@ -473,12 +473,12 @@ DEF_TEST(format_putmetric) {
                   .family =
                       &(metric_family_t){
                           .name = "test",
-                          .type = METRIC_TYPE_UNTYPED,
+                          .type = METRIC_TYPE_GAUGE,
                       },
                   .value.gauge = 42,
                   .interval = TIME_T_TO_CDTIME_T(10),
               },
-          .want = "PUTMETRIC test interval=10.000 42",
+          .want = "PUTMETRIC test type=GAUGE interval=10.000 42",
       },
       {
           .m =
@@ -486,7 +486,7 @@ DEF_TEST(format_putmetric) {
                   .family =
                       &(metric_family_t){
                           .name = "test",
-                          .type = METRIC_TYPE_UNTYPED,
+                          .type = METRIC_TYPE_GAUGE,
                       },
                   .value.gauge = 42,
                   .label.ptr =
@@ -496,7 +496,8 @@ DEF_TEST(format_putmetric) {
                       },
                   .label.num = 1,
               },
-          .want = "PUTMETRIC test label:foo=\"with \\\"quotes\\\"\" 42",
+          .want =
+              "PUTMETRIC test type=GAUGE label:foo=\"with \\\"quotes\\\"\" 42",
       },
   };
 
index f2b1ac5b43d76c7a45f1ce44a4b5f277665b7c87..11969860e6590dde4695a572e500a089578a28e3 100644 (file)
@@ -46,8 +46,8 @@ static int set_option(metric_t *m, char const *key, char const *value,
       m->family->type = METRIC_TYPE_GAUGE;
     } else if (strcasecmp("COUNTER", value) == 0) {
       m->family->type = METRIC_TYPE_COUNTER;
-    } else if (strcasecmp("UNTYPED", value) == 0) {
-      m->family->type = METRIC_TYPE_UNTYPED;
+    } else if (strcasecmp("FPCOUNTER", value) == 0) {
+      m->family->type = METRIC_TYPE_FPCOUNTER;
     } else {
       return CMD_ERROR;
     }
@@ -104,7 +104,7 @@ cmd_status_t cmd_parse_putmetric(size_t argc, char **argv,
     cmd_error(CMD_ERROR, errhndl, "calloc failed");
     return CMD_ERROR;
   }
-  fam->type = METRIC_TYPE_UNTYPED;
+  fam->type = METRIC_TYPE_GAUGE;
 
   int status = metric_family_metric_append(fam, (metric_t){0});
   if (status != 0) {
@@ -244,17 +244,18 @@ int cmd_format_putmetric(strbuf_t *buf, metric_t const *m) { /* {{{ */
   strbuf_print(buf, "PUTMETRIC ");
   strbuf_print(buf, m->family->name);
   switch (m->family->type) {
-  case METRIC_TYPE_UNTYPED:
-    /* no op */
-    break;
   case METRIC_TYPE_COUNTER:
     strbuf_print(buf, " type=COUNTER");
     break;
+  case METRIC_TYPE_FPCOUNTER:
+    strbuf_print(buf, " type=FPCOUNTER");
+    break;
   case METRIC_TYPE_GAUGE:
     strbuf_print(buf, " type=GAUGE");
     break;
-  default:
-    return EINVAL;
+  case METRIC_TYPE_UNTYPED:
+    /* no op */
+    break;
   }
 
   if (m->time != 0) {