Skip to content

Commit 2f8f920

Browse files
authored
additional metrics for pcidevice and id to name conversion (#3425)
* * Rebase from upstream * add sriov, power info support and pci id name resolution Signed-off-by: Jain Johny <[email protected]> * fix/remove debug lines Signed-off-by: Jain Johny <[email protected]> --------- Signed-off-by: Jain Johny <[email protected]> * add numa_node and missing test output file (#2) * add numa_node and missing test output file Signed-off-by: Jain Johny <[email protected]> * use c.logger for debug line Signed-off-by: Jain Johny <[email protected]> * point to procfs master Signed-off-by: Jain Johny <[email protected]> * include device_id in e2e-output pecidevice output Signed-off-by: Jain Johny <[email protected]> * fix typo in e2e-output.txt Signed-off-by: Jain Johny <[email protected]> * update test cases in e2e-64k-page-output.txt Signed-off-by: Jain Johny <[email protected]> * fixing the rebase Signed-off-by: Jain Johny <[email protected]> * move power_state to enum metric type, dont emit unavailable metrics Signed-off-by: Jain Johny <[email protected]> * change test fixtures for power state change Signed-off-by: Jain Johny <[email protected]> * change test fixtures for numa_node change Signed-off-by: Jain Johny <[email protected]> --------- Signed-off-by: Jain Johny <[email protected]>
1 parent 4f4ff38 commit 2f8f920

File tree

7 files changed

+3005
-43
lines changed

7 files changed

+3005
-43
lines changed

collector/fixtures/e2e-64k-page-output.txt

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2836,22 +2836,78 @@ node_os_version{id="ubuntu",id_like="debian",name="Ubuntu"} 20.04
28362836
# TYPE node_pcidevice_current_link_transfers_per_second gauge
28372837
node_pcidevice_current_link_transfers_per_second{bus="00",device="02",function="1",segment="0000"} 8e+09
28382838
node_pcidevice_current_link_transfers_per_second{bus="01",device="00",function="0",segment="0000"} 8e+09
2839+
node_pcidevice_current_link_transfers_per_second{bus="45",device="00",function="0",segment="0000"} 5e+09
28392840
# HELP node_pcidevice_current_link_width Value of current link's width (number of lanes)
28402841
# TYPE node_pcidevice_current_link_width gauge
28412842
node_pcidevice_current_link_width{bus="00",device="02",function="1",segment="0000"} 4
28422843
node_pcidevice_current_link_width{bus="01",device="00",function="0",segment="0000"} 4
2844+
node_pcidevice_current_link_width{bus="45",device="00",function="0",segment="0000"} 4
2845+
# HELP node_pcidevice_d3cold_allowed Whether the PCIe device supports D3cold power state (0/1).
2846+
# TYPE node_pcidevice_d3cold_allowed gauge
2847+
node_pcidevice_d3cold_allowed{bus="00",device="02",function="1",segment="0000"} 1
2848+
node_pcidevice_d3cold_allowed{bus="01",device="00",function="0",segment="0000"} 1
2849+
node_pcidevice_d3cold_allowed{bus="45",device="00",function="0",segment="0000"} 1
28432850
# HELP node_pcidevice_info Non-numeric data from /sys/bus/pci/devices/<location>, value is always 1.
28442851
# TYPE node_pcidevice_info gauge
2845-
node_pcidevice_info{bus="00",class_id="0x060400",device="02",function="1",parent_bus="*",parent_device="*",parent_function="*",parent_segment="*",revision="0x00",segment="0000",subsystem_device_id="0x5095",subsystem_vendor_id="0x17aa",vendor_id="0x1634"} 1
2846-
node_pcidevice_info{bus="01",class_id="0x010802",device="00",function="0",parent_bus="00",parent_device="02",parent_function="1",parent_segment="0000",revision="0x01",segment="0000",subsystem_device_id="0x5021",subsystem_vendor_id="0xc0a9",vendor_id="0x540a"} 1
2852+
node_pcidevice_info{bus="00",class_id="0x060400",device="02",device_id="0x1634",function="1",parent_bus="*",parent_device="*",parent_function="*",parent_segment="*",revision="0x00",segment="0000",subsystem_device_id="0x5095",subsystem_vendor_id="0x17aa",vendor_id="0x1022"} 1
2853+
node_pcidevice_info{bus="01",class_id="0x010802",device="00",device_id="0x540a",function="0",parent_bus="00",parent_device="02",parent_function="1",parent_segment="0000",revision="0x01",segment="0000",subsystem_device_id="0x5021",subsystem_vendor_id="0xc0a9",vendor_id="0xc0a9"} 1
2854+
node_pcidevice_info{bus="45",class_id="0x020000",device="00",device_id="0x1521",function="0",parent_bus="40",parent_device="01",parent_function="3",parent_segment="0000",revision="0x01",segment="0000",subsystem_device_id="0x00a3",subsystem_vendor_id="0x8086",vendor_id="0x8086"} 1
28472855
# HELP node_pcidevice_max_link_transfers_per_second Value of maximum link's transfers per second (T/s)
28482856
# TYPE node_pcidevice_max_link_transfers_per_second gauge
28492857
node_pcidevice_max_link_transfers_per_second{bus="00",device="02",function="1",segment="0000"} 8e+09
28502858
node_pcidevice_max_link_transfers_per_second{bus="01",device="00",function="0",segment="0000"} 1.6e+10
2859+
node_pcidevice_max_link_transfers_per_second{bus="45",device="00",function="0",segment="0000"} 5e+09
28512860
# HELP node_pcidevice_max_link_width Value of maximum link's width (number of lanes)
28522861
# TYPE node_pcidevice_max_link_width gauge
28532862
node_pcidevice_max_link_width{bus="00",device="02",function="1",segment="0000"} 8
28542863
node_pcidevice_max_link_width{bus="01",device="00",function="0",segment="0000"} 4
2864+
node_pcidevice_max_link_width{bus="45",device="00",function="0",segment="0000"} 4
2865+
# HELP node_pcidevice_numa_node NUMA node number for the PCI device. -1 indicates unknown or not available.
2866+
# TYPE node_pcidevice_numa_node gauge
2867+
node_pcidevice_numa_node{bus="45",device="00",function="0",segment="0000"} 0
2868+
# HELP node_pcidevice_power_state PCIe device power state, one of: D0, D1, D2, D3hot, D3cold, unknown or error.
2869+
# TYPE node_pcidevice_power_state gauge
2870+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D0"} 1
2871+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D1"} 0
2872+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D2"} 0
2873+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D3cold"} 0
2874+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D3hot"} 0
2875+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="error"} 0
2876+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="unknown"} 0
2877+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D0"} 1
2878+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D1"} 0
2879+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D2"} 0
2880+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D3cold"} 0
2881+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D3hot"} 0
2882+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="error"} 0
2883+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="unknown"} 0
2884+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D0"} 1
2885+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D1"} 0
2886+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D2"} 0
2887+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D3cold"} 0
2888+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D3hot"} 0
2889+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="error"} 0
2890+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="unknown"} 0
2891+
# HELP node_pcidevice_sriov_drivers_autoprobe Whether SR-IOV drivers autoprobe is enabled for the device (0/1).
2892+
# TYPE node_pcidevice_sriov_drivers_autoprobe gauge
2893+
node_pcidevice_sriov_drivers_autoprobe{bus="00",device="02",function="1",segment="0000"} 0
2894+
node_pcidevice_sriov_drivers_autoprobe{bus="01",device="00",function="0",segment="0000"} 1
2895+
node_pcidevice_sriov_drivers_autoprobe{bus="45",device="00",function="0",segment="0000"} 1
2896+
# HELP node_pcidevice_sriov_numvfs Number of Virtual Functions (VFs) currently enabled for SR-IOV.
2897+
# TYPE node_pcidevice_sriov_numvfs gauge
2898+
node_pcidevice_sriov_numvfs{bus="00",device="02",function="1",segment="0000"} 0
2899+
node_pcidevice_sriov_numvfs{bus="01",device="00",function="0",segment="0000"} 4
2900+
node_pcidevice_sriov_numvfs{bus="45",device="00",function="0",segment="0000"} 0
2901+
# HELP node_pcidevice_sriov_totalvfs Total number of Virtual Functions (VFs) supported by the device.
2902+
# TYPE node_pcidevice_sriov_totalvfs gauge
2903+
node_pcidevice_sriov_totalvfs{bus="00",device="02",function="1",segment="0000"} 0
2904+
node_pcidevice_sriov_totalvfs{bus="01",device="00",function="0",segment="0000"} 8
2905+
node_pcidevice_sriov_totalvfs{bus="45",device="00",function="0",segment="0000"} 7
2906+
# HELP node_pcidevice_sriov_vf_total_msix Total number of MSI-X vectors for Virtual Functions.
2907+
# TYPE node_pcidevice_sriov_vf_total_msix gauge
2908+
node_pcidevice_sriov_vf_total_msix{bus="00",device="02",function="1",segment="0000"} 0
2909+
node_pcidevice_sriov_vf_total_msix{bus="01",device="00",function="0",segment="0000"} 16
2910+
node_pcidevice_sriov_vf_total_msix{bus="45",device="00",function="0",segment="0000"} 0
28552911
# HELP node_power_supply_capacity capacity value of /sys/class/power_supply/<power_supply>.
28562912
# TYPE node_power_supply_capacity gauge
28572913
node_power_supply_capacity{power_supply="BAT0"} 81

