24
Neues aus der Welt von RRDtool Tobias Oetiker OETIKER+PARTNER AG www.oetiker.ch

OpenTuesday: Neues aus der RRDtool Welt

Embed Size (px)

Citation preview

Neues aus der Welt von RRDtoolTobias Oetiker

OETIKER+PARTNER AGwww.oetiker.ch

RRDTo

compile rrdtool on a systemwithout graphics libraries

./configure --disable-rrd_graph

RRDTo

improvements to the windows version of rrdtool

RRDTo

valid JSON output from rrdtool xport

{ "hello": "yes this is json" }

RRDTo

fake non existing "step 1 RRA"sfor MIN, MAX and LAST

RRDTo

a MEDIAN operator for CDEF expressions

CDEF:x=a,b,c,d,4,MEDIAN

RRDTo

new stack operators: DEPT, INDEX, COPY, ROLL

a,b,DEPTH -> a,b,2

a,b,c,1,INDEX -> a,b,c,c

a,b,c,d,2,COPY -> a,b,c,b,c,d

a,b,c,d,3,1,ROLL -> a,d,b,c

a,b,c,d,3,-1,ROLL -> a,c,d,b

RRDTo

optionally ignore past updateswith rrdtool update

rrdtool --skip-past-updates x.rrd 1410794816:42

RRDTo

optionally ignore LINE or AREAcommands for chart scaling

LINE:ds1#ff0000:Test:skipscale

RRDTo

detect 2038 problem32-bit time overflow

RRDTo

performance boost for large graph expressions with 1000+ DEF lines by using HASH map

RRDTo

improved cross-compilation support

RRDTo

.Net bindings

RRDTo

new rrdtool graph option to skip non-existing source files

rrdtool graph --use-nan-for-all-missing-data ...

RRDTo

continuous integration throughtravis-ci on GitHub

RRDTo

finally a growing test suite withtravis integration

RRDTo

restore from a pipe

rrdtool dump x.rrd | rrdtool restore - y.rrd

RRDTo

RRA row count and stepcan be defined in absolute time

rrdtool create power.rrd \

--start now-2h --step 1s \

DS:watts:GAUGE:5m:0:24000 \

RRA:AVERAGE:0.5:1s:10d \

RRA:AVERAGE:0.5:1m:90d \

RRA:AVERAGE:0.5:1h:18M

RRDTo

all new create on steroids can pull both data and configuration from existing rrd filesrrdtool create --template s.rrd y.rrd

rrdtool create --source a.rrd \

DS:a=b:DERIVE:300:0:1 RRA:AVERAGE:0.5:1:100

RRDTo

use rrdtool graph to chart arbitrary datavia a callback function for data fetching

RRDs::fetch_register_callback sub {

my $request = shift;

...

return { start => $unix_timestamp,

step => $step_width,

data => { dsName1 => [ value1, …]},

}};

RRDs::graph( …, 'DEF:a=cb//string:ds1:AVERAGE');

RRDTo

new key value parser for rrdtool graph FCNT:p1:[p2][:k1[=v1][:k2[=v2]]...

DEF:ds1=a.rrd:a:AVERAGE:step=7200:reduce=MAX

LINE1:ds1#FF0000:test:dashes=15,5:dash-offset=10

RRDTo

get rrdtool master from github now:https://github.com/oetiker/rrdtool-1.x

> git [email protected]:oetiker/rrdtool-1.x.git

> cd rrdtool-1.x

> ./bootstrap

> ./configure && make install

RRDTo

and one more thing ...

RRDTo

interactive rrdgraphs on the web

http://tobi.oetiker.ch/rrdgraph.js