From ab6133b12334d40e59296767998b7011d5efb38b Mon Sep 17 00:00:00 2001 From: Sven Rebhan <36194019+srebhan@users.noreply.github.com> Date: Fri, 3 May 2024 15:07:16 -0400 Subject: [PATCH] feat(inputs.nvidia_smi): Add power-limit field for v12 scheme (#15282) --- plugins/inputs/nvidia_smi/nvidia_smi_test.go | 51 +- .../inputs/nvidia_smi/schema_v12/parser.go | 2 + plugins/inputs/nvidia_smi/schema_v12/types.go | 1 + .../nvidia_smi/testdata/rtx-3090-v12.xml | 765 ++++++++++++++++++ 4 files changed, 818 insertions(+), 1 deletion(-) create mode 100644 plugins/inputs/nvidia_smi/testdata/rtx-3090-v12.xml diff --git a/plugins/inputs/nvidia_smi/nvidia_smi_test.go b/plugins/inputs/nvidia_smi/nvidia_smi_test.go index 1478b6c33..23c57e5f6 100644 --- a/plugins/inputs/nvidia_smi/nvidia_smi_test.go +++ b/plugins/inputs/nvidia_smi/nvidia_smi_test.go @@ -257,7 +257,8 @@ func TestGatherValidXML(t *testing.T) { "memory_used": 1, "pcie_link_gen_current": 1, "pcie_link_width_current": 8, - "power_draw": float64(4.61), + "power_draw": 4.61, + "power_limit": 75.0, "serial": "0322218049033", "temperature_gpu": 34, "utilization_gpu": 0, @@ -493,6 +494,54 @@ func TestGatherValidXML(t *testing.T) { time.Unix(1689872450, 0)), }, }, + { + name: "RTC 3090 schema v12", + filename: "rtx-3090-v12.xml", + expected: []telegraf.Metric{ + testutil.MustMetric( + "nvidia_smi", + map[string]string{ + "compute_mode": "Default", + "index": "0", + "name": "NVIDIA GeForce RTX 3090", + "arch": "Ampere", + "pstate": "P8", + "uuid": "GPU-12345678-aaaa-bbbb-cccc-0123456789ab", + }, + map[string]interface{}{ + "clocks_current_graphics": 0, + "clocks_current_memory": 405, + "clocks_current_sm": 0, + "clocks_current_video": 555, + "cuda_version": "12.0", + "display_active": "Disabled", + "display_mode": "Disabled", + "driver_version": "525.147.05", + "encoder_stats_average_fps": 0, + "encoder_stats_average_latency": 0, + "encoder_stats_session_count": 0, + "fbc_stats_average_fps": 0, + "fbc_stats_average_latency": 0, + "fbc_stats_session_count": 0, + "fan_speed": 0, + "power_draw": 27.23, + "power_limit": 200.0, + "memory_free": 24258, + "memory_total": 24576, + "memory_used": 1, + "memory_reserved": 316, + "pcie_link_gen_current": 1, + "pcie_link_width_current": 16, + "temperature_gpu": 37, + "utilization_gpu": 0, + "utilization_memory": 0, + "utilization_encoder": 0, + "utilization_decoder": 0, + "vbios_version": "94.02.71.40.72", + }, + time.Unix(1689872450, 0)), + }, + }, { name: "A100-SXM4 schema v12", filename: "a100-sxm4-v12.xml", diff --git a/plugins/inputs/nvidia_smi/schema_v12/parser.go b/plugins/inputs/nvidia_smi/schema_v12/parser.go index ad8eab4cc..8109b0aac 100644 --- a/plugins/inputs/nvidia_smi/schema_v12/parser.go +++ b/plugins/inputs/nvidia_smi/schema_v12/parser.go @@ -76,7 +76,9 @@ func Parse(acc telegraf.Accumulator, buf []byte) error { common.SetIfUsed("int", fields, "clocks_current_memory", gpu.Clocks.MemClock) common.SetIfUsed("int", fields, "clocks_current_video", gpu.Clocks.VideoClock) common.SetIfUsed("float", fields, "power_draw", gpu.PowerReadings.PowerDraw) + common.SetIfUsed("float", fields, "power_limit", gpu.PowerReadings.PowerLimit) common.SetIfUsed("float", fields, "power_draw", gpu.GpuPowerReadings.PowerDraw) + common.SetIfUsed("float", fields, "power_limit", gpu.GpuPowerReadings.PowerLimit) common.SetIfUsed("float", fields, "module_power_draw", gpu.ModulePowerReadings.PowerDraw) acc.AddFields("nvidia_smi", fields, tags, timestamp) diff --git a/plugins/inputs/nvidia_smi/schema_v12/types.go b/plugins/inputs/nvidia_smi/schema_v12/types.go index 1c680713b..a65c7c8a1 100644 --- a/plugins/inputs/nvidia_smi/schema_v12/types.go +++ b/plugins/inputs/nvidia_smi/schema_v12/types.go @@ -114,6 +114,7 @@ type smi struct { MaxPowerLimit string `xml:"max_power_limit"` MinPowerLimit string `xml:"min_power_limit"` PowerDraw string `xml:"power_draw"` + PowerLimit string `xml:"power_limit"` PowerState string `xml:"power_state"` RequestedPowerLimit string `xml:"requested_power_limit"` } `xml:"gpu_power_readings"` diff --git a/plugins/inputs/nvidia_smi/testdata/rtx-3090-v12.xml b/plugins/inputs/nvidia_smi/testdata/rtx-3090-v12.xml new file mode 100644 index 000000000..405c34cde --- /dev/null +++ b/plugins/inputs/nvidia_smi/testdata/rtx-3090-v12.xml @@ -0,0 +1,765 @@ + + + + Fri May 3 11:54:37 2024 + 525.147.05 + 12.0 + 1 + + NVIDIA GeForce RTX 3090 + GeForce + Ampere + Disabled + Disabled + Enabled + + N/A + N/A + + + None + + Disabled + 4000 + + N/A + N/A + + N/A + GPU-12345678-aaaa-bbbb-cccc-0123456789ab + 0 + 94.02.71.40.72 + No + 0x10 + N/A + [REDACTED] + 1 + + [REDACTED] + 2.0 + N/A + N/A + + + N/A + N/A + + N/A + + Pass-Through + N/A + + + N/A + + + 00 + 10 + 0000 + [REDACTED] + 00000000:00:10.0 + [REDACTED] + + + 4 + 1 + 1 + 4 + N/A + + + 16x + 16x + + + + N/A + N/A + + 0 + 0 + 0 KB/s + 0 KB/s + N/A + N/A + + 0 % + P8 + + Active + Not Active + Not Active + Not Active + Not Active + Not Active + Not Active + Not Active + Not Active + + + 24576 MiB + 316 MiB + 1 MiB + 24258 MiB + + + 32768 MiB + 2 MiB + 32766 MiB + + Default + + 0 % + 0 % + 0 % + 0 % + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + N/A + N/A + + + + N/A + N/A + N/A + N/A + + + N/A + N/A + N/A + N/A + + + + + N/A + N/A + + + N/A + N/A + + N/A + N/A + + N/A + + 37 C + N/A + 98 C + 95 C + 93 C + 83 C + N/A + N/A + + + 65 C + 91 C + + + P8 + Supported + 27.23 W + 200.00 W + 350.00 W + 200.00 W + 100.00 W + 375.00 W + + + 0 MHz + 0 MHz + 405 MHz + 555 MHz + + + N/A + N/A + + + N/A + N/A + + + N/A + + + 2100 MHz + 2100 MHz + 9751 MHz + 1950 MHz + + + N/A + + + N/A + N/A + + + 0.000 mV + + + N/A + N/A + + + + 9751 MHz + 2100 MHz + 2085 MHz + 2070 MHz + 2055 MHz + 2040 MHz + 2025 MHz + 2010 MHz + 1995 MHz + 1980 MHz + 1965 MHz + 1950 MHz + 1935 MHz + 1920 MHz + 1905 MHz + 1890 MHz + 1875 MHz + 1860 MHz + 1845 MHz + 1830 MHz + 1815 MHz + 1800 MHz + 1785 MHz + 1770 MHz + 1755 MHz + 1740 MHz + 1725 MHz + 1710 MHz + 1695 MHz + 1680 MHz + 1665 MHz + 1650 MHz + 1635 MHz + 1620 MHz + 1605 MHz + 1590 MHz + 1575 MHz + 1560 MHz + 1545 MHz + 1530 MHz + 1515 MHz + 1500 MHz + 1485 MHz + 1470 MHz + 1455 MHz + 1440 MHz + 1425 MHz + 1410 MHz + 1395 MHz + 1380 MHz + 1365 MHz + 1350 MHz + 1335 MHz + 1320 MHz + 1305 MHz + 1290 MHz + 1275 MHz + 1260 MHz + 1245 MHz + 1230 MHz + 1215 MHz + 1200 MHz + 1185 MHz + 1170 MHz + 1155 MHz + 1140 MHz + 1125 MHz + 1110 MHz + 1095 MHz + 1080 MHz + 1065 MHz + 1050 MHz + 1035 MHz + 1020 MHz + 1005 MHz + 990 MHz + 975 MHz + 960 MHz + 945 MHz + 930 MHz + 915 MHz + 900 MHz + 885 MHz + 870 MHz + 855 MHz + 840 MHz + 825 MHz + 810 MHz + 795 MHz + 780 MHz + 765 MHz + 750 MHz + 735 MHz + 720 MHz + 705 MHz + 690 MHz + 675 MHz + 660 MHz + 645 MHz + 630 MHz + 615 MHz + 600 MHz + 585 MHz + 570 MHz + 555 MHz + 540 MHz + 525 MHz + 510 MHz + 495 MHz + 480 MHz + 465 MHz + 450 MHz + 435 MHz + 420 MHz + 405 MHz + 390 MHz + 375 MHz + 360 MHz + 345 MHz + 330 MHz + 315 MHz + 300 MHz + 285 MHz + 270 MHz + 255 MHz + 240 MHz + 225 MHz + 210 MHz + + + 9501 MHz + 2100 MHz + 2085 MHz + 2070 MHz + 2055 MHz + 2040 MHz + 2025 MHz + 2010 MHz + 1995 MHz + 1980 MHz + 1965 MHz + 1950 MHz + 1935 MHz + 1920 MHz + 1905 MHz + 1890 MHz + 1875 MHz + 1860 MHz + 1845 MHz + 1830 MHz + 1815 MHz + 1800 MHz + 1785 MHz + 1770 MHz + 1755 MHz + 1740 MHz + 1725 MHz + 1710 MHz + 1695 MHz + 1680 MHz + 1665 MHz + 1650 MHz + 1635 MHz + 1620 MHz + 1605 MHz + 1590 MHz + 1575 MHz + 1560 MHz + 1545 MHz + 1530 MHz + 1515 MHz + 1500 MHz + 1485 MHz + 1470 MHz + 1455 MHz + 1440 MHz + 1425 MHz + 1410 MHz + 1395 MHz + 1380 MHz + 1365 MHz + 1350 MHz + 1335 MHz + 1320 MHz + 1305 MHz + 1290 MHz + 1275 MHz + 1260 MHz + 1245 MHz + 1230 MHz + 1215 MHz + 1200 MHz + 1185 MHz + 1170 MHz + 1155 MHz + 1140 MHz + 1125 MHz + 1110 MHz + 1095 MHz + 1080 MHz + 1065 MHz + 1050 MHz + 1035 MHz + 1020 MHz + 1005 MHz + 990 MHz + 975 MHz + 960 MHz + 945 MHz + 930 MHz + 915 MHz + 900 MHz + 885 MHz + 870 MHz + 855 MHz + 840 MHz + 825 MHz + 810 MHz + 795 MHz + 780 MHz + 765 MHz + 750 MHz + 735 MHz + 720 MHz + 705 MHz + 690 MHz + 675 MHz + 660 MHz + 645 MHz + 630 MHz + 615 MHz + 600 MHz + 585 MHz + 570 MHz + 555 MHz + 540 MHz + 525 MHz + 510 MHz + 495 MHz + 480 MHz + 465 MHz + 450 MHz + 435 MHz + 420 MHz + 405 MHz + 390 MHz + 375 MHz + 360 MHz + 345 MHz + 330 MHz + 315 MHz + 300 MHz + 285 MHz + 270 MHz + 255 MHz + 240 MHz + 225 MHz + 210 MHz + + + 5001 MHz + 2100 MHz + 2085 MHz + 2070 MHz + 2055 MHz + 2040 MHz + 2025 MHz + 2010 MHz + 1995 MHz + 1980 MHz + 1965 MHz + 1950 MHz + 1935 MHz + 1920 MHz + 1905 MHz + 1890 MHz + 1875 MHz + 1860 MHz + 1845 MHz + 1830 MHz + 1815 MHz + 1800 MHz + 1785 MHz + 1770 MHz + 1755 MHz + 1740 MHz + 1725 MHz + 1710 MHz + 1695 MHz + 1680 MHz + 1665 MHz + 1650 MHz + 1635 MHz + 1620 MHz + 1605 MHz + 1590 MHz + 1575 MHz + 1560 MHz + 1545 MHz + 1530 MHz + 1515 MHz + 1500 MHz + 1485 MHz + 1470 MHz + 1455 MHz + 1440 MHz + 1425 MHz + 1410 MHz + 1395 MHz + 1380 MHz + 1365 MHz + 1350 MHz + 1335 MHz + 1320 MHz + 1305 MHz + 1290 MHz + 1275 MHz + 1260 MHz + 1245 MHz + 1230 MHz + 1215 MHz + 1200 MHz + 1185 MHz + 1170 MHz + 1155 MHz + 1140 MHz + 1125 MHz + 1110 MHz + 1095 MHz + 1080 MHz + 1065 MHz + 1050 MHz + 1035 MHz + 1020 MHz + 1005 MHz + 990 MHz + 975 MHz + 960 MHz + 945 MHz + 930 MHz + 915 MHz + 900 MHz + 885 MHz + 870 MHz + 855 MHz + 840 MHz + 825 MHz + 810 MHz + 795 MHz + 780 MHz + 765 MHz + 750 MHz + 735 MHz + 720 MHz + 705 MHz + 690 MHz + 675 MHz + 660 MHz + 645 MHz + 630 MHz + 615 MHz + 600 MHz + 585 MHz + 570 MHz + 555 MHz + 540 MHz + 525 MHz + 510 MHz + 495 MHz + 480 MHz + 465 MHz + 450 MHz + 435 MHz + 420 MHz + 405 MHz + 390 MHz + 375 MHz + 360 MHz + 345 MHz + 330 MHz + 315 MHz + 300 MHz + 285 MHz + 270 MHz + 255 MHz + 240 MHz + 225 MHz + 210 MHz + + + 810 MHz + 2100 MHz + 2085 MHz + 2070 MHz + 2055 MHz + 2040 MHz + 2025 MHz + 2010 MHz + 1995 MHz + 1980 MHz + 1965 MHz + 1950 MHz + 1935 MHz + 1920 MHz + 1905 MHz + 1890 MHz + 1875 MHz + 1860 MHz + 1845 MHz + 1830 MHz + 1815 MHz + 1800 MHz + 1785 MHz + 1770 MHz + 1755 MHz + 1740 MHz + 1725 MHz + 1710 MHz + 1695 MHz + 1680 MHz + 1665 MHz + 1650 MHz + 1635 MHz + 1620 MHz + 1605 MHz + 1590 MHz + 1575 MHz + 1560 MHz + 1545 MHz + 1530 MHz + 1515 MHz + 1500 MHz + 1485 MHz + 1470 MHz + 1455 MHz + 1440 MHz + 1425 MHz + 1410 MHz + 1395 MHz + 1380 MHz + 1365 MHz + 1350 MHz + 1335 MHz + 1320 MHz + 1305 MHz + 1290 MHz + 1275 MHz + 1260 MHz + 1245 MHz + 1230 MHz + 1215 MHz + 1200 MHz + 1185 MHz + 1170 MHz + 1155 MHz + 1140 MHz + 1125 MHz + 1110 MHz + 1095 MHz + 1080 MHz + 1065 MHz + 1050 MHz + 1035 MHz + 1020 MHz + 1005 MHz + 990 MHz + 975 MHz + 960 MHz + 945 MHz + 930 MHz + 915 MHz + 900 MHz + 885 MHz + 870 MHz + 855 MHz + 840 MHz + 825 MHz + 810 MHz + 795 MHz + 780 MHz + 765 MHz + 750 MHz + 735 MHz + 720 MHz + 705 MHz + 690 MHz + 675 MHz + 660 MHz + 645 MHz + 630 MHz + 615 MHz + 600 MHz + 585 MHz + 570 MHz + 555 MHz + 540 MHz + 525 MHz + 510 MHz + 495 MHz + 480 MHz + 465 MHz + 450 MHz + 435 MHz + 420 MHz + 405 MHz + 390 MHz + 375 MHz + 360 MHz + 345 MHz + 330 MHz + 315 MHz + 300 MHz + 285 MHz + 270 MHz + 255 MHz + 240 MHz + 225 MHz + 210 MHz + + + 405 MHz + 420 MHz + 405 MHz + 390 MHz + 375 MHz + 360 MHz + 345 MHz + 330 MHz + 315 MHz + 300 MHz + 285 MHz + 270 MHz + 255 MHz + 240 MHz + 225 MHz + 210 MHz + + + + + + + + +