Uploaded image for project: 'OpenShift Request For Enhancement'
  1. OpenShift Request For Enhancement
  2. RFE-3524

Extend network monitoring with VF statistics

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • Network Observability
    • False
    • None
    • False
    • Not Selected

      1. Proposed title of this feature request
      Get the network statistics for the VFs (Virtual Functions)
      2. What is the nature and description of the request?

      In the telco space, the SRIOV (a PF splitted into VFs) is being heavily used. There are statistics about the the PF that are exposed by the node exporter [0]. That does not really help, we need to have the statistics per VF.

      Ideally we want to expose all the metrics provided by `ip -s -s --json link` . For example

      sh-4.4# ip -s -s --json link show ens1f0 |jq .                                                                                                        [34/5500]
      [
        {
          "ifindex": 2,
          "ifname": "ens1f0",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "mtu": 1500,
          "qdisc": "mq",
          "operstate": "UP",
          "linkmode": "DEFAULT",
          "group": "default",
          "txqlen": 1000,
          "link_type": "ether",
          "address": "b4:96:91:b3:64:ac",
          "broadcast": "ff:ff:ff:ff:ff:ff",
          "stats64": {
            "rx": {
              "bytes": 14344757,
              "packets": 54885,
              "errors": 25,
              "dropped": 16846,
              "over_errors": 0,
              "multicast": 33713,
              "length_errors": 0,
              "crc_errors": 24,
              "frame_errors": 0,
              "fifo_errors": 0,
              "missed_errors": 0
            },
            "tx": {
              "bytes": 12861209,
              "packets": 77229,
              "errors": 0,
              "dropped": 0,
              "carrier_errors": 0,
              "collisions": 0,
              "aborted_errors": 0,
              "fifo_errors": 0,
              "window_errors": 0,
              "heartbeat_errors": 0,
              "carrier_changes": 4
            }
          },
          "vfinfo_list": [
            {
              "vf": 0,
              "link_type": "ether",
              "address": "50:00:00:00:00:11",
              "broadcast": "ff:ff:ff:ff:ff:ff",
              "vlan_list": [
                {}
              ],
              "rate": {
                "max_tx": 0,
                "min_tx": 0
              },
              "spoofchk": false,
              "link_state": "auto",
              "trust": false,
              "stats": {
                "rx": {
                  "bytes": 9163999862296,
                  "packets": 152451638999,
                  "multicast": 0,
                  "broadcast": 20434,
                  "dropped": 0
                },
                "tx": {
                  "tx_bytes": 75135409028,
                  "tx_packets": 970565459,
                  "dropped": 0
                }
              }
            },
            {
      

      we need this part per VF

           "stats": {
                "rx": {
                  "bytes": 9163999862296,
                  "packets": 152451638999,
                  "multicast": 0,
                  "broadcast": 20434,
                  "dropped": 0
                },
                "tx": {
                  "tx_bytes": 75135409028,
                  "tx_packets": 970565459,
                  "dropped": 0
                }
      

      3. Why does the customer need this? (List the business requirements here)
      Many times the customer wants to pin-point which workload creates the traffic in a SRIOVed interface or to monitor over time the network behavior of the pod that is using a VF.

      4. List any affected packages or components.

      [0] https://github.com/prometheus/node_exporter/blob/ba8c043079b38748e57adf1f80e3d86a4060efc5/collector/netdev_linux.go

            ddharwar@redhat.com Deepthi Dharwar
            kkarampo@redhat.com Konstantinos Karampogias
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: