[rrd-users] Re: Question on 95th percentile
Paul Wickman
paulw at explosive.net
Wed Feb 28 06:29:36 MET 2001
Take a look at the Statistics::Descriptive perl module. I use it in a
bandwidth billing application developed for a recent client who runs a
mid-sized co-location facility. It uses Cricket's collector (with a
heavily modified config tree) to retrive HCInOctets/HCOutOctets for each
customer's port(s) on the switches (Foundry NetIron400). Any collector
errors are reported to a Mon server running on the same box.
I decided that Cricket's default RRD archive definitions, while useful for
general bandwidth measurement, debugging purposes, etc., were not
granular/detailed enough to be used as data for billing. I redefined the
archives as such:
14400 rows * 300 second step = 5 minutes AVG samples for 50 days
288 rows * 300 second step = 1 day AVG samples for 600 days
This does make the RRD file larger, about ~121 Kbytes per datasource, but
disk is cheap and bandwidth is money :^)
The billing folks can then enter a specific date via a CGI form, and
RRD::fetch is used to retrive '<date_entered> - 30 days' worth of (5
minutes) samples. Each sample (HCInOctets + HCOutOctets) is fed into
$stat->add_data(), and then the $stat->percentile(95) method of
Statistics::Descriptive is called which, you guessed it, calculates the
95th percentile. For any missing samples, we error on the side of the
customer by adding a zero, which effectively says that the customer didn't
use any bandwidth during that sample. Presumably, samples would only be
missed if there was a problem with the infrastructure, in which case the
customer should not be penalized.
---
We listen, and if it feels good, we shake...
- Pilgrims, by Widespread Panic
--
Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin http://www.ee.ethz.ch/~slist/lsg2.cgi
More information about the rrd-users
mailing list