~andrus-skytap/graphite/rla_rrd_enhancements

Viewing all changes in revision 347.

  • Committer: ross andrus
  • Date: 2011-02-23 00:05:00 UTC
  • Revision ID: andrus@skytap.com-20110223000500-8vzpwm9v1uxb6v9w
Changes made for RRD support:

* Move storage.py and remote_storage.py into new "storage" package
* Factor storage.py in to several chunks to support a path/handler registration model for different data-sources. Pull whisper support into whisper_storage plugin. NOTE: I haven't tested this much recently, but it did work at one point along the way.
* Change conventions around metric id to use forward-slash (/) as path delimiter instead of dot (.) - this is required because collectd and ganglia produce directory hierarchies with FQDN node names, and treating the dots as path separators was driving me crazy. This requires adding "/" to the list of legal chars for the gpath cli element. Also, re-map the query suffix from ".*" to plain "*", which makes it somewhat easier to use fnmatch simply. 
* Add rrds module to handle RRDs, and add "collectd_storage" and "skytap_storage" plugins to variations of RRD usage.
* Plumb CF from storage plugins through render/datalibs so that we don't apply "average" consolidation function to data from MAX or MIN CFs.
* Add "maxima" and "minima" consolidation functions so we can get honest maxima across series.

Things NOT done:

* Cleanup all the crufty commented-out print lines around. I'm still working on this and I find this a convenient way to see what's going on - I'm sure there's a better way to develop/debug this code but I don't know what it is.
* Test all the other paths in the code - there's a lot of functionality here, and much of it I don't understand at all, much less could I spot errors in e.g. the "integral" combiner does.
* Add unit tests for the new consolidation functions. I started to do this but gave up partway through... might finish it later.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: