On 28/08/13 1:03 PM, "Adam Armstrong" adama@memetic.org wrote:
On 2013-08-28 03:40, Peter Childs wrote:
Gday folks.
I'm fiddling around with remote RRD storage via rrdcached. Most of the rrdtool stuff is wrapped in includes/rrdtool.inc.php which is wonderful from this perspective.
Not within this include is the usage of is_file() to determine the existence of an rrd file.
In discovery the pattern is something like If( ! is_file( some.rrd ) ) { rrdtool_create ( Š )}
In graphing the pattern is something like If ( is_file( some.rrd ) { graph some stuffŠ }
Would there be any support for moving this usage into a rrdtool_file_exists( ) thin wrapper for is_file ?
This would make it much easier to extended includes/rrdtool.inc.php to support storage of RRD's on remote storage (and potentially distribute over multiple remote storage devices ..)
Thoughts?
Why ever would you want to do such a thing?
Scale basically.
If the metrics can be stored on a scalable cluster of 'metric boxes' then the polling load can be scaled over multiple poller nodes, the UI load can be scaled across a set of UI-nodes, etc... (single shared sql)
I have some proof-of-concept code that talks 'rrdcached' protocol for CREATE/UPDATE/FETCH and persists the data into OpenTSDB which is ontop of a hbase cluster, so can scale pretty much horizontally (ie more nodes=more metrics).
Having the boxes test for the existence of a file on a local file system sort of breaks this. Could hack around it by 'touching' the file on all the UI nodes when a CREATE is done, but its not very clean.
Cheers, Peter