[rrd-users] rrd dbi syntx

John Stile john at stilen.com
Thu Apr 3 07:54:30 CEST 2014


Sorry for the trouble.  I had a syntax error, as well as missing the *
in the date. Mysql TIMESTAMP dates required the * to force the unix
timestamp format.

This worked for me:
rrdtool graph /home/jstile/foo.png DEF:cpu0=sql//mysql/host=127.0.0.1/dbname=thermal/username=thermal/password=thermal//temperature/*date/cpu0/:avg:AVERAGE:step=600 AREA:user#66ff00:"cpu0"

thank you for your help.

On Wed, 2014-04-02 at 21:03 -0700, John Stile wrote:
> I did try both.
> rrdtool graph ./test.png --imgformat=PNG --start=-1day --end=+3hours --width=1000 --height=600  DEF:min=sql//mysql/host=127.0.0.1/dbname=thermal/username=thermal/password=thermal//temperature/*date/cpu0:min:AVERAGE
> rrdtool graph ./test.png --imgformat=PNG --start=-1day --end=+3hours --width=1000 --height=600  DEF:min=sql//mysql/host=127.0.0.1/dbname=thermal/username=thermal/password=thermal//temperature/date/cpu0:min:AVERAGE
> Both have the same error: ERROR: formatstring wrong - mysql
> The error doesn't really tell me what is wrong.
> 
> Is is possible to modify the select called by rrdtool to force a UNIX_TIMESTAMP?
> 
> e.g. If I could have rrdtool performt this select, data will be correct.
> 
> SELECT UNIX_TIMESTAMP(date),cpu0 FROM temperature
> 
> Output looks like:
> 1394007172
> 41
> 1394007183
> 43
> 1394007243
> 41
> 1394007303
> 42
> 
> On Mon, 2014-03-31 at 21:19 +0000, Steve Shipway wrote:
> > >rrdtool graph 
> > >./test.png --imgformat=PNG --start=-1day --end=+0hours --width=1000 --height=600
> > >"DEF:min=sql//mysql/host=127.0.0.1/dbname=thermal/username=thermal/password=thermal//temperature/date/cpu0:min:AVERAGE" 
> > >"LINE1:min#FF0000:cpu0"
> > >
> > >Error:
> > >ERROR: formatstring wrong - mysql
> > 
> > Second attempt at a solution, since the mysql drivers are confirmed to be 
> > present!
> > 
> > See the documentation here 
> > http://oss.oetiker.ch/rrdtool/doc/rrdgraph_libdbi.en.html
> > 
> > Your DEF specifies that the table to use is 'temperature', with the time 
> > coming from field 'date' and the value from field 'cpu0'.
> > 
> > The 'date' field needs to be a UNIX timestamp, not a datetime field type. 
> > Prefix it with a '*' if it is a datetime field -- this requires RRDTool 
> > 1.4.something I believe.
> > 
> > You've not given a table definition for your 'temperature' table, but I 
> > suspect 'date' is a datetime rather than a UNIX timestamp.  Try this instead:
> > 
> > DEF:min=sql//mysql/host=127.0.0.1/dbname=thermal/username=thermal/password=thermal//temperature/*date/cpu0:min:AVERAGE
> > 
> > ... and this should do the necessary datetime -> timestamp conversion.
> > 
> > Steve
> > 
> > 
> > Steve Shipway
> > s.shipway at auckland.ac.nz
> > 
> > 
> 
> 
> _______________________________________________
> rrd-users mailing list
> rrd-users at lists.oetiker.ch
> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users




More information about the rrd-users mailing list