[rrd-users] graphing unconsolidated values

Alex van den Bogaerdt alex at vandenbogaerdt.nl
Thu Oct 9 01:36:32 CEST 2008

> I understand that RRDTool is designed to store/graph rates and not values.

That is not part of your problem/challenge.  I'm graphing temperatures; 
consolidation works just fine (e.g. temperatures 20.1, 20.3 will be averaged 
as 20.2 as intended).

RRDtool doesn't know nor care where your data comes from. As long as you 
understand that RRDtool thinks each number is a 'something per second' 
number, all is fine.

> That being said, I need to graph values for a few of my datasources.  I'd
> rather not have to setup a whole separate graphing system just for a few
> graphs so if it is possible, I'd like to use my existing rrdtool system to
> do this.  Is it possible to setup a datasource definition so that it will
> store (and subsequently be able to display) exact values?

Yes and no.  Techically no, but you don't mind as you can still achieve your 

> I'd like to stick with a 300s interval.  I am not an expert at rrdtool, 
> but
> I have read the documentation on normalization and consolidation so I feel
> like I somewhat understand the underpinnings, but not enough to figure out
> how to make this work correctly.

Normalization will always happen, although sometimes it isn't doing anything 
but copy your input. This is when it is given to RRDtool at exactly the 
right moment. For instance, if your step is 300 then your timestamps should 
be n*300 where n is a positive integer number. Wall clock time 01:20 results 
in such a timestamp, 01:25 does, 01:23 does not.

Consolidation will also always happen, but consolidating one PDP into CDP 
won't change the rate so this too is a no-op.

DS:somename:GAUGE:300:U:U should do.  Modify 300 (heartbeat) to a larger 
number if you want to do updates which span a larger time interval (e.g. 
write 0 at midnight to set every rate between 17:00 and midnight to zero 
requires at least 50400, plus the amount of time in seconds by which the 
wall clock time is set back when daylight saving changes). Modify 300 to a 
lower number if you want RRDtool to ignore all your input.

If you want to store data for a year, in 300 second intervals, then you 
should have 366 days (leap years!) times 24 hours (no daylight saving in 
UTC!) per day times 3600 seconds per hour divided by 300 seconds per 
interval = 105408 CDPs. Each CDP should be built from exactly one PDP (a 
step as defined by step size).

RRA:AVERAGE:0:1:105408 should do.

You may hit some hidden limitation when you try to graph all of your data, 
but if you want to try anyway just set --width 105408 and see what happens. 
Of course you most likely just want to see portions of your data.  Make sure 
the end time minus the start time equals your step size times the amount of 
pixels and make sure both timestamps are n*300 again.

(typos and brainfarts may occur in above text. No tests where performed 
while typing this message) 

More information about the rrd-users mailing list