[pve-devel] [PATCH container v4 1/2] metrics: add pressures to metrics
Aaron Lauterer
a.lauterer at proxmox.com
Sat Jul 26 03:06:25 CEST 2025
From: Folke Gleumes <f.gleumes at proxmox.com>
Originally-by: Folke Gleumes <f.gleumes at proxmox.com>
[AL:
* rebased on current master
* switch to new, more generic read_cgroup_pressure function
* add pressures to return properties
]
Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
---
Notes:
changes since:
v2:
* add return properties for pressures
* reorder to run before cpu info collection, otherwise that might
trigger 'next', skipping the pressure collection. For example when
using `pvesh` for the 'current' API endpoint
src/PVE/LXC.pm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index 741bb33..1870b4b 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -227,6 +227,32 @@ our $vmstatus_return_properties = {
optional => 1,
default => 0,
},
+ pressurecpusome => {
+ description => "CPU Some pressure average over the last 10 seconds.",
+ type => 'number',
+ optional => 1,
+ },
+ pressureiosome => {
+ description => "IO Some pressure average over the last 10 seconds.",
+ type => 'number',
+ optional => 1,
+ },
+ pressureiofull => {
+ description => "IO Full pressure average over the last 10 seconds.",
+ type => 'number',
+ optional => 1,
+ },
+ pressurememorysome => {
+ description => "Memory Some pressure average over the last 10 seconds.",
+ type => 'number',
+ optional => 1,
+ },
+ pressurememoryfull => {
+ description => "Memory Full pressure average over the last 10 seconds.",
+ type => 'number',
+ optional => 1,
+ },
+
};
sub vmstatus {
@@ -329,6 +355,14 @@ sub vmstatus {
$d->{diskwrite} = 0;
}
+ my $pressures = PVE::ProcFSTools::read_cgroup_pressure("lxc/${vmid}");
+ $d->{pressurecpusome} = $pressures->{cpu}{some}{avg10};
+ $d->{pressurecpufull} = $pressures->{cpu}{full}{avg10};
+ $d->{pressureiosome} = $pressures->{io}{some}{avg10};
+ $d->{pressureiofull} = $pressures->{io}{full}{avg10};
+ $d->{pressurememorysome} = $pressures->{memory}{some}{avg10};
+ $d->{pressurememoryfull} = $pressures->{memory}{full}{avg10};
+
if (defined(my $cpu = $cgroups->get_cpu_stat())) {
# Total time (in milliseconds) used up by the cpu.
my $used_ms = $cpu->{utime} + $cpu->{stime};
--
2.39.5
More information about the pve-devel
mailing list