report-basic: cpu, memory, pressure, and disk metrics
Extend the io.systemd.Basic metric families with host-level runtime metrics: cumulative per-state CPU seconds, memory in use (MemTotal minus MemAvailable), swap in use, the kernel's 10s pressure stall averages (cpu/memory/io x some/full). Partitions and stacked devices are excluded from the disk counters, since their traffic is already accounted for in the parent device. Also extend the TEST-74 report subtest with checks for the new metrics. Network metrics are not added, because the service runs with PrivateNetwork=yes, and it doesn't make sense to report stats for 'lo'. After some back-and-forth, I settled on "CPUUsage". We use this scheme of capitalization in other metric family names: "IPv4Public", "IPv6Public", IPv4AddressState", "IPv6AddressState", "OSRelease" "SMBIOS" "BootID", "CPUsOnline", "MachineID", "MachineInfo", "OSRelease", "SMBIOS.SystemManufacturer", "TPM2.Manufacturer", "TPM2.VendorString", "IOReadBytes", "IOReadOperations", "CGroup". The exception is "io.systemd.cgroup.CpuUsage". I think we should treat that one as a mistake and consider changing it to conform.
This commit is contained in:
@@ -9,6 +9,7 @@ int procfs_get_threads_max(uint64_t *ret);
|
||||
int procfs_tasks_set_limit(uint64_t limit);
|
||||
int procfs_tasks_get_current(uint64_t *ret);
|
||||
|
||||
nsec_t procfs_ticks_to_nsec(uint64_t ticks);
|
||||
int procfs_cpu_get_usage(nsec_t *ret);
|
||||
|
||||
typedef struct ProcfsCpuTicks {
|
||||
|
||||
Reference in New Issue
Block a user