From: Lennart Poettering Date: Wed, 13 May 2026 13:00:08 +0000 (+0200) Subject: report-basic: export PhysicalMemorybytes + CPUsOnline metrics X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5f27e51f9f57f50944821fea31a8673154dfb7f;p=thirdparty%2Fsystemd.git report-basic: export PhysicalMemorybytes + CPUsOnline metrics --- diff --git a/src/report/report-basic.c b/src/report/report-basic.c index 772a5d9f742..43c9cb97741 100644 --- a/src/report/report-basic.c +++ b/src/report/report-basic.c @@ -8,7 +8,9 @@ #include "alloc-util.h" #include "architecture.h" +#include "cpu-set-util.h" #include "hostname-setup.h" +#include "limits-util.h" #include "log.h" #include "metrics.h" #include "os-util.h" @@ -100,6 +102,37 @@ static int machine_id_generate(const MetricFamily *mf, sd_varlink *link, void *u /* fields= */ NULL); } +static int physical_memory_generate(const MetricFamily *mf, sd_varlink *link, void *userdata) { + assert(mf && mf->name); + assert(link); + + return metric_build_send_unsigned( + mf, + link, + /* object= */ NULL, + physical_memory(), + /* fields= */ NULL); +} + +static int cpus_online_generate(const MetricFamily *mf, sd_varlink *link, void *userdata) { + int r; + + assert(mf && mf->name); + assert(link); + + unsigned n_cpus; + r = cpus_online(&n_cpus); + if (r < 0) + return r; + + return metric_build_send_unsigned( + mf, + link, + /* object= */ NULL, + n_cpus, + /* fields= */ NULL); +} + enum { FIELD_PRETTY_NAME, FIELD_NAME, @@ -203,6 +236,12 @@ static const MetricFamily metric_family_table[] = { METRIC_FAMILY_TYPE_STRING, .generate = boot_id_generate, }, + { + METRIC_IO_SYSTEMD_BASIC_PREFIX "CPUsOnline", + "Number of CPUs currently online", + METRIC_FAMILY_TYPE_GAUGE, + .generate = cpus_online_generate, + }, { METRIC_IO_SYSTEMD_BASIC_PREFIX "Hostname", "System hostname", @@ -239,6 +278,12 @@ static const MetricFamily metric_family_table[] = { OS_RELEASE_STANDARD_FIELD("SYSEXT_LEVEL"), OS_RELEASE_STANDARD_FIELD("CONFEXT_LEVEL"), /* Keep those ↑ in sync with os_release_generate(). */ + { + METRIC_IO_SYSTEMD_BASIC_PREFIX "PhysicalMemoryBytes", + "Installed physical memory in bytes", + METRIC_FAMILY_TYPE_GAUGE, + .generate = physical_memory_generate, + }, { METRIC_IO_SYSTEMD_BASIC_PREFIX "Virtualization", "Virtualization type",