fix(go.d/snmp): use 32bit counters if 64 aren't available (#20249)
Ilya Mashchenko committed
May 7, 2025 at 16:12 UTC
ec1daedab54c78e55d1b03a1a05a95956de3794d
1 file changed
+19
-8
src/go/plugin/go.d/collector/snmp/collect_if_mib.go
+19
-8
@@ -183,14 +183,25 @@ func (c *Collector) collectNetworkInterfaces(mx map[string]int64) error {
183
}
184
185
px := fmt.Sprintf("net_iface_%s_", iface.ifName)
186
- mx[px+"traffic_in"] = iface.ifHCInOctets * 8 / 1000 // kilobits
187
- mx[px+"traffic_out"] = iface.ifHCOutOctets * 8 / 1000 // kilobits
188
- mx[px+"ucast_in"] = iface.ifHCInUcastPkts
189
- mx[px+"ucast_out"] = iface.ifHCOutUcastPkts
190
- mx[px+"mcast_in"] = iface.ifHCInMulticastPkts
191
- mx[px+"mcast_out"] = iface.ifHCOutMulticastPkts
192
- mx[px+"bcast_in"] = iface.ifHCInBroadcastPkts
193
- mx[px+"bcast_out"] = iface.ifHCOutBroadcastPkts
186
+ if len(ifMibXTable) == 0 {
187
+ mx[px+"traffic_in"] = iface.ifInOctets * 8 / 1000 // kilobits
188
+ mx[px+"traffic_out"] = iface.ifOutOctets * 8 / 1000 // kilobits
189
+ mx[px+"ucast_in"] = iface.ifInUcastPkts
190
+ mx[px+"ucast_out"] = iface.ifOutUcastPkts
191
+ mx[px+"mcast_in"] = iface.ifInMulticastPkts
192
+ mx[px+"mcast_out"] = iface.ifOutMulticastPkts
193
+ mx[px+"bcast_in"] = iface.ifInBroadcastPkts
194
+ mx[px+"bcast_out"] = iface.ifOutBroadcastPkts
195
+ } else {
196
+ mx[px+"traffic_in"] = iface.ifHCInOctets * 8 / 1000 // kilobits
197
+ mx[px+"traffic_out"] = iface.ifHCOutOctets * 8 / 1000 // kilobits
198
+ mx[px+"ucast_in"] = iface.ifHCInUcastPkts
199
+ mx[px+"ucast_out"] = iface.ifHCOutUcastPkts
200
+ mx[px+"mcast_in"] = iface.ifHCInMulticastPkts
201
+ mx[px+"mcast_out"] = iface.ifHCOutMulticastPkts
202
+ mx[px+"bcast_in"] = iface.ifHCInBroadcastPkts
203
+ mx[px+"bcast_out"] = iface.ifHCOutBroadcastPkts
204
+ }
205
mx[px+"errors_in"] = iface.ifInErrors
206
mx[px+"errors_out"] = iface.ifOutErrors
207
mx[px+"discards_in"] = iface.ifInDiscards