From 8b1fc9e43673e459bd24764eecad33c7a2e5cb0c Mon Sep 17 00:00:00 2001 From: "Mr. Creditcard" Date: Thu, 29 Jan 2026 09:12:17 +0100 Subject: [PATCH] Fix GPU power_draw & power_limit for schema v13 In the nvidia smi schema v13 the elements containing the power draw & power limit of the GPU have been changed. This commit contains a workaround for this, similar to an already existing workaround in the nvidia_smi plugin. --- cmk/plugins/collection/agent_based/nvidia_smi.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmk/plugins/collection/agent_based/nvidia_smi.py b/cmk/plugins/collection/agent_based/nvidia_smi.py index c9c9a5c6cf4..53214f3f50e 100644 --- a/cmk/plugins/collection/agent_based/nvidia_smi.py +++ b/cmk/plugins/collection/agent_based/nvidia_smi.py @@ -154,6 +154,12 @@ def parse_nvidia_smi(string_table: StringTable) -> Section: power_readings_element = "gpu_power_readings" if xml.find(f"gpu/{power_readings_element}") is None: power_readings_element = "power_readings" + gpu_power_draw_element = "average_power_draw" + if xml.find(f"gpu/{power_readings_element}/{gpu_power_draw_element}") is None: + gpu_power_draw_element = "power_draw" + gpu_power_limit_element = "current_power_limit" + if xml.find(f"gpu/{power_readings_element}/{gpu_power_limit_element}") is None: + gpu_power_limit_element = "power_limit" has_power_management = xml.find(f"gpu/{power_readings_element}/power_management") is not None return Section( timestamp=( @@ -184,10 +190,10 @@ def parse_nvidia_smi(string_table: StringTable) -> Section: else PowerManagement.SUPPORTED ), power_draw=get_float_from_element( - gpu.find(f"{power_readings_element}/power_draw"), "W" + gpu.find(f"{power_readings_element}/{gpu_power_draw_element}"), "W" ), power_limit=get_float_from_element( - gpu.find(f"{power_readings_element}/power_limit"), "W" + gpu.find(f"{power_readings_element}/{gpu_power_limit_element}"), "W" ), default_power_limit=get_float_from_element( gpu.find(f"{power_readings_element}/default_power_limit"), "W"