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
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Graphite
New
Undecided
Unassigned

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:
http://serverfault.com/questions/425828/graphite-snmp-counter-transforms

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

Remote bug watches

Bug watches keep track of this bug in other bug trackers.