diff options
author | Boris Pavlovic <boris@pavlovic.me> | 2015-11-09 01:05:51 -0800 |
---|---|---|
committer | Boris Pavlovic <boris@pavlovic.me> | 2015-11-09 01:14:27 -0800 |
commit | 56da40a7fcb245085348834068a6ae71f4e513b6 (patch) | |
tree | b56eedc01a4277fc2315873501bc37ecc4f7ea7f /doc/specs | |
parent | 03e53a46207eeb41df954b55ef874b6d82a7a49d (diff) | |
download | osprofiler-56da40a7fcb245085348834068a6ae71f4e513b6.tar.gz |
Spec: Multi Backend support
Change-Id: Ib17a511f029701581df98be21099309ffd659779
Diffstat (limited to 'doc/specs')
-rw-r--r-- | doc/specs/in-progress/multi_backend_support.rst | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/doc/specs/in-progress/multi_backend_support.rst b/doc/specs/in-progress/multi_backend_support.rst new file mode 100644 index 0000000..584e000 --- /dev/null +++ b/doc/specs/in-progress/multi_backend_support.rst @@ -0,0 +1,91 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +.. + This template should be in ReSTructured text. The filename in the git + repository should match the launchpad URL, for example a URL of + https://blueprints.launchpad.net/heat/+spec/awesome-thing should be named + awesome-thing.rst . Please do not delete any of the sections in this + template. If you have nothing to say for a whole section, just write: None + For help with syntax, see http://sphinx-doc.org/rest.html + To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html + +====================== + Multi backend support +====================== + +Make OSProfiler more flexible and production ready. + +Problem description +=================== + +Currently OSprofiler works only with one backend Celiometer which actually +doesn't work well and adds huge overhead. More over often Ceilometer is not +installed/used at all. To resolve this we should add support for different +backends like: MongoDB, InfluenceDB, ElasticSearch, ... + + +Proposed change +=============== + +And new osprofiler.drivers mechanism, each driver will do 2 things: +send notifications and parse all notification in unififed tree strcture +that can be processed by the rest lib. + +Deprecate osprofiler.notifiers and osprofiler.parsers + +Change all projects that are using OSprofiler to new model + +Alternatives +------------ + +I don't know any good alternative. + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + <launchpad-id or None> + + +Work Items +---------- + +To add support of multi backends we should change few places in osprofiler +that are hardcoded on Ceilometer: + +- CLI command ``show``: + + I believe we should add extra argument "connection_string" which will allow + people to specify where is backend. So it will look like: + <backend_type>://[[user[:password]]@[address][:port][/database]] + +- Merge osprofiler.notifiers and osprofiler.parsers to osprofiler.drivers + + Notifiers and Parsers are tightly related. Like for MongoDB notifier you + should use MongoDB parsers, so there is better solution to keep both + in the same place. + + This change should be done with keeping backward compatiblity, in other words + we should create separated direcotory osprofier.drivers and put first + Ceilometer and then start working on other backends. + + These drivers will be chosen based on connection string + +- Deprecate osprofiler.notifiers and osprofier.parsers + +- Cut new release 0.4.2 + +- Switch all projects to new model with connection string + + +Dependencies +============ + +- Cinder, Glance, Trove should be changed |