diff --git a/CHANGELOG.md b/CHANGELOG.md index f5e2ef1cb1..de1e60c9df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## master / unreleased -* [CHANGE] +* [CHANGE] infiniband: Add `link_layer` label to all per-port metrics * [FEATURE] * [ENHANCEMENT] * [BUGFIX] diff --git a/collector/fixtures/e2e-64k-page-output.txt b/collector/fixtures/e2e-64k-page-output.txt index 3be158f783..3b3b755546 100644 --- a/collector/fixtures/e2e-64k-page-output.txt +++ b/collector/fixtures/e2e-64k-page-output.txt @@ -1655,107 +1655,107 @@ node_infiniband_info{board_id="I40IW Board ID",device="i40iw0",firmware_version= node_infiniband_info{board_id="SM_1141000001000",device="mlx4_0",firmware_version="2.31.5050",hca_type="MT4099"} 1 # HELP node_infiniband_legacy_data_received_bytes_total Number of data octets received on all links # TYPE node_infiniband_legacy_data_received_bytes_total counter -node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",port="1"} 1.8527668e+07 -node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",port="2"} 1.8527668e+07 +node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.8527668e+07 +node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 1.8527668e+07 # HELP node_infiniband_legacy_data_transmitted_bytes_total Number of data octets transmitted on all links # TYPE node_infiniband_legacy_data_transmitted_bytes_total counter -node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",port="1"} 1.493376e+07 -node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",port="2"} 1.493376e+07 +node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.493376e+07 +node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 1.493376e+07 # HELP node_infiniband_legacy_multicast_packets_received_total Number of multicast packets received # TYPE node_infiniband_legacy_multicast_packets_received_total counter -node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",port="1"} 93 -node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",port="2"} 93 +node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 93 +node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 93 # HELP node_infiniband_legacy_multicast_packets_transmitted_total Number of multicast packets transmitted # TYPE node_infiniband_legacy_multicast_packets_transmitted_total counter -node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",port="1"} 16 -node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",port="2"} 16 +node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 16 +node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 16 # HELP node_infiniband_legacy_packets_received_total Number of data packets received on all links # TYPE node_infiniband_legacy_packets_received_total counter -node_infiniband_legacy_packets_received_total{device="mlx4_0",port="1"} 0 -node_infiniband_legacy_packets_received_total{device="mlx4_0",port="2"} 0 +node_infiniband_legacy_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_legacy_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_legacy_packets_transmitted_total Number of data packets received on all links # TYPE node_infiniband_legacy_packets_transmitted_total counter -node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",port="1"} 0 -node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",port="2"} 0 +node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_legacy_unicast_packets_received_total Number of unicast packets received # TYPE node_infiniband_legacy_unicast_packets_received_total counter -node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",port="1"} 61148 -node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",port="2"} 61148 +node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61148 +node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 61148 # HELP node_infiniband_legacy_unicast_packets_transmitted_total Number of unicast packets transmitted # TYPE node_infiniband_legacy_unicast_packets_transmitted_total counter -node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",port="1"} 61239 -node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",port="2"} 61239 +node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61239 +node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 61239 # HELP node_infiniband_link_downed_total Number of times the link failed to recover from an error state and went down # TYPE node_infiniband_link_downed_total counter -node_infiniband_link_downed_total{device="mlx4_0",port="1"} 0 -node_infiniband_link_downed_total{device="mlx4_0",port="2"} 0 +node_infiniband_link_downed_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_link_downed_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_link_error_recovery_total Number of times the link successfully recovered from an error state # TYPE node_infiniband_link_error_recovery_total counter -node_infiniband_link_error_recovery_total{device="mlx4_0",port="1"} 0 -node_infiniband_link_error_recovery_total{device="mlx4_0",port="2"} 0 +node_infiniband_link_error_recovery_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_link_error_recovery_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_multicast_packets_received_total Number of multicast packets received (including errors) # TYPE node_infiniband_multicast_packets_received_total counter -node_infiniband_multicast_packets_received_total{device="mlx4_0",port="1"} 93 -node_infiniband_multicast_packets_received_total{device="mlx4_0",port="2"} 0 +node_infiniband_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 93 +node_infiniband_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_multicast_packets_transmitted_total Number of multicast packets transmitted (including errors) # TYPE node_infiniband_multicast_packets_transmitted_total counter -node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",port="1"} 16 -node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",port="2"} 0 +node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 16 +node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_physical_state_id Physical state of the InfiniBand port (0: no change, 1: sleep, 2: polling, 3: disable, 4: shift, 5: link up, 6: link error recover, 7: phytest) # TYPE node_infiniband_physical_state_id gauge -node_infiniband_physical_state_id{device="i40iw0",port="1"} 5 -node_infiniband_physical_state_id{device="mlx4_0",port="1"} 5 -node_infiniband_physical_state_id{device="mlx4_0",port="2"} 5 +node_infiniband_physical_state_id{device="i40iw0",link_layer="Ethernet",port="1"} 5 +node_infiniband_physical_state_id{device="mlx4_0",link_layer="InfiniBand",port="1"} 5 +node_infiniband_physical_state_id{device="mlx4_0",link_layer="InfiniBand",port="2"} 5 # HELP node_infiniband_port_constraint_errors_received_total Number of packets received on the switch physical port that are discarded # TYPE node_infiniband_port_constraint_errors_received_total counter -node_infiniband_port_constraint_errors_received_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_constraint_errors_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_constraint_errors_transmitted_total Number of packets not transmitted from the switch physical port # TYPE node_infiniband_port_constraint_errors_transmitted_total counter -node_infiniband_port_constraint_errors_transmitted_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_constraint_errors_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_data_received_bytes_total Number of data octets received on all links # TYPE node_infiniband_port_data_received_bytes_total counter -node_infiniband_port_data_received_bytes_total{device="mlx4_0",port="1"} 1.8527668e+07 -node_infiniband_port_data_received_bytes_total{device="mlx4_0",port="2"} 0 +node_infiniband_port_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.8527668e+07 +node_infiniband_port_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_port_data_transmitted_bytes_total Number of data octets transmitted on all links # TYPE node_infiniband_port_data_transmitted_bytes_total counter -node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",port="1"} 1.493376e+07 -node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",port="2"} 0 +node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.493376e+07 +node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_port_discards_received_total Number of inbound packets discarded by the port because the port is down or congested # TYPE node_infiniband_port_discards_received_total counter -node_infiniband_port_discards_received_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_discards_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_discards_transmitted_total Number of outbound packets discarded by the port because the port is down or congested # TYPE node_infiniband_port_discards_transmitted_total counter -node_infiniband_port_discards_transmitted_total{device="mlx4_0",port="1"} 5 +node_infiniband_port_discards_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 5 # HELP node_infiniband_port_errors_received_total Number of packets containing an error that were received on this port # TYPE node_infiniband_port_errors_received_total counter -node_infiniband_port_errors_received_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_errors_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_packets_received_total Number of packets received on all VLs by this port (including errors) # TYPE node_infiniband_port_packets_received_total counter -node_infiniband_port_packets_received_total{device="mlx4_0",port="1"} 6.825908347e+09 +node_infiniband_port_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 6.825908347e+09 # HELP node_infiniband_port_packets_transmitted_total Number of packets transmitted on all VLs from this port (including errors) # TYPE node_infiniband_port_packets_transmitted_total counter -node_infiniband_port_packets_transmitted_total{device="mlx4_0",port="1"} 6.235865e+06 +node_infiniband_port_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 6.235865e+06 # HELP node_infiniband_port_transmit_wait_total Number of ticks during which the port had data to transmit but no data was sent during the entire tick # TYPE node_infiniband_port_transmit_wait_total counter -node_infiniband_port_transmit_wait_total{device="mlx4_0",port="1"} 4.294967295e+09 +node_infiniband_port_transmit_wait_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 4.294967295e+09 # HELP node_infiniband_rate_bytes_per_second Maximum signal transfer rate # TYPE node_infiniband_rate_bytes_per_second gauge -node_infiniband_rate_bytes_per_second{device="i40iw0",port="1"} 1.25e+09 -node_infiniband_rate_bytes_per_second{device="mlx4_0",port="1"} 5e+09 -node_infiniband_rate_bytes_per_second{device="mlx4_0",port="2"} 5e+09 +node_infiniband_rate_bytes_per_second{device="i40iw0",link_layer="Ethernet",port="1"} 1.25e+09 +node_infiniband_rate_bytes_per_second{device="mlx4_0",link_layer="InfiniBand",port="1"} 5e+09 +node_infiniband_rate_bytes_per_second{device="mlx4_0",link_layer="InfiniBand",port="2"} 5e+09 # HELP node_infiniband_state_id State of the InfiniBand port (0: no change, 1: down, 2: init, 3: armed, 4: active, 5: act defer) # TYPE node_infiniband_state_id gauge -node_infiniband_state_id{device="i40iw0",port="1"} 4 -node_infiniband_state_id{device="mlx4_0",port="1"} 4 -node_infiniband_state_id{device="mlx4_0",port="2"} 4 +node_infiniband_state_id{device="i40iw0",link_layer="Ethernet",port="1"} 4 +node_infiniband_state_id{device="mlx4_0",link_layer="InfiniBand",port="1"} 4 +node_infiniband_state_id{device="mlx4_0",link_layer="InfiniBand",port="2"} 4 # HELP node_infiniband_unicast_packets_received_total Number of unicast packets received (including errors) # TYPE node_infiniband_unicast_packets_received_total counter -node_infiniband_unicast_packets_received_total{device="mlx4_0",port="1"} 61148 -node_infiniband_unicast_packets_received_total{device="mlx4_0",port="2"} 0 +node_infiniband_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61148 +node_infiniband_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_unicast_packets_transmitted_total Number of unicast packets transmitted (including errors) # TYPE node_infiniband_unicast_packets_transmitted_total counter -node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",port="1"} 61239 -node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",port="2"} 0 +node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61239 +node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_interrupts_total Interrupt details. # TYPE node_interrupts_total counter node_interrupts_total{cpu="0",devices="",info="APIC ICR read retries",type="RTR"} 0 diff --git a/collector/fixtures/e2e-output.txt b/collector/fixtures/e2e-output.txt index 380e812c98..19bb3b0806 100644 --- a/collector/fixtures/e2e-output.txt +++ b/collector/fixtures/e2e-output.txt @@ -1687,107 +1687,107 @@ node_infiniband_info{board_id="I40IW Board ID",device="i40iw0",firmware_version= node_infiniband_info{board_id="SM_1141000001000",device="mlx4_0",firmware_version="2.31.5050",hca_type="MT4099"} 1 # HELP node_infiniband_legacy_data_received_bytes_total Number of data octets received on all links # TYPE node_infiniband_legacy_data_received_bytes_total counter -node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",port="1"} 1.8527668e+07 -node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",port="2"} 1.8527668e+07 +node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.8527668e+07 +node_infiniband_legacy_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 1.8527668e+07 # HELP node_infiniband_legacy_data_transmitted_bytes_total Number of data octets transmitted on all links # TYPE node_infiniband_legacy_data_transmitted_bytes_total counter -node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",port="1"} 1.493376e+07 -node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",port="2"} 1.493376e+07 +node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.493376e+07 +node_infiniband_legacy_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 1.493376e+07 # HELP node_infiniband_legacy_multicast_packets_received_total Number of multicast packets received # TYPE node_infiniband_legacy_multicast_packets_received_total counter -node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",port="1"} 93 -node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",port="2"} 93 +node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 93 +node_infiniband_legacy_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 93 # HELP node_infiniband_legacy_multicast_packets_transmitted_total Number of multicast packets transmitted # TYPE node_infiniband_legacy_multicast_packets_transmitted_total counter -node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",port="1"} 16 -node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",port="2"} 16 +node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 16 +node_infiniband_legacy_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 16 # HELP node_infiniband_legacy_packets_received_total Number of data packets received on all links # TYPE node_infiniband_legacy_packets_received_total counter -node_infiniband_legacy_packets_received_total{device="mlx4_0",port="1"} 0 -node_infiniband_legacy_packets_received_total{device="mlx4_0",port="2"} 0 +node_infiniband_legacy_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_legacy_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_legacy_packets_transmitted_total Number of data packets received on all links # TYPE node_infiniband_legacy_packets_transmitted_total counter -node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",port="1"} 0 -node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",port="2"} 0 +node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_legacy_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_legacy_unicast_packets_received_total Number of unicast packets received # TYPE node_infiniband_legacy_unicast_packets_received_total counter -node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",port="1"} 61148 -node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",port="2"} 61148 +node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61148 +node_infiniband_legacy_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 61148 # HELP node_infiniband_legacy_unicast_packets_transmitted_total Number of unicast packets transmitted # TYPE node_infiniband_legacy_unicast_packets_transmitted_total counter -node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",port="1"} 61239 -node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",port="2"} 61239 +node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61239 +node_infiniband_legacy_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 61239 # HELP node_infiniband_link_downed_total Number of times the link failed to recover from an error state and went down # TYPE node_infiniband_link_downed_total counter -node_infiniband_link_downed_total{device="mlx4_0",port="1"} 0 -node_infiniband_link_downed_total{device="mlx4_0",port="2"} 0 +node_infiniband_link_downed_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_link_downed_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_link_error_recovery_total Number of times the link successfully recovered from an error state # TYPE node_infiniband_link_error_recovery_total counter -node_infiniband_link_error_recovery_total{device="mlx4_0",port="1"} 0 -node_infiniband_link_error_recovery_total{device="mlx4_0",port="2"} 0 +node_infiniband_link_error_recovery_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 +node_infiniband_link_error_recovery_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_multicast_packets_received_total Number of multicast packets received (including errors) # TYPE node_infiniband_multicast_packets_received_total counter -node_infiniband_multicast_packets_received_total{device="mlx4_0",port="1"} 93 -node_infiniband_multicast_packets_received_total{device="mlx4_0",port="2"} 0 +node_infiniband_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 93 +node_infiniband_multicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_multicast_packets_transmitted_total Number of multicast packets transmitted (including errors) # TYPE node_infiniband_multicast_packets_transmitted_total counter -node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",port="1"} 16 -node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",port="2"} 0 +node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 16 +node_infiniband_multicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_physical_state_id Physical state of the InfiniBand port (0: no change, 1: sleep, 2: polling, 3: disable, 4: shift, 5: link up, 6: link error recover, 7: phytest) # TYPE node_infiniband_physical_state_id gauge -node_infiniband_physical_state_id{device="i40iw0",port="1"} 5 -node_infiniband_physical_state_id{device="mlx4_0",port="1"} 5 -node_infiniband_physical_state_id{device="mlx4_0",port="2"} 5 +node_infiniband_physical_state_id{device="i40iw0",link_layer="Ethernet",port="1"} 5 +node_infiniband_physical_state_id{device="mlx4_0",link_layer="InfiniBand",port="1"} 5 +node_infiniband_physical_state_id{device="mlx4_0",link_layer="InfiniBand",port="2"} 5 # HELP node_infiniband_port_constraint_errors_received_total Number of packets received on the switch physical port that are discarded # TYPE node_infiniband_port_constraint_errors_received_total counter -node_infiniband_port_constraint_errors_received_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_constraint_errors_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_constraint_errors_transmitted_total Number of packets not transmitted from the switch physical port # TYPE node_infiniband_port_constraint_errors_transmitted_total counter -node_infiniband_port_constraint_errors_transmitted_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_constraint_errors_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_data_received_bytes_total Number of data octets received on all links # TYPE node_infiniband_port_data_received_bytes_total counter -node_infiniband_port_data_received_bytes_total{device="mlx4_0",port="1"} 1.8527668e+07 -node_infiniband_port_data_received_bytes_total{device="mlx4_0",port="2"} 0 +node_infiniband_port_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.8527668e+07 +node_infiniband_port_data_received_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_port_data_transmitted_bytes_total Number of data octets transmitted on all links # TYPE node_infiniband_port_data_transmitted_bytes_total counter -node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",port="1"} 1.493376e+07 -node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",port="2"} 0 +node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 1.493376e+07 +node_infiniband_port_data_transmitted_bytes_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_port_discards_received_total Number of inbound packets discarded by the port because the port is down or congested # TYPE node_infiniband_port_discards_received_total counter -node_infiniband_port_discards_received_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_discards_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_discards_transmitted_total Number of outbound packets discarded by the port because the port is down or congested # TYPE node_infiniband_port_discards_transmitted_total counter -node_infiniband_port_discards_transmitted_total{device="mlx4_0",port="1"} 5 +node_infiniband_port_discards_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 5 # HELP node_infiniband_port_errors_received_total Number of packets containing an error that were received on this port # TYPE node_infiniband_port_errors_received_total counter -node_infiniband_port_errors_received_total{device="mlx4_0",port="1"} 0 +node_infiniband_port_errors_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 0 # HELP node_infiniband_port_packets_received_total Number of packets received on all VLs by this port (including errors) # TYPE node_infiniband_port_packets_received_total counter -node_infiniband_port_packets_received_total{device="mlx4_0",port="1"} 6.825908347e+09 +node_infiniband_port_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 6.825908347e+09 # HELP node_infiniband_port_packets_transmitted_total Number of packets transmitted on all VLs from this port (including errors) # TYPE node_infiniband_port_packets_transmitted_total counter -node_infiniband_port_packets_transmitted_total{device="mlx4_0",port="1"} 6.235865e+06 +node_infiniband_port_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 6.235865e+06 # HELP node_infiniband_port_transmit_wait_total Number of ticks during which the port had data to transmit but no data was sent during the entire tick # TYPE node_infiniband_port_transmit_wait_total counter -node_infiniband_port_transmit_wait_total{device="mlx4_0",port="1"} 4.294967295e+09 +node_infiniband_port_transmit_wait_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 4.294967295e+09 # HELP node_infiniband_rate_bytes_per_second Maximum signal transfer rate # TYPE node_infiniband_rate_bytes_per_second gauge -node_infiniband_rate_bytes_per_second{device="i40iw0",port="1"} 1.25e+09 -node_infiniband_rate_bytes_per_second{device="mlx4_0",port="1"} 5e+09 -node_infiniband_rate_bytes_per_second{device="mlx4_0",port="2"} 5e+09 +node_infiniband_rate_bytes_per_second{device="i40iw0",link_layer="Ethernet",port="1"} 1.25e+09 +node_infiniband_rate_bytes_per_second{device="mlx4_0",link_layer="InfiniBand",port="1"} 5e+09 +node_infiniband_rate_bytes_per_second{device="mlx4_0",link_layer="InfiniBand",port="2"} 5e+09 # HELP node_infiniband_state_id State of the InfiniBand port (0: no change, 1: down, 2: init, 3: armed, 4: active, 5: act defer) # TYPE node_infiniband_state_id gauge -node_infiniband_state_id{device="i40iw0",port="1"} 4 -node_infiniband_state_id{device="mlx4_0",port="1"} 4 -node_infiniband_state_id{device="mlx4_0",port="2"} 4 +node_infiniband_state_id{device="i40iw0",link_layer="Ethernet",port="1"} 4 +node_infiniband_state_id{device="mlx4_0",link_layer="InfiniBand",port="1"} 4 +node_infiniband_state_id{device="mlx4_0",link_layer="InfiniBand",port="2"} 4 # HELP node_infiniband_unicast_packets_received_total Number of unicast packets received (including errors) # TYPE node_infiniband_unicast_packets_received_total counter -node_infiniband_unicast_packets_received_total{device="mlx4_0",port="1"} 61148 -node_infiniband_unicast_packets_received_total{device="mlx4_0",port="2"} 0 +node_infiniband_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61148 +node_infiniband_unicast_packets_received_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_infiniband_unicast_packets_transmitted_total Number of unicast packets transmitted (including errors) # TYPE node_infiniband_unicast_packets_transmitted_total counter -node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",port="1"} 61239 -node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",port="2"} 0 +node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="1"} 61239 +node_infiniband_unicast_packets_transmitted_total{device="mlx4_0",link_layer="InfiniBand",port="2"} 0 # HELP node_interrupts_total Interrupt details. # TYPE node_interrupts_total counter node_interrupts_total{cpu="0",devices="",info="APIC ICR read retries",type="RTR"} 0 diff --git a/collector/fixtures/sys.ttar b/collector/fixtures/sys.ttar index bc8744cbe7..5a2145b854 100644 --- a/collector/fixtures/sys.ttar +++ b/collector/fixtures/sys.ttar @@ -1416,7 +1416,7 @@ Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: sys/class/infiniband/i40iw0/ports/1/link_layer Lines: 1 -InfiniBand +Ethernet Mode: 664 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: sys/class/infiniband/i40iw0/ports/1/phys_state diff --git a/collector/infiniband_linux.go b/collector/infiniband_linux.go index 078047a0d7..3e4f3d84e9 100644 --- a/collector/infiniband_linux.go +++ b/collector/infiniband_linux.go @@ -124,7 +124,7 @@ func NewInfiniBandCollector(logger *slog.Logger) (Collector, error) { i.metricDescs[metricName] = prometheus.NewDesc( prometheus.BuildFQName(namespace, i.subsystem, metricName), description, - []string{"device", "port"}, + []string{"device", "port", "link_layer"}, nil, ) } @@ -132,13 +132,13 @@ func NewInfiniBandCollector(logger *slog.Logger) (Collector, error) { return &i, nil } -func (c *infinibandCollector) pushMetric(ch chan<- prometheus.Metric, name string, value uint64, deviceName string, port string, valueType prometheus.ValueType) { - ch <- prometheus.MustNewConstMetric(c.metricDescs[name], valueType, float64(value), deviceName, port) +func (c *infinibandCollector) pushMetric(ch chan<- prometheus.Metric, name string, value uint64, deviceName string, port string, linkLayer string, valueType prometheus.ValueType) { + ch <- prometheus.MustNewConstMetric(c.metricDescs[name], valueType, float64(value), deviceName, port, linkLayer) } -func (c *infinibandCollector) pushCounter(ch chan<- prometheus.Metric, name string, value *uint64, deviceName string, port string) { +func (c *infinibandCollector) pushCounter(ch chan<- prometheus.Metric, name string, value *uint64, deviceName string, port string, linkLayer string) { if value != nil { - c.pushMetric(ch, name, *value, deviceName, port, prometheus.CounterValue) + c.pushMetric(ch, name, *value, deviceName, port, linkLayer, prometheus.CounterValue) } } @@ -165,75 +165,75 @@ func (c *infinibandCollector) Update(ch chan<- prometheus.Metric) error { for _, port := range device.Ports { portStr := strconv.FormatUint(uint64(port.Port), 10) - c.pushMetric(ch, "state_id", uint64(port.StateID), port.Name, portStr, prometheus.GaugeValue) - c.pushMetric(ch, "physical_state_id", uint64(port.PhysStateID), port.Name, portStr, prometheus.GaugeValue) - c.pushMetric(ch, "rate_bytes_per_second", port.Rate, port.Name, portStr, prometheus.GaugeValue) - - c.pushCounter(ch, "legacy_multicast_packets_received_total", port.Counters.LegacyPortMulticastRcvPackets, port.Name, portStr) - c.pushCounter(ch, "legacy_multicast_packets_transmitted_total", port.Counters.LegacyPortMulticastXmitPackets, port.Name, portStr) - c.pushCounter(ch, "legacy_data_received_bytes_total", port.Counters.LegacyPortRcvData64, port.Name, portStr) - c.pushCounter(ch, "legacy_packets_received_total", port.Counters.LegacyPortRcvPackets64, port.Name, portStr) - c.pushCounter(ch, "legacy_unicast_packets_received_total", port.Counters.LegacyPortUnicastRcvPackets, port.Name, portStr) - c.pushCounter(ch, "legacy_unicast_packets_transmitted_total", port.Counters.LegacyPortUnicastXmitPackets, port.Name, portStr) - c.pushCounter(ch, "legacy_data_transmitted_bytes_total", port.Counters.LegacyPortXmitData64, port.Name, portStr) - c.pushCounter(ch, "legacy_packets_transmitted_total", port.Counters.LegacyPortXmitPackets64, port.Name, portStr) - c.pushCounter(ch, "excessive_buffer_overrun_errors_total", port.Counters.ExcessiveBufferOverrunErrors, port.Name, portStr) - c.pushCounter(ch, "link_downed_total", port.Counters.LinkDowned, port.Name, portStr) - c.pushCounter(ch, "link_error_recovery_total", port.Counters.LinkErrorRecovery, port.Name, portStr) - c.pushCounter(ch, "local_link_integrity_errors_total", port.Counters.LocalLinkIntegrityErrors, port.Name, portStr) - c.pushCounter(ch, "multicast_packets_received_total", port.Counters.MulticastRcvPackets, port.Name, portStr) - c.pushCounter(ch, "multicast_packets_transmitted_total", port.Counters.MulticastXmitPackets, port.Name, portStr) - c.pushCounter(ch, "port_constraint_errors_received_total", port.Counters.PortRcvConstraintErrors, port.Name, portStr) - c.pushCounter(ch, "port_constraint_errors_transmitted_total", port.Counters.PortXmitConstraintErrors, port.Name, portStr) - c.pushCounter(ch, "port_data_received_bytes_total", port.Counters.PortRcvData, port.Name, portStr) - c.pushCounter(ch, "port_data_transmitted_bytes_total", port.Counters.PortXmitData, port.Name, portStr) - c.pushCounter(ch, "port_discards_received_total", port.Counters.PortRcvDiscards, port.Name, portStr) - c.pushCounter(ch, "port_discards_transmitted_total", port.Counters.PortXmitDiscards, port.Name, portStr) - c.pushCounter(ch, "port_errors_received_total", port.Counters.PortRcvErrors, port.Name, portStr) - c.pushCounter(ch, "port_packets_received_total", port.Counters.PortRcvPackets, port.Name, portStr) - c.pushCounter(ch, "port_packets_transmitted_total", port.Counters.PortXmitPackets, port.Name, portStr) - c.pushCounter(ch, "port_transmit_wait_total", port.Counters.PortXmitWait, port.Name, portStr) - c.pushCounter(ch, "unicast_packets_received_total", port.Counters.UnicastRcvPackets, port.Name, portStr) - c.pushCounter(ch, "unicast_packets_transmitted_total", port.Counters.UnicastXmitPackets, port.Name, portStr) - c.pushCounter(ch, "port_receive_remote_physical_errors_total", port.Counters.PortRcvRemotePhysicalErrors, port.Name, portStr) - c.pushCounter(ch, "port_receive_switch_relay_errors_total", port.Counters.PortRcvSwitchRelayErrors, port.Name, portStr) - c.pushCounter(ch, "symbol_error_total", port.Counters.SymbolError, port.Name, portStr) - c.pushCounter(ch, "vl15_dropped_total", port.Counters.VL15Dropped, port.Name, portStr) + c.pushMetric(ch, "state_id", uint64(port.StateID), port.Name, portStr, port.LinkLayer, prometheus.GaugeValue) + c.pushMetric(ch, "physical_state_id", uint64(port.PhysStateID), port.Name, portStr, port.LinkLayer, prometheus.GaugeValue) + c.pushMetric(ch, "rate_bytes_per_second", port.Rate, port.Name, portStr, port.LinkLayer, prometheus.GaugeValue) + + c.pushCounter(ch, "legacy_multicast_packets_received_total", port.Counters.LegacyPortMulticastRcvPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_multicast_packets_transmitted_total", port.Counters.LegacyPortMulticastXmitPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_data_received_bytes_total", port.Counters.LegacyPortRcvData64, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_packets_received_total", port.Counters.LegacyPortRcvPackets64, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_unicast_packets_received_total", port.Counters.LegacyPortUnicastRcvPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_unicast_packets_transmitted_total", port.Counters.LegacyPortUnicastXmitPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_data_transmitted_bytes_total", port.Counters.LegacyPortXmitData64, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "legacy_packets_transmitted_total", port.Counters.LegacyPortXmitPackets64, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "excessive_buffer_overrun_errors_total", port.Counters.ExcessiveBufferOverrunErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "link_downed_total", port.Counters.LinkDowned, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "link_error_recovery_total", port.Counters.LinkErrorRecovery, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "local_link_integrity_errors_total", port.Counters.LocalLinkIntegrityErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "multicast_packets_received_total", port.Counters.MulticastRcvPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "multicast_packets_transmitted_total", port.Counters.MulticastXmitPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_constraint_errors_received_total", port.Counters.PortRcvConstraintErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_constraint_errors_transmitted_total", port.Counters.PortXmitConstraintErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_data_received_bytes_total", port.Counters.PortRcvData, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_data_transmitted_bytes_total", port.Counters.PortXmitData, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_discards_received_total", port.Counters.PortRcvDiscards, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_discards_transmitted_total", port.Counters.PortXmitDiscards, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_errors_received_total", port.Counters.PortRcvErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_packets_received_total", port.Counters.PortRcvPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_packets_transmitted_total", port.Counters.PortXmitPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_transmit_wait_total", port.Counters.PortXmitWait, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "unicast_packets_received_total", port.Counters.UnicastRcvPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "unicast_packets_transmitted_total", port.Counters.UnicastXmitPackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_receive_remote_physical_errors_total", port.Counters.PortRcvRemotePhysicalErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "port_receive_switch_relay_errors_total", port.Counters.PortRcvSwitchRelayErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "symbol_error_total", port.Counters.SymbolError, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "vl15_dropped_total", port.Counters.VL15Dropped, port.Name, portStr, port.LinkLayer) // port.HwCounters if port.HwCounters.Lifespan != nil { - c.pushMetric(ch, "lifespan_seconds", *(port.HwCounters.Lifespan)/1000, port.Name, portStr, prometheus.GaugeValue) + c.pushMetric(ch, "lifespan_seconds", *(port.HwCounters.Lifespan)/1000, port.Name, portStr, port.LinkLayer, prometheus.GaugeValue) } - c.pushCounter(ch, "duplicate_requests_packets_total", port.HwCounters.DuplicateRequest, port.Name, portStr) - c.pushCounter(ch, "implied_nak_seq_errors_total", port.HwCounters.ImpliedNakSeqErr, port.Name, portStr) - c.pushCounter(ch, "local_ack_timeout_errors_total", port.HwCounters.LocalAckTimeoutErr, port.Name, portStr) - c.pushCounter(ch, "np_cnp_packets_sent_total", port.HwCounters.NpCnpSent, port.Name, portStr) - c.pushCounter(ch, "np_ecn_marked_roce_packets_received_total", port.HwCounters.NpEcnMarkedRocePackets, port.Name, portStr) - c.pushCounter(ch, "out_of_buffer_drops_total", port.HwCounters.OutOfBuffer, port.Name, portStr) - c.pushCounter(ch, "out_of_sequence_packets_received_total", port.HwCounters.OutOfSequence, port.Name, portStr) - c.pushCounter(ch, "packet_sequence_errors_total", port.HwCounters.PacketSeqErr, port.Name, portStr) - c.pushCounter(ch, "req_cqes_errors_total", port.HwCounters.ReqCqeError, port.Name, portStr) - c.pushCounter(ch, "req_cqes_flush_errors_total", port.HwCounters.ReqCqeFlushError, port.Name, portStr) - c.pushCounter(ch, "req_remote_access_errors_total", port.HwCounters.ReqRemoteAccessErrors, port.Name, portStr) - c.pushCounter(ch, "req_remote_invalid_request_errors_total", port.HwCounters.ReqRemoteInvalidRequest, port.Name, portStr) - c.pushCounter(ch, "resp_cqes_errors_total", port.HwCounters.RespCqeError, port.Name, portStr) - c.pushCounter(ch, "resp_cqes_flush_errors_total", port.HwCounters.RespCqeFlushError, port.Name, portStr) - c.pushCounter(ch, "resp_local_length_errors_total", port.HwCounters.RespLocalLengthError, port.Name, portStr) - c.pushCounter(ch, "resp_remote_access_errors_total", port.HwCounters.RespRemoteAccessErrors, port.Name, portStr) - c.pushCounter(ch, "rnr_nak_retry_packets_received_total", port.HwCounters.RnrNakRetryErr, port.Name, portStr) - c.pushCounter(ch, "roce_adp_retransmits_total", port.HwCounters.RoceAdpRetrans, port.Name, portStr) - c.pushCounter(ch, "roce_adp_retransmits_timeout_total", port.HwCounters.RoceAdpRetransTo, port.Name, portStr) - c.pushCounter(ch, "roce_slow_restart_used_total", port.HwCounters.RoceSlowRestart, port.Name, portStr) - c.pushCounter(ch, "roce_slow_restart_cnps_total", port.HwCounters.RoceSlowRestartCnps, port.Name, portStr) - c.pushCounter(ch, "roce_slow_restart_total", port.HwCounters.RoceSlowRestartTrans, port.Name, portStr) - c.pushCounter(ch, "rp_cnp_packets_handled_total", port.HwCounters.RpCnpHandled, port.Name, portStr) - c.pushCounter(ch, "rp_cnp_ignored_packets_received_total", port.HwCounters.RpCnpIgnored, port.Name, portStr) - c.pushCounter(ch, "rx_atomic_requests_total", port.HwCounters.RxAtomicRequests, port.Name, portStr) - c.pushCounter(ch, "rx_dct_connect_requests_total", port.HwCounters.RxDctConnect, port.Name, portStr) - c.pushCounter(ch, "rx_read_requests_total", port.HwCounters.RxReadRequests, port.Name, portStr) - c.pushCounter(ch, "rx_write_requests_total", port.HwCounters.RxWriteRequests, port.Name, portStr) - c.pushCounter(ch, "rx_icrc_encapsulated_errors_total", port.HwCounters.RxIcrcEncapsulated, port.Name, portStr) + c.pushCounter(ch, "duplicate_requests_packets_total", port.HwCounters.DuplicateRequest, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "implied_nak_seq_errors_total", port.HwCounters.ImpliedNakSeqErr, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "local_ack_timeout_errors_total", port.HwCounters.LocalAckTimeoutErr, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "np_cnp_packets_sent_total", port.HwCounters.NpCnpSent, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "np_ecn_marked_roce_packets_received_total", port.HwCounters.NpEcnMarkedRocePackets, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "out_of_buffer_drops_total", port.HwCounters.OutOfBuffer, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "out_of_sequence_packets_received_total", port.HwCounters.OutOfSequence, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "packet_sequence_errors_total", port.HwCounters.PacketSeqErr, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "req_cqes_errors_total", port.HwCounters.ReqCqeError, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "req_cqes_flush_errors_total", port.HwCounters.ReqCqeFlushError, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "req_remote_access_errors_total", port.HwCounters.ReqRemoteAccessErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "req_remote_invalid_request_errors_total", port.HwCounters.ReqRemoteInvalidRequest, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "resp_cqes_errors_total", port.HwCounters.RespCqeError, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "resp_cqes_flush_errors_total", port.HwCounters.RespCqeFlushError, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "resp_local_length_errors_total", port.HwCounters.RespLocalLengthError, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "resp_remote_access_errors_total", port.HwCounters.RespRemoteAccessErrors, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rnr_nak_retry_packets_received_total", port.HwCounters.RnrNakRetryErr, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "roce_adp_retransmits_total", port.HwCounters.RoceAdpRetrans, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "roce_adp_retransmits_timeout_total", port.HwCounters.RoceAdpRetransTo, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "roce_slow_restart_used_total", port.HwCounters.RoceSlowRestart, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "roce_slow_restart_cnps_total", port.HwCounters.RoceSlowRestartCnps, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "roce_slow_restart_total", port.HwCounters.RoceSlowRestartTrans, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rp_cnp_packets_handled_total", port.HwCounters.RpCnpHandled, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rp_cnp_ignored_packets_received_total", port.HwCounters.RpCnpIgnored, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rx_atomic_requests_total", port.HwCounters.RxAtomicRequests, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rx_dct_connect_requests_total", port.HwCounters.RxDctConnect, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rx_read_requests_total", port.HwCounters.RxReadRequests, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rx_write_requests_total", port.HwCounters.RxWriteRequests, port.Name, portStr, port.LinkLayer) + c.pushCounter(ch, "rx_icrc_encapsulated_errors_total", port.HwCounters.RxIcrcEncapsulated, port.Name, portStr, port.LinkLayer) } }