Skip to content

Commit 8b1fc9e

Browse files
committed
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.
1 parent 76758ff commit 8b1fc9e

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

cmk/plugins/collection/agent_based/nvidia_smi.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,12 @@ def parse_nvidia_smi(string_table: StringTable) -> Section:
154154
power_readings_element = "gpu_power_readings"
155155
if xml.find(f"gpu/{power_readings_element}") is None:
156156
power_readings_element = "power_readings"
157+
gpu_power_draw_element = "average_power_draw"
158+
if xml.find(f"gpu/{power_readings_element}/{gpu_power_draw_element}") is None:
159+
gpu_power_draw_element = "power_draw"
160+
gpu_power_limit_element = "current_power_limit"
161+
if xml.find(f"gpu/{power_readings_element}/{gpu_power_limit_element}") is None:
162+
gpu_power_limit_element = "power_limit"
157163
has_power_management = xml.find(f"gpu/{power_readings_element}/power_management") is not None
158164
return Section(
159165
timestamp=(
@@ -184,10 +190,10 @@ def parse_nvidia_smi(string_table: StringTable) -> Section:
184190
else PowerManagement.SUPPORTED
185191
),
186192
power_draw=get_float_from_element(
187-
gpu.find(f"{power_readings_element}/power_draw"), "W"
193+
gpu.find(f"{power_readings_element}/{gpu_power_draw_element}"), "W"
188194
),
189195
power_limit=get_float_from_element(
190-
gpu.find(f"{power_readings_element}/power_limit"), "W"
196+
gpu.find(f"{power_readings_element}/{gpu_power_limit_element}"), "W"
191197
),
192198
default_power_limit=get_float_from_element(
193199
gpu.find(f"{power_readings_element}/default_power_limit"), "W"

0 commit comments

Comments
 (0)