[rrd-users] Re: rrdtool export

Barker, David dbarker at gnilink.net
Thu Jan 15 16:12:22 MET 2004


Rrdtool xport uses the same code that rrdtool graph uses.  One of the side
effects of this is that rrdtool xport limits the amount of data returned due
to the width of the x-axis.  I know this sounds kind of funny because XML
files do not have an x-axis, but line and area charts do, and so rrdtool
graph must limit them.  If you do not specify an x-axis width (and with
xport, you don't) the limit is 400.  Thus, if you have 600 data points, you
will only get half, around 300.
 
I have coded a fix for this and will try to contribute it to the code base.
 
-David Barker
 Network Computing Technologies, Inc.
 Dbarker (at) gnilink (dot) net
 
-----Original Message-----
To: rrd-users at list.ee.ethz.ch <mailto:rrd-users at list.ee.ethz.ch>  

Subject: [rrd-users] rrdtool export 

From: Jason Signalness <jason{at}btiadmin{dot}net
<nospam:jason%7bat%7dbtiadmin%7bdot%7dnet> > 

Date: Wed, 12 Feb 2003 15:28:08 -0600 

 
Hello,
 
I've been having some trouble getting the desired data from an rrd using 
xport.  I realize that I could use dump, but that spits out too much 
data... slows things down in another process.  Anyway, I appreciate any 
advice.  Here's my problem:
 
My rrd was created by Cricket.  I want all the data from the second RRA 
(the 1/2 hour readings) dumped or exported to XML.  I believe  RRDtool 
will do it for me using the xport command, but I can't seem to get all 
600 samples.  It always gives me about half of them.
 
For example... below is the structure of the rrd (from rrdtoool info). 
I'm only interested in the first datasource:
 
> filename = "/opt/cricket/cricket-data/bepc/generation/cwp.rrd"
> rrd_version = "0001"
> step = 300
> last_update = 1045083365
> ds[ds0].type = "GAUGE"
> ds[ds0].minimal_heartbeat = 1800
> ds[ds0].min = 0.0000000000e+00
> ds[ds0].max = NaN
> ds[ds0].last_ds = "UNKN"
> ds[ds0].value = 0.0000000000e+00
> ds[ds0].unknown_sec = 0
> ds[ds1].type = "GAUGE"
> ds[ds1].minimal_heartbeat = 1800
> ds[ds1].min = 0.0000000000e+00
> ds[ds1].max = NaN
> ds[ds1].last_ds = "UNKN"
> ds[ds1].value = 0.0000000000e+00
> ds[ds1].unknown_sec = 0
> ds[ds2].type = "GAUGE"
> ds[ds2].minimal_heartbeat = 1800
> ds[ds2].min = 0.0000000000e+00
> ds[ds2].max = NaN
> ds[ds2].last_ds = "UNKN"
> ds[ds2].value = 0.0000000000e+00
> ds[ds2].unknown_sec = 0
> ds[ds3].type = "GAUGE"
> ds[ds3].minimal_heartbeat = 1800
> ds[ds3].min = 0.0000000000e+00
> ds[ds3].max = NaN
> ds[ds3].last_ds = "UNKN"
> ds[ds3].value = 0.0000000000e+00
> ds[ds3].unknown_sec = 0
> rra[0].cf = "AVERAGE"
> rra[0].rows = 600
> rra[0].pdp_per_row = 1
> rra[0].xff = 5.0000000000e-01
> rra[0].cdp_prep[0].value = NaN
> rra[0].cdp_prep[0].unknown_datapoints = 0
> rra[0].cdp_prep[1].value = NaN
> rra[0].cdp_prep[1].unknown_datapoints = 0
> rra[0].cdp_prep[2].value = NaN
> rra[0].cdp_prep[2].unknown_datapoints = 0
> rra[0].cdp_prep[3].value = NaN
> rra[0].cdp_prep[3].unknown_datapoints = 0
> rra[1].cf = "AVERAGE"
> rra[1].rows = 600
> rra[1].pdp_per_row = 6
> rra[1].xff = 5.0000000000e-01
> rra[1].cdp_prep[0].value = 1.3655952921e+02
> rra[1].cdp_prep[0].unknown_datapoints = 0
> rra[1].cdp_prep[1].value = 0.0000000000e+00
> rra[1].cdp_prep[1].unknown_datapoints = 0
> rra[1].cdp_prep[2].value = 0.0000000000e+00
> rra[1].cdp_prep[2].unknown_datapoints = 0
> rra[1].cdp_prep[3].value = 0.0000000000e+00
> rra[1].cdp_prep[3].unknown_datapoints = 0
> rra[2].cf = "AVERAGE"
> rra[2].rows = 600
> rra[2].pdp_per_row = 24
> rra[2].xff = 5.0000000000e-01
> rra[2].cdp_prep[0].value = 2.3305825580e+02
> rra[2].cdp_prep[0].unknown_datapoints = 0
> rra[2].cdp_prep[1].value = 0.0000000000e+00
> rra[2].cdp_prep[1].unknown_datapoints = 0
> rra[2].cdp_prep[2].value = 0.0000000000e+00
> rra[2].cdp_prep[2].unknown_datapoints = 0
> rra[2].cdp_prep[3].value = 0.0000000000e+00
> rra[2].cdp_prep[3].unknown_datapoints = 0
> rra[3].cf = "MAX"
> rra[3].rows = 600
> rra[3].pdp_per_row = 24
> rra[3].xff = 5.0000000000e-01
> rra[3].cdp_prep[0].value = 4.3076666667e+01
> rra[3].cdp_prep[0].unknown_datapoints = 0
> rra[3].cdp_prep[1].value = 0.0000000000e+00
> rra[3].cdp_prep[1].unknown_datapoints = 0
> rra[3].cdp_prep[2].value = 0.0000000000e+00
> rra[3].cdp_prep[2].unknown_datapoints = 0
> rra[3].cdp_prep[3].value = 0.0000000000e+00
> rra[3].cdp_prep[3].unknown_datapoints = 0
> rra[4].cf = "AVERAGE"
> rra[4].rows = 600
> rra[4].pdp_per_row = 288
> rra[4].xff = 5.0000000000e-01
> rra[4].cdp_prep[0].value = 2.9970983237e+02
> rra[4].cdp_prep[0].unknown_datapoints = 234
> rra[4].cdp_prep[1].value = 0.0000000000e+00
> rra[4].cdp_prep[1].unknown_datapoints = 225
> rra[4].cdp_prep[2].value = 0.0000000000e+00
> rra[4].cdp_prep[2].unknown_datapoints = 225
> rra[4].cdp_prep[3].value = 0.0000000000e+00
> rra[4].cdp_prep[3].unknown_datapoints = 225
> rra[5].cf = "MAX"
> rra[5].rows = 600
> rra[5].pdp_per_row = 288
> rra[5].xff = 5.0000000000e-01
> rra[5].cdp_prep[0].value = 4.3076666667e+01
> rra[5].cdp_prep[0].unknown_datapoints = 234
> rra[5].cdp_prep[1].value = 0.0000000000e+00
> rra[5].cdp_prep[1].unknown_datapoints = 225
> rra[5].cdp_prep[2].value = 0.0000000000e+00
> rra[5].cdp_prep[2].unknown_datapoints = 225
> rra[5].cdp_prep[3].value = 0.0000000000e+00
> rra[5].cdp_prep[3].unknown_datapoints = 225
 
 
Here is how I'm trying to export the data:
 
 
 > /opt/RRDTool/bin/rrdtool xport \
 >    --start -12.5days --step 1800 \
 >    DEF:generation=.../cwp.rrd:ds1:AVERAGE \
 >    XPORT:generation::
 
 
And here is what the xport spits out (notice only 242 rows, not 600):
 
 
 > <?xml version="1.0" encoding="ISO-8859-1"?>
 >
 > <xport>
 >   <meta>
 >     <start>1044651600</start>
 >     <step>1800</step>
 >     <end>1045085400</end>
 >     <rows>242</rows>       <--- why not 600?
 >     <columns>1</columns>
 >     <legend>
 >       <entry></entry>
 >     </legend>
 >   </meta>
 >   <data>
 >     <row><t>1044651600</t><v>0.0000000000e+00</v></row>
 >     <row><t>1044653400</t><v>0.0000000000e+00</v></row>
 >     . . .
 >   </data>
 > </xport>
 
Any help would be appreciated!  Thanks,
 
-- 
Jason Signalness, Systems Administrator
Basin Telecommunications, Inc.
--
 

 



--
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