Fractal Techware

Alert runbooks /

NodeNetworkReceiveErrs

A physical or primary network interface on this host has been receiving a noticeable share of bad packets for a long time.

   
Severity warning
Source node_exporter 1.x, netdev collector
Key metrics node_network_receive_errs_total, node_network_receive_packets_total

What it means

The kernel counts a receive error when a frame arrives damaged or cannot be accepted: CRC/frame errors, length errors, FIFO overruns and similar. The alert looks at errors as a fraction of received packets and fires only when that fraction stays elevated for an extended period. Virtual interfaces from container networking (veth, cali, flannel, cilium, docker bridges) are ignored.

Every errored frame is a lost packet. TCP recovers with retransmits, so the symptom is usually higher latency, lower throughput, and occasional timeouts rather than a clean outage.

Common causes

First checks

  1. Find the worst interfaces across the fleet:
    topk(10, rate(node_network_receive_errs_total{device!~"lo|veth.*|cali.*"}[5m]))
    
  2. Compare with drops, which point to buffer or CPU issues rather than wire damage:
    rate(node_network_receive_drop_total{instance="<instance>", device="<device>"}[5m])
    
  3. Inspect the interface counters on the host:
    ip -s -s link show <device>
    
  4. Get the detailed NIC statistics, link speed and duplex:
    sudo ethtool -S <device> | grep -iE "err|crc|fifo|over|miss" | grep -v ": 0"
    sudo ethtool <device> | grep -E "Speed|Duplex|Link detected"
    
  5. Check ring buffer sizes and kernel messages:
    sudo ethtool -g <device>
    sudo dmesg -T | grep -i <device> | tail
    

Fixing it

CRC and frame errors are almost always physical: reseat or replace the cable or optic, or move to another switch port, and check the switch-side counters. Fix speed/duplex or MTU mismatches on both ends. For overruns, enlarge the ring buffer (ethtool -G <device> rx <size>) and spread interrupts across CPUs. Update NIC firmware and driver if errors persist on known-good cabling. On cloud VMs, stop and start the instance to move it to other hardware.