]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
metrics: show metrics 'keys' before 'values'
authorLennart Poettering <lennart@amutable.com>
Wed, 18 Feb 2026 10:38:40 +0000 (11:38 +0100)
committerLennart Poettering <lennart@amutable.com>
Fri, 20 Feb 2026 07:15:29 +0000 (08:15 +0100)
In a way, metrics are a key-value concept, where the key is a triplet of
metrics family name, object name, and "fields". Let's put them together
in the varlink call, and put the value last, separately from that.

Also, update docs a bit, i.e be explicit about the metrics *family* name
everyhwere.

src/shared/varlink-io.systemd.Metrics.c

index e9d463e9fd5fd7b43042667c9b9fd55f4107a6a3..f4623f1f159a711da5dbc8038bacf26d7900a468 100644 (file)
@@ -18,15 +18,15 @@ static SD_VARLINK_DEFINE_ERROR(NoSuchMetric);
 static SD_VARLINK_DEFINE_METHOD_FULL(
                 List,
                 SD_VARLINK_REQUIRES_MORE,
-                SD_VARLINK_FIELD_COMMENT("Metric name, e.g. io.systemd.Manager.unitsByTypeTotal or io.systemd.Manager.unitActiveState"),
+                SD_VARLINK_FIELD_COMMENT("Metric family name, e.g. io.systemd.Manager.unitsByTypeTotal or io.systemd.Manager.unitActiveState"),
                 SD_VARLINK_DEFINE_OUTPUT(name, SD_VARLINK_STRING, 0),
                 /* metric value has various types depending on MetricFamilyType and actual data double/int/uint */
-                SD_VARLINK_FIELD_COMMENT("Metric value"),
-                SD_VARLINK_DEFINE_OUTPUT(value, SD_VARLINK_ANY, 0),
                 SD_VARLINK_FIELD_COMMENT("Metric object name can be unit name, process name, etc, e.g. dev-hvc0.device"),
                 SD_VARLINK_DEFINE_OUTPUT(object, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Metric fields are values to differentiate between different metrics in the same metric family"),
-                SD_VARLINK_DEFINE_OUTPUT(fields, SD_VARLINK_OBJECT, SD_VARLINK_NULLABLE));
+                SD_VARLINK_DEFINE_OUTPUT(fields, SD_VARLINK_OBJECT, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Metric value"),
+                SD_VARLINK_DEFINE_OUTPUT(value, SD_VARLINK_ANY, 0));
 
 static SD_VARLINK_DEFINE_METHOD_FULL(
                 Describe,