Hey,
I found a bug in the nvidia-smi exporter. Power-states now start with a `P` prefix.
Driver: 535.54.03
GPU: NVIDIA T400
root@Tower:~# nvidia-smi -q -x | grep state
<performance_state>P0</performance_state>
<power_state>P0</power_state>
<power_state>P0</power_state>
<state>N/A</state>
Currently I am getting the following error in Prometheus:
expected value after metric, got "\n" ("INVALID") while parsing: "nvidiasmi_power_state_int{id=\"00000000:01:00.0\",uuid=\"GPU-9939bddd-4894-5658-1192-eac5d9ce2151\",name=\"NVIDIA T400\"} \n"
Metrics looks like this
nvidiasmi_driver_version{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 535.54
nvidiasmi_cuda_version{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 12.2
nvidiasmi_attached_gpus{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1
nvidiasmi_pci_pcie_gen_max{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 3
nvidiasmi_pci_pcie_gen_current{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 3
nvidiasmi_pci_link_width_max_multiplicator{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 16
nvidiasmi_pci_link_width_current_multiplicator{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 16
nvidiasmi_pci_replay_counter{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_pci_replay_rollover_counter{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_pci_tx_util_bytes_per_second{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2e+06
nvidiasmi_pci_rx_util_bytes_per_second{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_fan_speed_percent{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 38
nvidiasmi_performance_state_int{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_fb_memory_usage_total_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2.147483648e+09
nvidiasmi_fb_memory_usage_used_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 6.59554304e+08
nvidiasmi_fb_memory_usage_free_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1.298137088e+09
nvidiasmi_bar1_memory_usage_total_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2.68435456e+08
nvidiasmi_bar1_memory_usage_used_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 5.24288e+06
nvidiasmi_bar1_memory_usage_free_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2.63192576e+08
nvidiasmi_utilization_gpu_percent{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 3
nvidiasmi_utilization_memory_percent{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 3
nvidiasmi_utilization_encoder_percent{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 8
nvidiasmi_utilization_decoder_percent{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2
nvidiasmi_encoder_session_count{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1
nvidiasmi_encoder_average_fps{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 6
nvidiasmi_encoder_average_latency{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 31910
nvidiasmi_fbc_session_count{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_fbc_average_fps{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_fbc_average_latency{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_gpu_temp_celsius{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 47
nvidiasmi_gpu_temp_max_threshold_celsius{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 101
nvidiasmi_gpu_temp_slow_threshold_celsius{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 98
nvidiasmi_gpu_temp_max_gpu_threshold_celsius{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 93
nvidiasmi_memory_temp_celsius{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_gpu_temp_max_mem_threshold_celsius{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_power_state_int{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"}
nvidiasmi_power_draw_watts{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_power_limit_watts{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_default_power_limit_watts{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_enforced_power_limit_watts{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_min_power_limit_watts{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_max_power_limit_watts{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_clock_graphics_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1.335e+09
nvidiasmi_clock_graphics_max_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2.1e+09
nvidiasmi_clock_sm_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1.335e+09
nvidiasmi_clock_sm_max_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 2.1e+09
nvidiasmi_clock_mem_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 5e+09
nvidiasmi_clock_mem_max_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 5.001e+09
nvidiasmi_clock_video_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1.23e+09
nvidiasmi_clock_video_max_hertz{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 1.95e+09
nvidiasmi_clock_policy_auto_boost{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_clock_policy_auto_boost_default{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400"} 0
nvidiasmi_process_used_memory_bytes{id="00000000:01:00.0",uuid="GPU-9939bddd-4894-5658-1192-eac5d9ce2151",name="NVIDIA T400",process_pid="3515",process_type="C"} 6.56408576e+08
The error might be in this function
func filterNumber(value string) string {
if value == "N/A" {
return "0"
}
r := regexp.MustCompile("[^0-9.]")
return r.ReplaceAllString(value, "")
}
------------------------------
EDIT:
I might found a solution but cannot test it.
The XML looks different now:
root@Tower:~# nvidia-smi -q -x | grep power_state
<gpu_power_readings>
<power_state>P0</power_state>
<power_draw>N/A</power_draw>
<current_power_limit>31.32 W</current_power_limit>
<requested_power_limit>31.32 W</requested_power_limit>
<default_power_limit>31.32 W</default_power_limit>
<min_power_limit>20.00 W</min_power_limit>
<max_power_limit>31.32 W</max_power_limit>
</gpu_power_readings>
Instead of "power_readings" it is "gpu_power_readings" now...
https://github.com/e7d/docker-prometheus-nvidiasmi/pull/2/commits