scale(scaleToSeconds(Derivative(<series>),60), 0.125) is required to convert per-minute SNMP Byte Counters to bps

Bug #1048991 reported by David Michael Pennington
This bug affects 2 people
Affects Status Importance Assigned to Milestone

Bug Description

I'm using graphite version 0.9.10 to read ifHCInOctets and ifHCOutOctets, which I'm polling with the collectd snmp and graphite_write plugins; I'm using collectd version 5.1.0.

Data arrives into graphite with no problems; however, I want to graph as bits-per-second. To test whether my stats are correct, I started a CD iso download and watched the download rate... it varied between 1.0Mbps and 2.0Mbps.

Common-sense tells you that you need to multiply Octets counters by 8 to get bits; however, it seems that I need to divide by 8 to make graphite display correctly.

When I multiply by a 0.125 scale factor, "scale(scaleToSeconds(nonNegativeDerivative(<SERIES>), 60),0.125), the formula correctly converts to bits-per-second and I see numbers between 1Mpbs and 2Mbps...

When I use a scale-factor of 8, it fails spectacularly; I get readings of 120Mbps, but I know that's impossible because my circuit is capped at 5Mpbs.

I posted the gory-details (including config files and graph snapshots) here:

By all accounts, this seems to be a bug

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions