[rrd-users] extracting tabular data with rrdgraph

wojtekatbyte wojtek at byte.nl
Mon Apr 11 14:25:58 CEST 2011


Hello, 

> I think you try to use PRINT to print an array of values. That does not
> work. PRINT (and GPRINT) prints one value.

Thanks for clarification. The question remains whether we can somehow print
the array of values?
I think it would be equivalent to something like
 --imageformat [TXT|CSV|JSON|...]

Why is it needed? As Neal pointed out:
> It seems like I should be able to leverage the considerable data
> transformation intelligence
> that's in rrdgraph without actually generating a graph.

In our project we want to present RRD data using an external graphing
library, highcharts (javascript) or amcharts (flash).  

Let's say we want a graph like this:
 DEF=hits:hits.rrd:ds1234:AVERAGE
 DEF=cpu:cpu.rrd:ds1234:AVERAGE
 CDEF=cpu_hit:cpu,hit,/
 LINE=cpu_hit#ff0000:CPU per hit

It's a pain to compute everything from bare datasources, especially if we
need to use more than one .rrd file.
We have to write our own compute functions like cumulative graphs,
percentiles, dealing with undefs.
Further we have to do rrdtool fetch from each file and then filter the
needed datasoures (we store a lot of DSes in every rrd, say 10k).
Now we need to do:
 RRDs::fetch(hits.rrd,...);
 RRDs::fetch(cpu.rrd,...);
 filter datassource ds1234 (we have 10k datasources)
 # align the time from both fetches
 # deal with undefs
 # compute percentiles?
 foreach $t ($times){
    cpu_hit{$t} = cpu{$t}/hits{$t}
 }
 # ?
 # etc

What we need is to get the tabular data that would reproduce the plot, with
computation done by RRD:
 t = [1302516000,1302516300,1302516600,...]
 cpu_hit = [1000,1500,990,...]

In our program we could then easily call something like: 
 (t,cpu_hit) = parse($out);
 chart.x(t); 
 chart.addY(cpu_hit); 
 chart.plot(); 

I have been looking a long time for a solution, but never found one. 
Would it be difficult to patch rrd to return 'TEXT graphs'?

Regards,
Wojtek

P.S. Storing 10k datasources in a rrd works very well, only rrdfetch is
memory consuming.




--
View this message in context: http://rrd-mailinglists.937164.n2.nabble.com/extracting-tabular-data-with-rrdgraph-tp5796980p6261303.html
Sent from the RRDtool Users Mailinglist mailing list archive at Nabble.com.



More information about the rrd-users mailing list