From: Lennart Poettering Date: Wed, 18 Feb 2026 10:38:40 +0000 (+0100) Subject: metrics: show metrics 'keys' before 'values' X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98417865814baa0a6560fee507f7c0cc4653f0f1;p=thirdparty%2Fsystemd.git metrics: show metrics 'keys' before 'values' 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. --- diff --git a/src/shared/varlink-io.systemd.Metrics.c b/src/shared/varlink-io.systemd.Metrics.c index e9d463e9fd5..f4623f1f159 100644 --- a/src/shared/varlink-io.systemd.Metrics.c +++ b/src/shared/varlink-io.systemd.Metrics.c @@ -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,