Fixed inaccurate 'node_network_speed_bytes' when speeds are low (#1580)

Integer division and the order of operations when converting Mbps to Bps
results in a loss of accuracy if the interface speeds are set low.
e.g. 100 Mbps is reported as 12000000 Bps, should be 12500000
     10 Mbps is reported as 1000000 Bps, should be 1250000

Signed-off-by: Thomas Lin <t.lin@mail.utoronto.ca>
This commit is contained in:
Thomas Lin 2020-01-01 07:10:53 -05:00 committed by Ben Kochie
commit 3ddc82c2d8
2 changed files with 2 additions and 1 deletions

View file

@ -144,7 +144,7 @@ func (c *netClassCollector) Update(ch chan<- prometheus.Metric) error {
}
if ifaceInfo.Speed != nil {
speedBytes := int64(*ifaceInfo.Speed / 8 * 1000 * 1000)
speedBytes := int64(*ifaceInfo.Speed * 1000 * 1000 / 8)
pushMetric(ch, c.subsystem, "speed_bytes", speedBytes, ifaceInfo.Name, prometheus.GaugeValue)
}