collector/fixtures/e2e-output.txt

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2858,22 +2858,78 @@ node_os_version{id="ubuntu",id_like="debian",name="Ubuntu"} 20.04
28582858
# TYPE node_pcidevice_current_link_transfers_per_second gauge
28592859
node_pcidevice_current_link_transfers_per_second{bus="00",device="02",function="1",segment="0000"} 8e+09
28602860
node_pcidevice_current_link_transfers_per_second{bus="01",device="00",function="0",segment="0000"} 8e+09
2861+
node_pcidevice_current_link_transfers_per_second{bus="45",device="00",function="0",segment="0000"} 5e+09
28612862
# HELP node_pcidevice_current_link_width Value of current link's width (number of lanes)
28622863
# TYPE node_pcidevice_current_link_width gauge
28632864
node_pcidevice_current_link_width{bus="00",device="02",function="1",segment="0000"} 4
28642865
node_pcidevice_current_link_width{bus="01",device="00",function="0",segment="0000"} 4
2866+
node_pcidevice_current_link_width{bus="45",device="00",function="0",segment="0000"} 4
2867+
# HELP node_pcidevice_d3cold_allowed Whether the PCIe device supports D3cold power state (0/1).
2868+
# TYPE node_pcidevice_d3cold_allowed gauge
2869+
node_pcidevice_d3cold_allowed{bus="00",device="02",function="1",segment="0000"} 1
2870+
node_pcidevice_d3cold_allowed{bus="01",device="00",function="0",segment="0000"} 1
2871+
node_pcidevice_d3cold_allowed{bus="45",device="00",function="0",segment="0000"} 1
28652872
# HELP node_pcidevice_info Non-numeric data from /sys/bus/pci/devices/<location>, value is always 1.
28662873
# TYPE node_pcidevice_info gauge
2867-
node_pcidevice_info{bus="00",class_id="0x060400",device="02",function="1",parent_bus="*",parent_device="*",parent_function="*",parent_segment="*",revision="0x00",segment="0000",subsystem_device_id="0x5095",subsystem_vendor_id="0x17aa",vendor_id="0x1634"} 1
2868-
node_pcidevice_info{bus="01",class_id="0x010802",device="00",function="0",parent_bus="00",parent_device="02",parent_function="1",parent_segment="0000",revision="0x01",segment="0000",subsystem_device_id="0x5021",subsystem_vendor_id="0xc0a9",vendor_id="0x540a"} 1
2874+
node_pcidevice_info{bus="00",class_id="0x060400",device="02",device_id="0x1634",function="1",parent_bus="*",parent_device="*",parent_function="*",parent_segment="*",revision="0x00",segment="0000",subsystem_device_id="0x5095",subsystem_vendor_id="0x17aa",vendor_id="0x1022"} 1
2875+
node_pcidevice_info{bus="01",class_id="0x010802",device="00",device_id="0x540a",function="0",parent_bus="00",parent_device="02",parent_function="1",parent_segment="0000",revision="0x01",segment="0000",subsystem_device_id="0x5021",subsystem_vendor_id="0xc0a9",vendor_id="0xc0a9"} 1
2876+
node_pcidevice_info{bus="45",class_id="0x020000",device="00",device_id="0x1521",function="0",parent_bus="40",parent_device="01",parent_function="3",parent_segment="0000",revision="0x01",segment="0000",subsystem_device_id="0x00a3",subsystem_vendor_id="0x8086",vendor_id="0x8086"} 1
28692877
# HELP node_pcidevice_max_link_transfers_per_second Value of maximum link's transfers per second (T/s)
28702878
# TYPE node_pcidevice_max_link_transfers_per_second gauge
28712879
node_pcidevice_max_link_transfers_per_second{bus="00",device="02",function="1",segment="0000"} 8e+09
28722880
node_pcidevice_max_link_transfers_per_second{bus="01",device="00",function="0",segment="0000"} 1.6e+10
2881+
node_pcidevice_max_link_transfers_per_second{bus="45",device="00",function="0",segment="0000"} 5e+09
28732882
# HELP node_pcidevice_max_link_width Value of maximum link's width (number of lanes)
28742883
# TYPE node_pcidevice_max_link_width gauge
28752884
node_pcidevice_max_link_width{bus="00",device="02",function="1",segment="0000"} 8
28762885
node_pcidevice_max_link_width{bus="01",device="00",function="0",segment="0000"} 4
2886+
node_pcidevice_max_link_width{bus="45",device="00",function="0",segment="0000"} 4
2887+
# HELP node_pcidevice_numa_node NUMA node number for the PCI device. -1 indicates unknown or not available.
2888+
# TYPE node_pcidevice_numa_node gauge
2889+
node_pcidevice_numa_node{bus="45",device="00",function="0",segment="0000"} 0
2890+
# HELP node_pcidevice_power_state PCIe device power state, one of: D0, D1, D2, D3hot, D3cold, unknown or error.
2891+
# TYPE node_pcidevice_power_state gauge
2892+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D0"} 1
2893+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D1"} 0
2894+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D2"} 0
2895+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D3cold"} 0
2896+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="D3hot"} 0
2897+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="error"} 0
2898+
node_pcidevice_power_state{bus="00",device="02",function="1",segment="0000",state="unknown"} 0
2899+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D0"} 1
2900+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D1"} 0
2901+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D2"} 0
2902+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D3cold"} 0
2903+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="D3hot"} 0
2904+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="error"} 0
2905+
node_pcidevice_power_state{bus="01",device="00",function="0",segment="0000",state="unknown"} 0
2906+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D0"} 1
2907+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D1"} 0
2908+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D2"} 0
2909+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D3cold"} 0
2910+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="D3hot"} 0
2911+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="error"} 0
2912+
node_pcidevice_power_state{bus="45",device="00",function="0",segment="0000",state="unknown"} 0
2913+
# HELP node_pcidevice_sriov_drivers_autoprobe Whether SR-IOV drivers autoprobe is enabled for the device (0/1).
2914+
# TYPE node_pcidevice_sriov_drivers_autoprobe gauge
2915+
node_pcidevice_sriov_drivers_autoprobe{bus="00",device="02",function="1",segment="0000"} 0
2916+
node_pcidevice_sriov_drivers_autoprobe{bus="01",device="00",function="0",segment="0000"} 1
2917+
node_pcidevice_sriov_drivers_autoprobe{bus="45",device="00",function="0",segment="0000"} 1
2918+
# HELP node_pcidevice_sriov_numvfs Number of Virtual Functions (VFs) currently enabled for SR-IOV.
2919+
# TYPE node_pcidevice_sriov_numvfs gauge
2920+
node_pcidevice_sriov_numvfs{bus="00",device="02",function="1",segment="0000"} 0
2921+
node_pcidevice_sriov_numvfs{bus="01",device="00",function="0",segment="0000"} 4
2922+
node_pcidevice_sriov_numvfs{bus="45",device="00",function="0",segment="0000"} 0
2923+
# HELP node_pcidevice_sriov_totalvfs Total number of Virtual Functions (VFs) supported by the device.
2924+
# TYPE node_pcidevice_sriov_totalvfs gauge
2925+
node_pcidevice_sriov_totalvfs{bus="00",device="02",function="1",segment="0000"} 0
2926+
node_pcidevice_sriov_totalvfs{bus="01",device="00",function="0",segment="0000"} 8
2927+
node_pcidevice_sriov_totalvfs{bus="45",device="00",function="0",segment="0000"} 7
2928+
# HELP node_pcidevice_sriov_vf_total_msix Total number of MSI-X vectors for Virtual Functions.
2929+
# TYPE node_pcidevice_sriov_vf_total_msix gauge
2930+
node_pcidevice_sriov_vf_total_msix{bus="00",device="02",function="1",segment="0000"} 0
2931+
node_pcidevice_sriov_vf_total_msix{bus="01",device="00",function="0",segment="0000"} 16
2932+
node_pcidevice_sriov_vf_total_msix{bus="45",device="00",function="0",segment="0000"} 0
28772933
# HELP node_power_supply_capacity capacity value of /sys/class/power_supply/<power_supply>.
28782934
# TYPE node_power_supply_capacity gauge
28792935
node_power_supply_capacity{power_supply="BAT0"} 81

collector/fixtures/pci.ids

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Test PCI IDs file for node_exporter testing
2+
# This file contains sample entries for testing PCI name resolution
3+
4+
# Classes
5+
C 06 Bridge device
6+
04 PCI bridge
7+
C 01 Mass storage controller
8+
08 Non-Volatile memory controller
9+
02 NVM Express
10+
C 02 Network controller
11+
00 Ethernet controller
12+
13+
# Vendors
14+
1022 Advanced Micro Devices, Inc. [AMD]
15+
1634 Renoir/Cezanne PCIe GPP Bridge
16+
17aa 5095 T540-5095 Unified Wire Ethernet Controller
17+
18+
c0a9 Micron/Crucial Technology
19+
540a P2 [Nick P2] / P3 / P3 Plus NVMe PCIe SSD (DRAM-less)
20+
c0a9 5021 PS5021-E21 PCIe4 NVMe Controller (DRAM-less)
21+
22+
8086 Intel Corporation
23+
1521 I350 Gigabit Network Connection
24+
8086 00a3 Ethernet Network Adapter I350-T4 for OCP NIC 3.0
25+
26+
17aa Lenovo

0 commit comments

Comments
 (0)