# \[feat\] provide physical network interface MAX speed metric

**URL:** <https://community.netdata.cloud/t/feat-provide-physical-network-interface-max-speed-metric/4243>\
**Category:** Help\
**Created:** [June 6, 2023, 6:13pm UTC](https://community.netdata.cloud/t/feat-provide-physical-network-interface-max-speed-metric/4243 "2023-06-06T18:13:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![k0ste](https://yyz1.discourse-cdn.com/flex029/user_avatar/community.netdata.cloud/k0ste/32/508_2.png) [@k0ste](https://community.netdata.cloud/u/k0ste)\
**Post date:** [June 6, 2023, 6:13pm UTC](https://community.netdata.cloud/t/feat-provide-physical-network-interface-max-speed-metric/4243/1 "2023-06-06T18:13:32Z")

</div>

Currently `netdata` have metric

```auto
netdata_net_speed_kilobits_persec_average{chart="net_speed.gig0",family="gig0",dimension="speed"} 1000000.0000000 1679719048000

```

This mean that “iface `gig0` connected on 1Gbit/sec phy speed”

We need to know situation when link may be:

- connected
- full duplex
- carrier up

But, not at full speed (for example on **100Mbit/s** instead **1000Mbit/s** ). If `netdata` provide MAX speed metric for a network physdev’s, the query for alert will be:

```auto
netdata_net_speed_kilobits_persec_average < netdata_net_speed_kilobits_max

```

And does’t matter if this 1Gbit or 25Gbit iface, one alert will cover any kind of this case

### What exactly problem we try find and then fix

1. Server has 25G NIC ports
2. Engineers by mistake connect server with 10G SFP’s transceivers
3. Link works on 10G, not at 25G
4. We don’t know about that, because carrier is up, duplex is full 🥹

### Kernel interface for get this and many other physdev information

[ethtool.h](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/ethtool.h)

---

<div class="post-metadata">

**Author:** ![k0ste](https://yyz1.discourse-cdn.com/flex029/user_avatar/community.netdata.cloud/k0ste/32/508_2.png) [@k0ste](https://community.netdata.cloud/u/k0ste)\
**Post date:** [June 6, 2023, 6:14pm UTC](https://community.netdata.cloud/t/feat-provide-physical-network-interface-max-speed-metric/4243/2 "2023-06-06T18:14:42Z")

</div>

The Github issue: [[Feat]: provide physical network interface MAX speed metric · Issue #14803 · netdata/netdata · GitHub](https://github.com/netdata/netdata/issues/14803)

---

<div class="post-metadata">

**Author:** ![k0ste](https://yyz1.discourse-cdn.com/flex029/user_avatar/community.netdata.cloud/k0ste/32/508_2.png) [@k0ste](https://community.netdata.cloud/u/k0ste)\
**Post date:** [September 5, 2023, 12:49pm UTC](https://community.netdata.cloud/t/feat-provide-physical-network-interface-max-speed-metric/4243/3 "2023-09-05T12:49:14Z")

</div>

Also finded out that `netdata_net_speed_kilobits_persec_average` was not exported for `bond` devices

```auto
Settings for po1:
        Supported ports: []
        Supported link modes: Not reported
        Supported pause frame use: No
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes: Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 2000Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: Other
        PHYAD: 0
        Transceiver: internal
        Link detected: yes

```

Seems alerts from [health.d](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) never be fired for bond devices

---

<div class="post-metadata">

**Author:** ![k0ste](https://yyz1.discourse-cdn.com/flex029/user_avatar/community.netdata.cloud/k0ste/32/508_2.png) [@k0ste](https://community.netdata.cloud/u/k0ste)\
**Post date:** [April 13, 2026, 9:47am UTC](https://community.netdata.cloud/t/feat-provide-physical-network-interface-max-speed-metric/4243/4 "2026-04-13T09:47:24Z")

</div>

Up, still relevant (20 characters)
