feat(system): add system.network.bandwidth.limit metric#3848
feat(system): add system.network.bandwidth.limit metric#3848emmayusufu wants to merge 5 commits into
Conversation
Defines the bandwidth limit of a network interface, derived from the reported link speed, as an opt-in updowncounter in By/s with network.interface.name and network.io.direction attributes. Pairs with system.network.io for computing interface utilization. Signed-off-by: Emmanuel Yusufu Kimaswa <kimaswaemma36@gmail.com>
Signed-off-by: Emmanuel Yusufu Kimaswa <kimaswaemma36@gmail.com>
|
This PR has been labeled as stale due to lack of activity. It will be automatically closed if there is no further activity over the next 7 days. |
|
The stale bot just marked this. It has had no review since I opened it two weeks ago. Is there something I should do to move it forward, like finding a sponsor or bringing it to the system semconv working group? |
Yes, that's a good way forward. |
There was a problem hiding this comment.
Pull request overview
Adds a new system-level semantic convention metric (system.network.bandwidth.limit) intended to represent per-interface link-speed-derived bandwidth capacity, to pair with system.network.io for utilization calculations.
Changes:
- Defines
system.network.bandwidth.limitin the system metrics model withnetwork.interface.nameandnetwork.io.direction. - Regenerates/updates the system metrics documentation to include the new metric section.
- Adds a changelog entry for the enhancement.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| model/system/metrics.yaml | Introduces the new system.network.bandwidth.limit metric definition (instrument, unit, attributes, and semantic note). |
| docs/system/system-metrics.md | Adds the metric to the system metrics doc TOC and includes the generated metric block. |
| .chloggen/system-network-bandwidth-limit.yaml | Records the enhancement in the changelog pipeline. |
| brief: The bandwidth limit of the network interface, derived from the reported link speed. | ||
| note: > | ||
| A full-duplex link carries this capacity in each direction, so the limit | ||
| is reported per direction. Together with the bytes transferred from | ||
| `system.network.io` it allows computing interface utilization. |
There was a problem hiding this comment.
The note now says this is the operating-system interface view, and points hardware-view readers to hw.network.bandwidth.limit.
| The value is the link speed reported by the operating system, for | ||
| example `/sys/class/net/<interface>/speed` on Linux or the adapter link | ||
| speed on Windows. Software throttling (such as Linux traffic control) | ||
| does not change the reported value. |
There was a problem hiding this comment.
Added. The note now says the value converts to bytes per second when the OS reports a different unit, like Mbit/s on Linux.
Pull request dashboard statusStatus last refreshed: 2026-07-25 10:12:15 UTC.
This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. |
Changes
Adds a
system.network.bandwidth.limitmetric to the system namespace: the bandwidth limit of a network interface, derived from the reported link speed (for example/sys/class/net/<device>/speedon Linux).By/s, following the existingsystem.memory.limitandsystem.filesystem.limitshape.network.interface.nameandnetwork.io.direction, matchingsystem.network.io. A full-duplex link carries the capacity in each direction, so the limit is reported per direction and pairs withsystem.network.iofor computing interface utilization, per the instrument naming guidance on limit and usage pairs.Context: this was requested in open-telemetry/opentelemetry-collector-contrib#49169 and implemented in open-telemetry/opentelemetry-collector-contrib#49361, where @dmitryax asked for the metric to be defined here first.
Merge requirement checklist
.chloggenmake fix