[rrd-developers] Anybody working on this? / Proposal

Tobias Oetiker tobi at oetiker.ch
Thu Mar 3 09:47:19 CET 2011

Hi Peter,

Today Peter Stamfest wrote:

> Hello,
> I'm currently thinking about the possiblity to extend the "reach" of
> rrdgraph. When dealing with many different sources of data for RRD
> files, there is the problems that they might be dispersed over a large
> number of systems.
> When one wants to use data from different machines in a single graph,
> this becomes a problem:
>   - it is possible to use rrdcached to do graphing for every set of RRDs
> on a single server
>   - rrdtool itself can deal with graphing from ordinary files
>   - using files from different rrdcached instances and local files
> cannot be expressed easily, IIUC.
> One solution could be to use NFS to allow distributed access to RRD
> files. I'm not a big fan of NFS though, so I am thinking about something
> else.
> I propose to allow for the specification of different styles of
> <rrdfile> in DEF arguments to rrdgraph.
> Something like this already exists for libdbi (using sql// as a prefix).
> So I would like to allow for
>     rrdcached//tcp/<HOST>/<PORT>/<PATH>
> and
>    rrdcached//unix/<SOCKET>//<PATH>
> or something better (also see below).
> Remarks:
> - This would require to extend the FETCH command in rrdcached.
> - For better performance, a "packed/binary" format might be useful in
> the output of "FETCH" - the protocol already should allow for this
> - It would be better to allow for full URL syntax, but the use of ":" as
> the delimiter in DEF makes that problematic
> - To allow for full URLs, we could introduce "UDEF" with a different syntax:
>    UDEF:variable=<URL>
> where <URL> might be
>      file://<rrdfile>?ds=<ds-name>&cf=<CF>&step=<step>&....
>      socket://<HOST>:<PORT>/<rrdfile>?ds=....
>      unix://<SOCKET-PATH>/<rrdfile>?ds=....
>      sql://<I DUNNO>
> - Unix sockets make it hard in both cases. When it comes to a unix://
> url and the <rrdfile>, a path lookup for every leading path might be
> required, <rrdfile> becoming the "path info" in url-speech. This might
> be fixed by requiring a double "/" between the socket and the path.
> Proposal:
>   - extend the FETCH rrdcached command
>   - implement UDEF (requires some URL handling stuff, but this could be
> done using regexps)
>   - add support code in the local rrd_fetch code similar to that for
> libdbi specs
> Comments?

in the trunk version of rrdtool there is code allowing to use
remote data from rrdcached in rrdgraph ... a more generic approach
might certainly be of interest ...

I agree that in the interesst of simpler commandlines a UDEF might
be useful ...


Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900

More information about the rrd-developers mailing list