docs/doc/source/guest_integration/kubernetes/node-interface-metrics-expo...

44 KiB

Node Interface Metrics Exporter Application

The Node Interface Metrics Exporter application is designed to fetch and display node statistics in a Kubernetes environment. It deploys an Interface Metrics Exporter DaemonSet on all nodes with the starlingx.io/interface-metrics=true node label. It uses the Netlink library to gather data directly from the kernel, offering real-time insights into node performance.

Node Interface Metrics Exporter provides the following details in the Open Metrics API format using REST APIs.

  1. Physical Function Interface Device information and Statistics.
    1. Device information contains device name, hardware address, broadcast, duplex, ifalias, operation state and pci-address.
    2. Statistics contains
      • RX/TX packets, RX/TX bytes, multicast, RX/TX errors, RX/TX dropped, RX/TX compressed
      • RX detailed errors (length, over, crc, frame, missed, fifo)
      • TX detailed errors (aborted, carrier, heartbeat, window, fifo)
  2. Virtual Function Interface Device information, Statistics and POD information.
    1. Device information contains device name, Virtual Function id, pci-adddress, hardware address, vlan, spoofcheck, trust.
    2. Statistics contains RX/TX packets, RX/TX bytes, RX/TX dropped, TX rate, TX rate max, TX rate min
    3. POD information contains namespace, POD name, container name, resource name, device name, Virtual Function id, hardware address.

Install Node Interface Metrics Exporter Application

Follow the steps below to install the Node Interface Metrics Exporter application.

  1. Locate the application tarball in the /usr/local/share/applications/helm directory.

    For example:

    /usr/local/share/applications/helm/node-interface-metrics-exporter-<version>.tgz
  2. Upload the application using the following command, replacing <version> with the latest version number.

    ~(keystone_admin)]$ system application-upload /usr/local/share/applications/helm node-interface-metrics-exporter-<version>.tgz
  3. Verify that the application has been uploaded successfully.

    ~(keystone_admin)]$ system application-list
  4. Apply the application using the following command.

    ~(keystone_admin)]$ system application-apply node-interface-metrics-exporter

    Application should be in applied state.

  5. Monitor the status of the application using one of the following commands.

    ~(keystone_admin)]$ watch -n 5 system application-list

    OR

    ~(keystone_admin)]$ watch kubectl get pods -n node-interface-metrics-exporter

Uninstall Node Interface Metrics Exporter Application

Follow the steps below to uninstall the Node Interface Metrics Exporter application.

  1. Remove the application using the following command:

    ~(keystone_admin)]$ system application-remove node-interface-metrics-exporter
  2. Delete application using the following command:

    ~(keystone_admin)]$ system application-delete node-interface-metrics-exporter

Once uninstallation is complete, all related resources and configurations will be removed from the system.

Node Interface Metrics Exporter API

Note

Following APIs are expected to be accessed only from applications running internal to the cluster and should not exported.

The Application Pod retrieves node interface information and statistics by making a call to the following REST APIs. The server address is the node's host name or IP address, and it uses port 9110. The output is presented in the Open Metrics format, providing information and statistics for devices that are in the UP state.

