]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
write_prometheus plugin: Emit the "target info" label as a gauge by default.
authorFlorian Forster <octo@collectd.org>
Mon, 25 Dec 2023 22:00:18 +0000 (23:00 +0100)
committerFlorian Forster <octo@collectd.org>
Thu, 28 Dec 2023 19:13:31 +0000 (20:13 +0100)
Prometheus doesn't know the "info" type metrics that OpenMetrics talks
about. Instead, is has a *convention* of using a gauge metric named
"target_info".

src/write_prometheus.c
src/write_prometheus_test.c

index b6538b6c996f0947238020c4ab22a377c33f1cb7..a09aab65fcb10c5124cb96380b65e8fd96ba8997 100644 (file)
@@ -271,8 +271,13 @@ void target_info(strbuf_t *buf, label_set_t resource) {
   label_set_update(&rattr, "service.name", NULL);
   label_set_update(&rattr, "service.instance.id", NULL);
 
+#ifdef EXPOSE_OPEN_METRICS
   strbuf_print(buf, "# TYPE target info\n");
   strbuf_print(buf, "# HELP target Target metadata\n");
+#else
+  strbuf_print(buf, "# HELP target_info Target metadata\n");
+  strbuf_print(buf, "# TYPE target_info gauge\n");
+#endif
 
   strbuf_print(buf, "target_info{");
   format_label_set(buf, rattr, job, instance);
index 3ea85b415e6ace549635719ae6832d101e013c16..851430e05eb843755d26a5854695021cf1c56987 100644 (file)
@@ -268,8 +268,8 @@ DEF_TEST(target_info) {
                   .ptr = &(label_pair_t){"foo", "bar"},
                   .num = 1,
               },
-          .want = "# TYPE target info\n"
-                  "# HELP target Target metadata\n"
+          .want = "# HELP target_info Target metadata\n"
+                  "# TYPE target_info gauge\n"
                   "target_info{foo=\"bar\"} 1\n",
       },
       {
@@ -279,8 +279,8 @@ DEF_TEST(target_info) {
                   .ptr = &(label_pair_t){"service.name", "unittest"},
                   .num = 1,
               },
-          .want = "# TYPE target info\n"
-                  "# HELP target Target metadata\n"
+          .want = "# HELP target_info Target metadata\n"
+                  "# TYPE target_info gauge\n"
                   "target_info{job=\"unittest\"} 1\n",
       },
       {
@@ -290,8 +290,8 @@ DEF_TEST(target_info) {
                   .ptr = &(label_pair_t){"service.instance.id", "42"},
                   .num = 1,
               },
-          .want = "# TYPE target info\n"
-                  "# HELP target Target metadata\n"
+          .want = "# HELP target_info Target metadata\n"
+                  "# TYPE target_info gauge\n"
                   "target_info{instance=\"42\"} 1\n",
       },
   };