oetiker / rrdtool-2.x

RRDtool 2.x - The Time Series Database
86 stars 8 forks source link

Separate data-storage / -retrieval and graphing #12

Open tokkee opened 11 years ago

tokkee commented 11 years ago

Hi,

this has been requested many times and also it's already mentioned in a few other issues.

The idea is to have (at least) two different libraries. One taking care of all the data retrieval, data update, etc. functions (let's call that librrd-data for now) and one taking care of the graphing (which would be build on top of the other library) (let's call that librrd-graph for now). librrd-data would itself be based on the low-level I/O layer which, for the most flexibility, could also be a separate library.

See my other ticket about moving RPN stuff from "graph" to "fetch" for some more ideas about the implementation.

Cheers, Sebastian

jfesler commented 11 years ago

+1; there are use cases for storing data (with some other system responsible for graphing data). Where one does not need to graph, it would be nice to be able to still use RRDtool, but without all of the graphing dependencies (and their dependencies, which is where it gets particularly nasty).

mostafah commented 11 years ago

This makes a lot of sense for a modern RRDTool due to the availability of a wide range of data visualization tools and libraries that work very well with a CSV or JSON set of data. Lots of companies are already using these tools for their dashboards, and having RRDTool as a data source to add more graphs should be a common use case IMHO.

opensam commented 10 years ago

Hello all,

I'm a beginner with RRDtool. I like it and I'd like to thank Tobias Oetiker and all contributors so far for this nice software.

I've seen this 2.x redesign project with request for comments. So here is my feedback.

I'd like to concur to the suggestion of separation of data gathering and storing and data processing and graphing. Simply put my use case is a monitored no-X server and an offsite offline ploting console. Of course in reality it is a cluster of servers and the graphing is not required on them (hence no graphic libraries X, Wayland...) but only on a remote graphing console (may be the web JavaScript seen in the README) after rsync of the specific RRD file (the one I want to inspect because this particuliar server remotely seems having that particuliar issue).

From upstream collectd (network plugin, aggregation plugin...) to downstream ganglia I see a rich RRD ecosystem : RRD as a data model, as a storage format, as a network protocol, as a threshold notificator, as a visual dashboard, as a data processor, as a powerfull grapher, as a cake baker (well, not yet). I hope v2 will have one minimal tool for each practical function.

Have a nice project.