Details of the APIs are as follows:

  1. /metrics [GET API]

    Get statistics of all devices in the node.

    • It provides the information and statistics of all Physical Function devices.
    • It provides the information and statistics of Virtual Functions devices belonging to Physical Function devices.
    • It provides the POD information as well if Virtual Function device is used by any POD (matched by PciAddr of Virtual Function device).
    Normal response codes

    200

    Error response codes

    computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), badMethod (405), itemNotFound (404)

    Request parameters

    None

    Response parameters

    Node statistics in Open Metrics format.

    # TYPE network_interface_device info
    # HELP network_interface_device network_interface_device
    network_interface_device_info{device="enp138s0f1",address="b4:96:91:e6:c8:89",broadcast="[]",duplex="full",ifalias=" ",operstate="up",pciaddr="0000:8a:00.1"} 1
    # TYPE network_interface_rx_packets counter
    # HELP network_interface_rx_packets network_interface_rx_packets
    network_interface_rx_packets_total{device="enp138s0f1"} 46173
    network_interface_rx_packets_created{device="enp138s0f1"} 1706083770.764208
    # TYPE network_interface_tx_packets counter
    # HELP network_interface_tx_packets network_interface_tx_packets
    network_interface_tx_packets_total{device="enp138s0f1"} 1.4478309e+07
    network_interface_tx_packets_created{device="enp138s0f1"} 1706083770.764211
    # TYPE network_interface_rx_bytes counter
    # HELP network_interface_rx_bytes network_interface_rx_bytes
    network_interface_rx_bytes_total{device="enp138s0f1"} 2.1096743e+07
    network_interface_rx_bytes_created{device="enp138s0f1"} 1706083770.764213
    # TYPE network_interface_tx_bytes counter
    # HELP network_interface_tx_bytes network_interface_tx_bytes
    network_interface_tx_bytes_total{device="enp138s0f1"} 1.640187532e+09
    network_interface_tx_bytes_created{device="enp138s0f1"} 1706083770.764214
    # TYPE network_interface_rx_errors counter
    # HELP network_interface_rx_errors network_interface_rx_errors
    network_interface_rx_errors_total{device="enp138s0f1"} 0
    network_interface_rx_errors_created{device="enp138s0f1"} 1706083770.764215
    # TYPE network_interface_tx_errors counter
    # HELP network_interface_tx_errors network_interface_tx_errors
    network_interface_tx_errors_total{device="enp138s0f1"} 0
    network_interface_tx_errors_created{device="enp138s0f1"} 1706083770.764216
    # TYPE network_interface_rx_dropped counter
    # HELP network_interface_rx_dropped network_interface_rx_dropped
    network_interface_rx_dropped_total{device="enp138s0f1"} 0
    network_interface_rx_dropped_created{device="enp138s0f1"} 1706083770.764218
    # TYPE network_interface_tx_dropped counter
    # HELP network_interface_tx_dropped network_interface_tx_dropped
    network_interface_tx_dropped_total{device="enp138s0f1"} 0
    network_interface_tx_dropped_created{device="enp138s0f1"} 1706083770.764219
    # TYPE network_interface_multicast counter
    # HELP network_interface_multicast network_interface_multicast
    network_interface_multicast_total{device="enp138s0f1"} 46173
    network_interface_multicast_created{device="enp138s0f1"} 1706083770.764221
    # TYPE network_interface_collisions counter
    # HELP network_interface_collisions network_interface_collisions
    network_interface_collisions_total{device="enp138s0f1"} 0
    network_interface_collisions_created{device="enp138s0f1"} 1706083770.764222
    # TYPE network_interface_rx_length_errors counter
    # HELP network_interface_rx_length_errors network_interface_rx_length_errors
    network_interface_rx_length_errors_total{device="enp138s0f1"} 0
    network_interface_rx_length_errors_created{device="enp138s0f1"} 1706083770.764224
    # TYPE network_interface_rx_over_errors counter
    # HELP network_interface_rx_over_errors network_interface_rx_over_errors
    network_interface_rx_over_errors_total{device="enp138s0f1"} 0
    network_interface_rx_over_errors_created{device="enp138s0f1"} 1706083770.764226
    # TYPE network_interface_rx_crc_errors counter
    # HELP network_interface_rx_crc_errors network_interface_rx_crc_errors
    network_interface_rx_crc_errors_total{device="enp138s0f1"} 0
    network_interface_rx_crc_errors_created{device="enp138s0f1"} 1706083770.764228
    # TYPE network_interface_rx_frame_errors counter
    # HELP network_interface_rx_frame_errors network_interface_rx_frame_errors
    network_interface_rx_frame_errors_total{device="enp138s0f1"} 0
    network_interface_rx_frame_errors_created{device="enp138s0f1"} 1706083770.764229
    # TYPE network_interface_rx_fifo_errors counter
    # HELP network_interface_rx_fifo_errors network_interface_rx_fifo_errors
    network_interface_rx_fifo_errors_total{device="enp138s0f1"} 0
    network_interface_rx_fifo_errors_created{device="enp138s0f1"} 1706083770.764230
    # TYPE network_interface_rx_missed_errors counter
    # HELP network_interface_rx_missed_errors network_interface_rx_missed_errors
    network_interface_rx_missed_errors_total{device="enp138s0f1"} 0
    network_interface_rx_missed_errors_created{device="enp138s0f1"} 1706083770.764232
    # TYPE network_interface_tx_aborted_errors counter
    # HELP network_interface_tx_aborted_errors network_interface_tx_aborted_errors
    network_interface_tx_aborted_errors_total{device="enp138s0f1"} 0
    network_interface_tx_aborted_errors_created{device="enp138s0f1"} 1706083770.764234
    # TYPE network_interface_tx_carrier_errors counter
    # HELP network_interface_tx_carrier_errors network_interface_tx_carrier_errors
    network_interface_tx_carrier_errors_total{device="enp138s0f1"} 0
    network_interface_tx_carrier_errors_created{device="enp138s0f1"} 1706083770.764235
    # TYPE network_interface_tx_fifo_errors counter
    # HELP network_interface_tx_fifo_errors network_interface_tx_fifo_errors
    network_interface_tx_fifo_errors_total{device="enp138s0f1"} 0
    network_interface_tx_fifo_errors_created{device="enp138s0f1"} 1706083770.764237
    # TYPE network_interface_tx_heartbeat_errors counter
    # HELP network_interface_tx_heartbeat_errors network_interface_tx_heartbeat_errors
    network_interface_tx_heartbeat_errors_total{device="enp138s0f1"} 0
    network_interface_tx_heartbeat_errors_created{device="enp138s0f1"} 1706083770.764239
    # TYPE network_interface_tx_window_errors counter
    # HELP network_interface_tx_window_errors network_interface_tx_window_errors
    network_interface_tx_window_errors_total{device="enp138s0f1"} 0
    network_interface_tx_window_errors_created{device="enp138s0f1"} 1706083770.764241
    # TYPE network_interface_rx_compressed counter
    # HELP network_interface_rx_compressed network_interface_rx_compressed
    network_interface_rx_compressed_total{device="enp138s0f1"} 0
    network_interface_rx_compressed_created{device="enp138s0f1"} 1706083770.764242
    # TYPE network_interface_tx_compressed counter
    # HELP network_interface_tx_compressed network_interface_tx_compressed
    network_interface_tx_compressed_total{device="enp138s0f1"} 0
    network_interface_tx_compressed_created{device="enp138s0f1"} 1706083770.764244
    # EOF
    # TYPE network_interface_vf_device info
    # HELP network_interface_vf_device network_interface_vf_device
    network_interface_vf_device_info{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d",vlan="0",spoofcheck="on",trust="off"} 1
    # EOF
    # TYPE network_interface_vf_tx_rate counter
    # HELP network_interface_vf_tx_rate network_interface_vf_tx_rate
    network_interface_vf_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764292
    # TYPE network_interface_vf_max_tx_rate counter
    # HELP network_interface_vf_max_tx_rate network_interface_vf_max_tx_rate
    network_interface_vf_max_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_max_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764294
    # TYPE network_interface_vf_min_tx_rate counter
    # HELP network_interface_vf_min_tx_rate network_interface_vf_min_tx_rate
    network_interface_vf_min_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_min_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764296
    # TYPE network_interface_vf_rx_packets counter
    # HELP network_interface_vf_rx_packets network_interface_vf_rx_packets
    network_interface_vf_rx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1.076376e+06
    network_interface_vf_rx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764298
    # TYPE network_interface_vf_tx_packets counter
    # HELP network_interface_vf_tx_packets network_interface_vf_tx_packets
    network_interface_vf_tx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 362
    network_interface_vf_tx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764301
    # TYPE network_interface_vf_rx_bytes counter
    # HELP network_interface_vf_rx_bytes network_interface_vf_rx_bytes
    network_interface_vf_rx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 4.5207836e+07
    network_interface_vf_rx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764303
    # TYPE network_interface_vf_tx_bytes counter
    # HELP network_interface_vf_tx_bytes network_interface_vf_tx_bytes
    network_interface_vf_tx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 25452
    network_interface_vf_tx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764305
    # TYPE network_interface_vf_rx_dropped counter
    # HELP network_interface_vf_rx_dropped network_interface_vf_rx_dropped
    network_interface_vf_rx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_rx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764306
    # TYPE network_interface_vf_tx_dropped counter
    # HELP network_interface_vf_tx_dropped network_interface_vf_tx_dropped
    network_interface_vf_tx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764309
    # EOF
    # TYPE network_interface_vf_kube_pod info
    # HELP network_interface_vf_kube_pod network_interface_vf_kube_pod
    network_interface_vf_kube_pod_info{namespace="default",pod="sriov-pod-demo1",container="test-sriovdp-netdev-single-pod-0",resource="intel.com/pci_sriov_net_group0_data1",device="net1",vf="1", pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d"} 1
    # EOF

    This operation does not accept a request body.

  2. /metrics/device/{device_name} [GET API]

    Get the information and statistics of the particular device in the node identified by {device_name}.

    • If the input device name is Physical Function, it provides its device information and statistics. Also, it provides device information and statistics of all the Virtual Functions as well belonging to input device. It provides the POD information as well if Virtual Function device is used by any POD (matched by pci-address of Virtual Function device).
    • Input Virtual Function device name is not supported as multiple Virtual Functions have same device name in different pods.
    Normal response codes

    200

    Error response codes

    computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), badMethod (405), itemNotFound (404)

    Request parameters
    Parameter Style Type Description
    device_name URI string The unique name of Physical Function device
    Response parameters

    Device statistics in Open Metrics format.

    # TYPE network_interface_device info
    # HELP network_interface_device network_interface_device
    network_interface_device_info{device="enp138s0f1",address="b4:96:91:e6:c8:89",broadcast="[]",duplex="full",ifalias=" ",operstate="up",pciaddr="0000:8a:00.1"} 1
    # TYPE network_interface_rx_packets counter
    # HELP network_interface_rx_packets network_interface_rx_packets
    network_interface_rx_packets_total{device="enp138s0f1"} 46173
    network_interface_rx_packets_created{device="enp138s0f1"} 1706083770.764208
    # TYPE network_interface_tx_packets counter
    # HELP network_interface_tx_packets network_interface_tx_packets
    network_interface_tx_packets_total{device="enp138s0f1"} 1.4478309e+07
    network_interface_tx_packets_created{device="enp138s0f1"} 1706083770.764211
    # TYPE network_interface_rx_bytes counter
    # HELP network_interface_rx_bytes network_interface_rx_bytes
    network_interface_rx_bytes_total{device="enp138s0f1"} 2.1096743e+07
    network_interface_rx_bytes_created{device="enp138s0f1"} 1706083770.764213
    # TYPE network_interface_tx_bytes counter
    # HELP network_interface_tx_bytes network_interface_tx_bytes
    network_interface_tx_bytes_total{device="enp138s0f1"} 1.640187532e+09
    network_interface_tx_bytes_created{device="enp138s0f1"} 1706083770.764214
    # TYPE network_interface_rx_errors counter
    # HELP network_interface_rx_errors network_interface_rx_errors
    network_interface_rx_errors_total{device="enp138s0f1"} 0
    network_interface_rx_errors_created{device="enp138s0f1"} 1706083770.764215
    # TYPE network_interface_tx_errors counter
    # HELP network_interface_tx_errors network_interface_tx_errors
    network_interface_tx_errors_total{device="enp138s0f1"} 0
    network_interface_tx_errors_created{device="enp138s0f1"} 1706083770.764216
    # TYPE network_interface_rx_dropped counter
    # HELP network_interface_rx_dropped network_interface_rx_dropped
    network_interface_rx_dropped_total{device="enp138s0f1"} 0
    network_interface_rx_dropped_created{device="enp138s0f1"} 1706083770.764218
    # TYPE network_interface_tx_dropped counter
    # HELP network_interface_tx_dropped network_interface_tx_dropped
    network_interface_tx_dropped_total{device="enp138s0f1"} 0
    network_interface_tx_dropped_created{device="enp138s0f1"} 1706083770.764219
    # TYPE network_interface_multicast counter
    # HELP network_interface_multicast network_interface_multicast
    network_interface_multicast_total{device="enp138s0f1"} 46173
    network_interface_multicast_created{device="enp138s0f1"} 1706083770.764221
    # TYPE network_interface_collisions counter
    # HELP network_interface_collisions network_interface_collisions
    network_interface_collisions_total{device="enp138s0f1"} 0
    network_interface_collisions_created{device="enp138s0f1"} 1706083770.764222
    # TYPE network_interface_rx_length_errors counter
    # HELP network_interface_rx_length_errors network_interface_rx_length_errors
    network_interface_rx_length_errors_total{device="enp138s0f1"} 0
    network_interface_rx_length_errors_created{device="enp138s0f1"} 1706083770.764224
    # TYPE network_interface_rx_over_errors counter
    # HELP network_interface_rx_over_errors network_interface_rx_over_errors
    network_interface_rx_over_errors_total{device="enp138s0f1"} 0
    network_interface_rx_over_errors_created{device="enp138s0f1"} 1706083770.764226
    # TYPE network_interface_rx_crc_errors counter
    # HELP network_interface_rx_crc_errors network_interface_rx_crc_errors
    network_interface_rx_crc_errors_total{device="enp138s0f1"} 0
    network_interface_rx_crc_errors_created{device="enp138s0f1"} 1706083770.764228
    # TYPE network_interface_rx_frame_errors counter
    # HELP network_interface_rx_frame_errors network_interface_rx_frame_errors
    network_interface_rx_frame_errors_total{device="enp138s0f1"} 0
    network_interface_rx_frame_errors_created{device="enp138s0f1"} 1706083770.764229
    # TYPE network_interface_rx_fifo_errors counter
    # HELP network_interface_rx_fifo_errors network_interface_rx_fifo_errors
    network_interface_rx_fifo_errors_total{device="enp138s0f1"} 0
    network_interface_rx_fifo_errors_created{device="enp138s0f1"} 1706083770.764230
    # TYPE network_interface_rx_missed_errors counter
    # HELP network_interface_rx_missed_errors network_interface_rx_missed_errors
    network_interface_rx_missed_errors_total{device="enp138s0f1"} 0
    network_interface_rx_missed_errors_created{device="enp138s0f1"} 1706083770.764232
    # TYPE network_interface_tx_aborted_errors counter
    # HELP network_interface_tx_aborted_errors network_interface_tx_aborted_errors
    network_interface_tx_aborted_errors_total{device="enp138s0f1"} 0
    network_interface_tx_aborted_errors_created{device="enp138s0f1"} 1706083770.764234
    # TYPE network_interface_tx_carrier_errors counter
    # HELP network_interface_tx_carrier_errors network_interface_tx_carrier_errors
    network_interface_tx_carrier_errors_total{device="enp138s0f1"} 0
    network_interface_tx_carrier_errors_created{device="enp138s0f1"} 1706083770.764235
    # TYPE network_interface_tx_fifo_errors counter
    # HELP network_interface_tx_fifo_errors network_interface_tx_fifo_errors
    network_interface_tx_fifo_errors_total{device="enp138s0f1"} 0
    network_interface_tx_fifo_errors_created{device="enp138s0f1"} 1706083770.764237
    # TYPE network_interface_tx_heartbeat_errors counter
    # HELP network_interface_tx_heartbeat_errors network_interface_tx_heartbeat_errors
    network_interface_tx_heartbeat_errors_total{device="enp138s0f1"} 0
    network_interface_tx_heartbeat_errors_created{device="enp138s0f1"} 1706083770.764239
    # TYPE network_interface_tx_window_errors counter
    # HELP network_interface_tx_window_errors network_interface_tx_window_errors
    network_interface_tx_window_errors_total{device="enp138s0f1"} 0
    network_interface_tx_window_errors_created{device="enp138s0f1"} 1706083770.764241
    # TYPE network_interface_rx_compressed counter
    # HELP network_interface_rx_compressed network_interface_rx_compressed
    network_interface_rx_compressed_total{device="enp138s0f1"} 0
    network_interface_rx_compressed_created{device="enp138s0f1"} 1706083770.764242
    # TYPE network_interface_tx_compressed counter
    # HELP network_interface_tx_compressed network_interface_tx_compressed
    network_interface_tx_compressed_total{device="enp138s0f1"} 0
    network_interface_tx_compressed_created{device="enp138s0f1"} 1706083770.764244
    # EOF
    # TYPE network_interface_vf_device info
    # HELP network_interface_vf_device network_interface_vf_device
    network_interface_vf_device_info{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d",vlan="0",spoofcheck="on",trust="off"} 1
    # EOF
    # TYPE network_interface_vf_tx_rate counter
    # HELP network_interface_vf_tx_rate network_interface_vf_tx_rate
    network_interface_vf_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764292
    # TYPE network_interface_vf_max_tx_rate counter
    # HELP network_interface_vf_max_tx_rate network_interface_vf_max_tx_rate
    network_interface_vf_max_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_max_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764294
    # TYPE network_interface_vf_min_tx_rate counter
    # HELP network_interface_vf_min_tx_rate network_interface_vf_min_tx_rate
    network_interface_vf_min_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_min_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764296
    # TYPE network_interface_vf_rx_packets counter
    # HELP network_interface_vf_rx_packets network_interface_vf_rx_packets
    network_interface_vf_rx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1.076376e+06
    network_interface_vf_rx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764298
    # TYPE network_interface_vf_tx_packets counter
    # HELP network_interface_vf_tx_packets network_interface_vf_tx_packets
    network_interface_vf_tx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 362
    network_interface_vf_tx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764301
    # TYPE network_interface_vf_rx_bytes counter
    # HELP network_interface_vf_rx_bytes network_interface_vf_rx_bytes
    network_interface_vf_rx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 4.5207836e+07
    network_interface_vf_rx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764303
    # TYPE network_interface_vf_tx_bytes counter
    # HELP network_interface_vf_tx_bytes network_interface_vf_tx_bytes
    network_interface_vf_tx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 25452
    network_interface_vf_tx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764305
    # TYPE network_interface_vf_rx_dropped counter
    # HELP network_interface_vf_rx_dropped network_interface_vf_rx_dropped
    network_interface_vf_rx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_rx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764306
    # TYPE network_interface_vf_tx_dropped counter
    # HELP network_interface_vf_tx_dropped network_interface_vf_tx_dropped
    network_interface_vf_tx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764309
    # EOF
    # TYPE network_interface_vf_kube_pod info
    # HELP network_interface_vf_kube_pod network_interface_vf_kube_pod
    network_interface_vf_kube_pod_info{namespace="default",pod="sriov-pod-demo1",container="test-sriovdp-netdev-single-pod-0",resource="intel.com/pci_sriov_net_group0_data1",device="net1",vf="1", pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d"} 1
    # EOF

    This operation does not accept a request body.

  3. /metrics/pci-addr/{pci_address}

    Get statistics of the particular device in the node identified by {pci_address}.

    • If the input pci-address belongs to Physical Function device, it provides its device information and statistics. Also, it provides statistics of all the Virtual Functions as well belonging to the Physical Function device.
    • If the input pci-address belongs to Virtual Function device, it provides its device information and statistics. It provides the POD information as well if Virtual Function device is used by any POD (matched by pci-address of Virtual Function device).
    Normal response codes

    200

    Error response codes

    computeFault (400, 500, …), serviceUnavailable (503), badRequest (400), badMethod (405), itemNotFound (404)

    Request parameters
    Parameter Style Type Description
    pci_address URI csapi:UUID The unique identifier of pci address of Physical Function or Virtual Function devices
    Response parameters

    Device statistics in Open Metrics format.

    When input is pci-address of Physical Function device:

    # TYPE network_interface_device info
    # HELP network_interface_device network_interface_device
    network_interface_device_info{device="enp138s0f1",address="b4:96:91:e6:c8:89",broadcast="[]",duplex="full",ifalias=" ",operstate="up",pciaddr="0000:8a:00.1"} 1
    # TYPE network_interface_rx_packets counter
    # HELP network_interface_rx_packets network_interface_rx_packets
    network_interface_rx_packets_total{device="enp138s0f1"} 46173
    network_interface_rx_packets_created{device="enp138s0f1"} 1706083770.764208
    # TYPE network_interface_tx_packets counter
    # HELP network_interface_tx_packets network_interface_tx_packets
    network_interface_tx_packets_total{device="enp138s0f1"} 1.4478309e+07
    network_interface_tx_packets_created{device="enp138s0f1"} 1706083770.764211
    # TYPE network_interface_rx_bytes counter
    # HELP network_interface_rx_bytes network_interface_rx_bytes
    network_interface_rx_bytes_total{device="enp138s0f1"} 2.1096743e+07
    network_interface_rx_bytes_created{device="enp138s0f1"} 1706083770.764213
    # TYPE network_interface_tx_bytes counter
    # HELP network_interface_tx_bytes network_interface_tx_bytes
    network_interface_tx_bytes_total{device="enp138s0f1"} 1.640187532e+09
    network_interface_tx_bytes_created{device="enp138s0f1"} 1706083770.764214
    # TYPE network_interface_rx_errors counter
    # HELP network_interface_rx_errors network_interface_rx_errors
    network_interface_rx_errors_total{device="enp138s0f1"} 0
    network_interface_rx_errors_created{device="enp138s0f1"} 1706083770.764215
    # TYPE network_interface_tx_errors counter
    # HELP network_interface_tx_errors network_interface_tx_errors
    network_interface_tx_errors_total{device="enp138s0f1"} 0
    network_interface_tx_errors_created{device="enp138s0f1"} 1706083770.764216
    # TYPE network_interface_rx_dropped counter
    # HELP network_interface_rx_dropped network_interface_rx_dropped
    network_interface_rx_dropped_total{device="enp138s0f1"} 0
    network_interface_rx_dropped_created{device="enp138s0f1"} 1706083770.764218
    # TYPE network_interface_tx_dropped counter
    # HELP network_interface_tx_dropped network_interface_tx_dropped
    network_interface_tx_dropped_total{device="enp138s0f1"} 0
    network_interface_tx_dropped_created{device="enp138s0f1"} 1706083770.764219
    # TYPE network_interface_multicast counter
    # HELP network_interface_multicast network_interface_multicast
    network_interface_multicast_total{device="enp138s0f1"} 46173
    network_interface_multicast_created{device="enp138s0f1"} 1706083770.764221
    # TYPE network_interface_collisions counter
    # HELP network_interface_collisions network_interface_collisions
    network_interface_collisions_total{device="enp138s0f1"} 0
    network_interface_collisions_created{device="enp138s0f1"} 1706083770.764222
    # TYPE network_interface_rx_length_errors counter
    # HELP network_interface_rx_length_errors network_interface_rx_length_errors
    network_interface_rx_length_errors_total{device="enp138s0f1"} 0
    network_interface_rx_length_errors_created{device="enp138s0f1"} 1706083770.764224
    # TYPE network_interface_rx_over_errors counter
    # HELP network_interface_rx_over_errors network_interface_rx_over_errors
    network_interface_rx_over_errors_total{device="enp138s0f1"} 0
    network_interface_rx_over_errors_created{device="enp138s0f1"} 1706083770.764226
    # TYPE network_interface_rx_crc_errors counter
    # HELP network_interface_rx_crc_errors network_interface_rx_crc_errors
    network_interface_rx_crc_errors_total{device="enp138s0f1"} 0
    network_interface_rx_crc_errors_created{device="enp138s0f1"} 1706083770.764228
    # TYPE network_interface_rx_frame_errors counter
    # HELP network_interface_rx_frame_errors network_interface_rx_frame_errors
    network_interface_rx_frame_errors_total{device="enp138s0f1"} 0
    network_interface_rx_frame_errors_created{device="enp138s0f1"} 1706083770.764229
    # TYPE network_interface_rx_fifo_errors counter
    # HELP network_interface_rx_fifo_errors network_interface_rx_fifo_errors
    network_interface_rx_fifo_errors_total{device="enp138s0f1"} 0
    network_interface_rx_fifo_errors_created{device="enp138s0f1"} 1706083770.764230
    # TYPE network_interface_rx_missed_errors counter
    # HELP network_interface_rx_missed_errors network_interface_rx_missed_errors
    network_interface_rx_missed_errors_total{device="enp138s0f1"} 0
    network_interface_rx_missed_errors_created{device="enp138s0f1"} 1706083770.764232
    # TYPE network_interface_tx_aborted_errors counter
    # HELP network_interface_tx_aborted_errors network_interface_tx_aborted_errors
    network_interface_tx_aborted_errors_total{device="enp138s0f1"} 0
    network_interface_tx_aborted_errors_created{device="enp138s0f1"} 1706083770.764234
    # TYPE network_interface_tx_carrier_errors counter
    # HELP network_interface_tx_carrier_errors network_interface_tx_carrier_errors
    network_interface_tx_carrier_errors_total{device="enp138s0f1"} 0
    network_interface_tx_carrier_errors_created{device="enp138s0f1"} 1706083770.764235
    # TYPE network_interface_tx_fifo_errors counter
    # HELP network_interface_tx_fifo_errors network_interface_tx_fifo_errors
    network_interface_tx_fifo_errors_total{device="enp138s0f1"} 0
    network_interface_tx_fifo_errors_created{device="enp138s0f1"} 1706083770.764237
    # TYPE network_interface_tx_heartbeat_errors counter
    # HELP network_interface_tx_heartbeat_errors network_interface_tx_heartbeat_errors
    network_interface_tx_heartbeat_errors_total{device="enp138s0f1"} 0
    network_interface_tx_heartbeat_errors_created{device="enp138s0f1"} 1706083770.764239
    # TYPE network_interface_tx_window_errors counter
    # HELP network_interface_tx_window_errors network_interface_tx_window_errors
    network_interface_tx_window_errors_total{device="enp138s0f1"} 0
    network_interface_tx_window_errors_created{device="enp138s0f1"} 1706083770.764241
    # TYPE network_interface_rx_compressed counter
    # HELP network_interface_rx_compressed network_interface_rx_compressed
    network_interface_rx_compressed_total{device="enp138s0f1"} 0
    network_interface_rx_compressed_created{device="enp138s0f1"} 1706083770.764242
    # TYPE network_interface_tx_compressed counter
    # HELP network_interface_tx_compressed network_interface_tx_compressed
    network_interface_tx_compressed_total{device="enp138s0f1"} 0
    network_interface_tx_compressed_created{device="enp138s0f1"} 1706083770.764244
    # EOF
    # TYPE network_interface_vf_device info
    # HELP network_interface_vf_device network_interface_vf_device
    network_interface_vf_device_info{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d",vlan="0",spoofcheck="on",trust="off"} 1
    # EOF
    # TYPE network_interface_vf_tx_rate counter
    # HELP network_interface_vf_tx_rate network_interface_vf_tx_rate
    network_interface_vf_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764292
    # TYPE network_interface_vf_max_tx_rate counter
    # HELP network_interface_vf_max_tx_rate network_interface_vf_max_tx_rate
    network_interface_vf_max_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_max_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764294
    # TYPE network_interface_vf_min_tx_rate counter
    # HELP network_interface_vf_min_tx_rate network_interface_vf_min_tx_rate
    network_interface_vf_min_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_min_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764296
    # TYPE network_interface_vf_rx_packets counter
    # HELP network_interface_vf_rx_packets network_interface_vf_rx_packets
    network_interface_vf_rx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1.076376e+06
    network_interface_vf_rx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764298
    # TYPE network_interface_vf_tx_packets counter
    # HELP network_interface_vf_tx_packets network_interface_vf_tx_packets
    network_interface_vf_tx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 362
    network_interface_vf_tx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764301
    # TYPE network_interface_vf_rx_bytes counter
    # HELP network_interface_vf_rx_bytes network_interface_vf_rx_bytes
    network_interface_vf_rx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 4.5207836e+07
    
    network_interface_vf_rx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764303
    # TYPE network_interface_vf_tx_bytes counter
    # HELP network_interface_vf_tx_bytes network_interface_vf_tx_bytes
    network_interface_vf_tx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 25452
    network_interface_vf_tx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764305
    # TYPE network_interface_vf_rx_dropped counter
    # HELP network_interface_vf_rx_dropped network_interface_vf_rx_dropped
    network_interface_vf_rx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_rx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764306
    # TYPE network_interface_vf_tx_dropped counter
    # HELP network_interface_vf_tx_dropped network_interface_vf_tx_dropped
    network_interface_vf_tx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764309
    # EOF
    # TYPE network_interface_vf_kube_pod info
    # HELP network_interface_vf_kube_pod network_interface_vf_kube_pod
    network_interface_vf_kube_pod_info{namespace="default",pod="sriov-pod-demo1",container="test-sriovdp-netdev-single-pod-0",resource="intel.com/pci_sriov_net_group0_data1",device="net1",vf="1", pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d"} 1
    # EOF

    When input is pci-address of Virtual Function device:

    # TYPE network_interface_vf_device info
    # HELP network_interface_vf_device network_interface_vf_device
    network_interface_vf_device_info{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d",vlan="0",spoofcheck="on",trust="off"} 1
    # EOF
    # TYPE network_interface_vf_tx_rate counter
    # HELP network_interface_vf_tx_rate network_interface_vf_tx_rate
    network_interface_vf_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764292
    # TYPE network_interface_vf_max_tx_rate counter
    # HELP network_interface_vf_max_tx_rate network_interface_vf_max_tx_rate
    network_interface_vf_max_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_max_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764294
    # TYPE network_interface_vf_min_tx_rate counter
    # HELP network_interface_vf_min_tx_rate network_interface_vf_min_tx_rate
    network_interface_vf_min_tx_rate_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_min_tx_rate_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764296
    # TYPE network_interface_vf_rx_packets counter
    # HELP network_interface_vf_rx_packets network_interface_vf_rx_packets
    network_interface_vf_rx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1.076376e+06
    network_interface_vf_rx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764298
    # TYPE network_interface_vf_tx_packets counter
    # HELP network_interface_vf_tx_packets network_interface_vf_tx_packets
    network_interface_vf_tx_packets_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 362
    network_interface_vf_tx_packets_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764301
    # TYPE network_interface_vf_rx_bytes counter
    # HELP network_interface_vf_rx_bytes network_interface_vf_rx_bytes
    network_interface_vf_rx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 4.5207836e+07
    network_interface_vf_rx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764303
    # TYPE network_interface_vf_tx_bytes counter
    # HELP network_interface_vf_tx_bytes network_interface_vf_tx_bytes
    network_interface_vf_tx_bytes_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 25452
    network_interface_vf_tx_bytes_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764305
    # TYPE network_interface_vf_rx_dropped counter
    # HELP network_interface_vf_rx_dropped network_interface_vf_rx_dropped
    network_interface_vf_rx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_rx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764306
    # TYPE network_interface_vf_tx_dropped counter
    # HELP network_interface_vf_tx_dropped network_interface_vf_tx_dropped
    network_interface_vf_tx_dropped_total{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 0
    network_interface_vf_tx_dropped_created{device="enp138s0f1",vf="0",pciaddr="0000:8a:0a.0"} 1706083770.764309
    # EOF
    # TYPE network_interface_vf_kube_pod info
    # HELP network_interface_vf_kube_pod network_interface_vf_kube_pod
    network_interface_vf_kube_pod_info{namespace="default",pod="sriov-pod-demo1",container="test-sriovdp-netdev-single-pod-0",resource="intel.com/pci_sriov_net_group0_data1",device="net1",vf="1", pciaddr="0000:8a:0a.0",address="ae:f7:4c:38:0f:5d"} 1
    # EOF

    This operation does not accept a request body.