Network Interface Stats Telemetry

The network Interface Stats and Global Stats telemetry records are your primary window into the Netify DPI engine's interaction with your network hardware. By providing real-time packet and byte telemetry for every active interface, it allows you to monitor exactly how your traffic is being observed and handled. This visibility ensures that your classification engine is receiving the raw data it needs to maintain high-accuracy visibility.

The interface_stats record provides stats per network interface, while the global_stats record provides the same information summarized across all monitored network interfaces.


Requirements

Interface Stats telemetry was introduced in the Core Plugin in version 1.0.20. To begin streaming the telemetry:

  • Install and configure the Netify Agent
  • Install and configure a Sink Plugin for receiving the telemetry
  • Install and configure the Core Plugin and add stream-stats to types
Source
Core Plugin
Plugin Release
1.0.20

Optimizations

The network interface values become significantly more powerful when trended over time to establish a performance baseline. Comparing ingress/egress ratios against dropped and discarded error counters helps teams perform rapid root-cause analysis. Whether you are troubleshooting a misconfigured NIC, a saturated kernel ring buffer, or a processing lag, these statistics provide the empirical evidence needed to resolve bottlenecks before they impact your overall network intelligence and security posture.

capture_dropped
A non-zero value indicates that the agent could not service incoming packets quickly enough, resulting in packet loss at the capture layer. If you are using PCAP, this typically means the system requires additional CPU resources. If you are using TPACKET_V3, increase the size of the packet ring buffer to allow the kernel to queue more packets for processing.
flow_dropped
A non-zero value indicates that the max_flows limit has been reached. This configuration option controls the maximum number of concurrent flows the Netify Agent tracks, preventing excessive CPU and memory consumption during unusually high traffic volumes or pathological flow patterns. If this counter increases under normal operating conditions, consider raising the max_flows value or scaling the hardware to accommodate the observed traffic load.

Attributes

type

string
Telemetry record type. Always interface_stats or global_stats.

<interface_name>

object
Per-interface statistics object keyed by interface name.

capture_dropped

integer
Number of packets dropped by the packet capture layer.

capture_filtered

integer
Number of packets filtered out via extended Berkeley Packet Filters (eBPF).

discarded

integer
Number of discarded packets prior to entering the DPI engine for analysis. An example is an unsupported protocol like NetBEUI.

discarded_bytes

integer
Number of discarded bytes.

ethernet

integer
Number of Ethernet frames observed.

flow_dropped

integer
Number of packets dropped during flow processing.

fragmented

integer
Number of fragmented IP packets observed.

icmp

integer
Number of ICMP packets observed.

igmp

integer
Number of IGMP packets observed.

ip

integer
Number of IP packets observed.

ip_bytes

integer
Total number of bytes carried in IP packets.

largest_bytes

integer
Size in bytes of the largest observed packet.

mpls

integer
Number of MPLS packets observed.

pppoe

integer
Number of PPPoE packets observed.

queue_dropped

integer
Number of packets dropped due to internal queue limits.

raw

integer
Total number of raw packets captured on the interface.

tcp

integer
Number of TCP packets observed.

tcp_resets

integer
Number of TCP RST packets observed.

tcp_seq_errors

integer
Number of TCP sequence anomalies detected.

udp

integer
Number of UDP packets observed.

vlan

integer
Number of VLAN-tagged packets observed.

wire_bytes

integer
Total number of bytes observed on the wire, including frame overhead.

Network Interface Stats Attributes - Example

{
  "type": "interface_stats",
  "eth0": {
    "capture_dropped": 0,
    "capture_filtered": 0,
    "discarded": 12,
    "discarded_bytes": 1012,
    "ethernet": 772,
    "flow_dropped": 0,
    "fragmented": 0,
    "icmp": 3,
    "igmp": 2,
    "ip": 760,
    "ip_bytes": 261408,
    "largest_bytes": 1514,
    "mpls": 0,
    "pppoe": 0,
    "queue_dropped": 0,
    "raw": 772,
    "tcp": 648,
    "tcp_resets": 0,
    "tcp_seq_errors": 0,
    "udp": 107,
    "vlan": 0,
    "wire_bytes": 279648
  }
}

Global Stats Attributes - Example

{
  "capture_dropped": 0,
  "capture_filtered": 0,
  "discarded": 13,
  "discarded_bytes": 1070,
  "ethernet": 2049,
  "flow_dropped": 0,
  "fragmented": 0,
  "icmp": 4,
  "igmp": 13,
  "ip": 2036,
  "ip_bytes": 1218047,
  "largest_bytes": 4369,
  "mpls": 0,
  "pppoe": 0,
  "queue_dropped": 0,
  "raw": 2049,
  "tcp": 1844,
  "tcp_resets": 4,
  "tcp_seq_errors": 0,
  "type": "global_stats",
  "udp": 175,
  "vlan": 0,
  "wire_bytes": 1266911
}