]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
format_json: Use `yajl_gen_double` to encode gauge metrics.
authorFlorian Forster <octo@collectd.org>
Fri, 15 Dec 2023 18:12:13 +0000 (19:12 +0100)
committerFlorian Forster <octo@collectd.org>
Wed, 3 Jan 2024 15:39:36 +0000 (16:39 +0100)
This also fixes the unit test by embedding PACKAGE_VERSION.

src/utils/format_json/format_json_test.c
src/utils/format_json/open_telemetry.c

index 5ab8a5b049cf8e5b23b4a9bb33ee69951486ae2c..7130159418369b1cdca8653919e5dcab2c83ab7f 100644 (file)
@@ -314,25 +314,26 @@ DEF_TEST(open_telemetry) {
   CHECK_ZERO(
       format_json_open_telemetry(&buf, (metric_family_t const **)fams, 2));
 
-  EXPECT_EQ_STR(
-      "{\"resourceMetrics\":[{\"resource\":{\"attributes\":[{\"key\":\"service."
-      "name\",\"value\":{\"stringValue\":\"unit "
-      "test\"}}]},\"scopeMetrics\":[{\"scope\":{\"name\":\"collectd\","
-      "\"version\":\"5.12.0.375.gc561e17+\"},\"metrics\":[{\"name\":\"unit."
-      "tests\",\"description\":\"Example gauge "
-      "metric\",\"gauge\":{\"dataPoints\":[{\"attributes\":[{\"key\":\"metric."
-      "label\",\"value\":{\"stringValue\":\"test "
-      "label\"}}],\"timeUnixNano\":0,\"asDouble\":42}]}}]}]},{\"resource\":{"
-      "\"attributes\":[{\"key\":\"service.name\",\"value\":{\"stringValue\":"
-      "\"unit "
-      "test\"}}]},\"scopeMetrics\":[{\"scope\":{\"name\":\"collectd\","
-      "\"version\":\"5.12.0.375.gc561e17+\"},\"metrics\":[{\"name\":\"unit."
-      "test.count\",\"description\":\"Example counter "
-      "metric\",\"sum\":{\"dataPoints\":[{\"attributes\":[{\"key\":\"metric."
-      "label\",\"value\":{\"stringValue\":\"bar\"}}],\"timeUnixNano\":0,"
-      "\"asInt\":31337}],\"aggregationTemporality\":\"2\",\"isMonotonic\":true}"
-      "}]}]}]}",
-      buf.ptr);
+  EXPECT_EQ_STR("{\"resourceMetrics\":[{\"resource\":{\"attributes\":[{\"key\":"
+                "\"service.name\",\"value\":{\"stringValue\":\"unit "
+                "test\"}}]},\"scopeMetrics\":[{\"scope\":{\"name\":"
+                "\"collectd\",\"version\":\"" PACKAGE_VERSION
+                "\"},\"metrics\":[{\"name\":\"unit.tests\",\"description\":"
+                "\"Example gauge "
+                "metric\",\"gauge\":{\"dataPoints\":[{\"attributes\":[{\"key\":"
+                "\"metric.label\",\"value\":{\"stringValue\":\"test "
+                "label\"}}],\"timeUnixNano\":0,\"asDouble\":42.0}]}}]}]},{"
+                "\"resource\":{\"attributes\":[{\"key\":\"service.name\","
+                "\"value\":{\"stringValue\":\"unit "
+                "test\"}}]},\"scopeMetrics\":[{\"scope\":{\"name\":"
+                "\"collectd\",\"version\":\"" PACKAGE_VERSION
+                "\"},\"metrics\":[{\"name\":\"unit.test.count\","
+                "\"description\":\"Example counter "
+                "metric\",\"sum\":{\"dataPoints\":[{\"attributes\":[{\"key\":"
+                "\"metric.label\",\"value\":{\"stringValue\":\"bar\"}}],"
+                "\"timeUnixNano\":0,\"asInt\":31337}],"
+                "\"aggregationTemporality\":\"2\",\"isMonotonic\":true}}]}]}]}",
+                buf.ptr);
 
   STRBUF_DESTROY(buf);
   label_set_reset(&fams[0]->resource);
index 4a754b18d8edecdb24bda558c404ecef45e15fd4..5f0af1e50d5e6f125bfc038bd748bddfbf1d09ac 100644 (file)
@@ -93,7 +93,7 @@ static int number_data_point(yajl_gen g, metric_t const *m) {
     break;
   case METRIC_TYPE_GAUGE:
     CHECK(json_add_string(g, "asDouble"));
-    CHECK(yajl_gen_integer(g, m->value.gauge));
+    CHECK(yajl_gen_double(g, m->value.gauge));
     break;
   case METRIC_TYPE_UNTYPED:
     // TODO