summaryrefslogtreecommitdiff
path: root/doc/specs
diff options
context:
space:
mode:
authorBoris Pavlovic <boris@pavlovic.me>2015-11-09 01:05:51 -0800
committerBoris Pavlovic <boris@pavlovic.me>2015-11-09 01:14:27 -0800
commit56da40a7fcb245085348834068a6ae71f4e513b6 (patch)
treeb56eedc01a4277fc2315873501bc37ecc4f7ea7f /doc/specs
parent03e53a46207eeb41df954b55ef874b6d82a7a49d (diff)
downloadosprofiler-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.rst91
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