From 59c5adc8ad057c1557c1420f8582c4d731e07179 Mon Sep 17 00:00:00 2001 From: David TARDIVEL Date: Mon, 23 Jan 2017 16:17:51 +0100 Subject: [PATCH] Documentation update Here is a new architecture diagram with some updates on the glossary and on descriptions of architecture elements. I also fix some warning logs. Closes-Bug: #1657405 Change-Id: I442082d702fc8667e9397c090da51ca1ead5d86e --- doc/source/architecture.rst | 27 +- doc/source/dev/plugin/strategy-plugin.rst | 77 +- doc/source/glossary.rst | 6 - .../plantuml/action_plan_state_machine.png | Bin 0 -> 59207 bytes .../plantuml/action_plan_state_machine.txt | 2 + .../plantuml/watcher_db_schema_diagram.png | Bin 0 -> 73517 bytes .../plantuml/watcher_db_schema_diagram.txt | 4 +- doc/source/images/architecture.svg | 1661 ++++++++++++++--- watcher/decision_engine/planner/weight.py | 2 +- 9 files changed, 1410 insertions(+), 369 deletions(-) create mode 100644 doc/source/image_src/plantuml/action_plan_state_machine.png create mode 100644 doc/source/image_src/plantuml/watcher_db_schema_diagram.png diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index d438522b1..479599c93 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -21,7 +21,7 @@ Overview Below you will find a diagram, showing the main components of Watcher: .. image:: ./images/architecture.svg - :width: 100% + :width: 110% .. _components_definition: @@ -37,13 +37,12 @@ AMQP Bus The AMQP message bus handles internal asynchronous communications between the different Watcher components. -.. _cluster_history_db_definition: +.. _cluster_datasource_definition: -Cluster History Database ------------------------- +Datasource +---------- -This component stores the data related to the -:ref:`Cluster History `. +This component stores the metrics related to the cluster. It can potentially rely on any appropriate storage system (InfluxDB, OpenTSDB, MongoDB,...) but will probably be more performant when using @@ -51,14 +50,6 @@ MongoDB,...) but will probably be more performant when using which are optimized for handling time series data, which are arrays of numbers indexed by time (a datetime or a datetime range). -.. _cluster_model_db_definition: - -Cluster Model Database ------------------------- - -This component stores the data related to the -:ref:`Cluster Data Model `. - .. _archi_watcher_api_definition: Watcher API @@ -193,8 +184,8 @@ data: :ref:`Managed resources ` (e.g., the data stored in the Nova database). These models gives a strategy the ability to reason on the current state of a given :ref:`cluster `. -- The data stored in the :ref:`Cluster History Database - ` which provides information about the past of +- The data stored in the :ref:`Cluster Datasource + ` which provides information about the past of the :ref:`Cluster `. Here below is a sequence diagram showing how the Decision Engine builds and @@ -452,6 +443,10 @@ state may be one of the following: - **CANCELLED** : the :ref:`Action Plan ` was in **RECOMMENDED**, **PENDING** or **ONGOING** state and was cancelled by the :ref:`Administrator ` +- **SUPERSEDED** : the :ref:`Action Plan ` was in + RECOMMENDED state and was automatically superseded by Watcher, due to an + expiration delay or an update of the + :ref:`Cluster data model ` The following diagram shows the different possible states of an diff --git a/doc/source/dev/plugin/strategy-plugin.rst b/doc/source/dev/plugin/strategy-plugin.rst index 3052954a8..b285dfff0 100644 --- a/doc/source/dev/plugin/strategy-plugin.rst +++ b/doc/source/dev/plugin/strategy-plugin.rst @@ -271,57 +271,44 @@ requires new metrics not covered by Ceilometer, you can add them through a .. _`Ceilometer plugin`: http://docs.openstack.org/developer/ceilometer/plugins.html .. _`Ceilosca`: https://github.com/openstack/monasca-ceilometer/blob/master/ceilosca/ceilometer/storage/impl_monasca.py +Read usage metrics using the Watcher Datasource Helper +------------------------------------------------------ -Read usage metrics using the Python binding -------------------------------------------- - -You can find the information about the Ceilometer Python binding on the -OpenStack `ceilometer client python API documentation -`_ - -To facilitate the process, Watcher provides the ``osc`` attribute to every -strategy which includes clients to major OpenStack services, including -Ceilometer. So to access it within your strategy, you can do the following: +The following code snippet shows how to invoke a Datasource Helper class: .. code-block:: py - # Within your strategy "execute()" - cclient = self.osc.ceilometer - # TODO: Do something here + from watcher.datasource import ceilometer as ceil + from watcher.datasource import monasca as mon + + @property + def ceilometer(self): + if self._ceilometer is None: + self._ceilometer = ceil.CeilometerHelper(osc=self.osc) + return self._ceilometer + + @property + def monasca(self): + if self._monasca is None: + self._monasca = mon.MonascaHelper(osc=self.osc) + return self._monasca Using that you can now query the values for that specific metric: .. code-block:: py - query = None # e.g. [{'field': 'foo', 'op': 'le', 'value': 34},] - value_cpu = cclient.samples.list( - meter_name='cpu_util', - limit=10, q=query) - - -Read usage metrics using the Watcher Cluster History Helper ------------------------------------------------------------ - -Here below is the abstract ``BaseClusterHistory`` class of the Helper. - -.. autoclass:: watcher.decision_engine.cluster.history.base.BaseClusterHistory - :members: - :noindex: - -The following code snippet shows how to create a Cluster History class: - -.. code-block:: py - - from watcher.decision_engine.cluster.history import ceilometer as ceil - - query_history = ceil.CeilometerClusterHistory() - -Using that you can now query the values for that specific metric: - -.. code-block:: py - - query_history.statistic_aggregation(resource_id=compute_node.uuid, - meter_name='compute.node.cpu.percent', - period="7200", - aggregate='avg' - ) + if self.config.datasource == "ceilometer": + resource_id = "%s_%s" % (node.uuid, node.hostname) + return self.ceilometer.statistic_aggregation( + resource_id=resource_id, + meter_name='compute.node.cpu.percent', + period="7200", + aggregate='avg', + ) + elif self.config.datasource == "monasca": + statistics = self.monasca.statistic_aggregation( + meter_name='compute.node.cpu.percent', + dimensions=dict(hostname=node.uuid), + period=7200, + aggregate='avg' + ) diff --git a/doc/source/glossary.rst b/doc/source/glossary.rst index 645073b3f..7ab060202 100644 --- a/doc/source/glossary.rst +++ b/doc/source/glossary.rst @@ -101,12 +101,6 @@ Cluster Data Model (CDM) .. watcher-term:: watcher.decision_engine.model.collector.base -.. _cluster_history_definition: - -Cluster History -=============== - -.. watcher-term:: watcher.decision_engine.cluster.history.base .. _controller_node_definition: diff --git a/doc/source/image_src/plantuml/action_plan_state_machine.png b/doc/source/image_src/plantuml/action_plan_state_machine.png new file mode 100644 index 0000000000000000000000000000000000000000..69c2ad78b9f1fff253497668b79e46654a69aa57 GIT binary patch literal 59207 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 DELETED : Administrator removes\nAction Plan SUCCEEDED --> DELETED : Administrator removes\nAction Plan ONGOING --> CANCELLED : Administrator cancels\nAction Plan RECOMMENDED --> CANCELLED : Administrator cancels\nAction Plan +RECOMMENDED --> SUPERSEDED : The Watcher Decision Engine supersedes\nAction Plan PENDING --> CANCELLED : Administrator cancels\nAction Plan CANCELLED --> DELETED +SUPERSEDED --> DELETED DELETED --> [*] @enduml diff --git a/doc/source/image_src/plantuml/watcher_db_schema_diagram.png b/doc/source/image_src/plantuml/watcher_db_schema_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..513098f98f4bdd577eb839d4ee22e548dcf9a295 GIT binary patch literal 73517 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 l;-w>sQ}YvfOM`f{9WSf<7-Ef3Ij?c<c$< literal 0 HcmV?d00001 diff --git a/doc/source/image_src/plantuml/watcher_db_schema_diagram.txt b/doc/source/image_src/plantuml/watcher_db_schema_diagram.txt index b827a30d4..8b56c4a9c 100644 --- a/doc/source/image_src/plantuml/watcher_db_schema_diagram.txt +++ b/doc/source/image_src/plantuml/watcher_db_schema_diagram.txt @@ -60,6 +60,7 @@ table(audits) { interval : Integer, nullable parameters : JSONEncodedDict, nullable scope : JSONEncodedList, nullable + auto_trigger: Boolean created_at : DateTime updated_at : DateTime @@ -73,7 +74,6 @@ table(action_plans) { foreign_key("audit_id : Integer, nullable") foreign_key("strategy_id : Integer") uuid : String[36] - first_action_id : Integer state : String[20], nullable global_efficacy : JSONEncodedDict, nullable @@ -91,7 +91,7 @@ table(actions) { action_type : String[255] input_parameters : JSONEncodedDict, nullable state : String[20], nullable - next : String[36], nullable + parents : JSONEncodedList, nullable created_at : DateTime updated_at : DateTime diff --git a/doc/source/images/architecture.svg b/doc/source/images/architecture.svg index abd3872bf..a70d0a809 100644 --- a/doc/source/images/architecture.svg +++ b/doc/source/images/architecture.svg @@ -1,302 +1,1365 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AMQP - bus - - - - - - - - - - - - - - - - - - - Watcher - Decision Engine - - - - - - - - - - - - - - - - - - - - - - - - - - Watcher - Actions Applier - - - - - - - - - - - - - - - - - - - Watcher - API - - - - - - - - - - - - - - - - - - - Watcher - CLI - - - - - - - Horizon - - - - - - - - - - - - - - - - - - - Watcher - plugin - - - - - - - Nova - - - - - - - MariaDB Database - - - - - - - - - - - - - - - - - - - Ceilometer API - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Strategy - - - - - - - - - - - - - - - - - - - - - - - - Planner - - - - - - - - - - - - - - - - - - - - - - - Watcher DB - - - - - - - - Cluster Model DB - - - - - - - - Cluster History DB - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + watcher decision engine + + + + + + watcherdb + + + + + + message bus + + watcher applier + + + nova + + + + glance + + + ceilometer + + + monasca + + + + + + datasourcedrivers + + + + + + + modeldrivers + + + + + + actiondrivers + + + + + + plannerdrivers + + + + + + strategydrivers + + + + goaldrivers + + + + + + + + + + + + + watcher api + + watcherdashboard + + watcher cli + + + + + + + + + + + scoring enginedrivers + + + + + + + + + API call + + + RPC cast + + + + notification + + + + + + + extensions + + + + + + + + + + + + + + + workflowdrivers + + + + + + + + + diff --git a/watcher/decision_engine/planner/weight.py b/watcher/decision_engine/planner/weight.py index f4b579bd8..9759a6f72 100644 --- a/watcher/decision_engine/planner/weight.py +++ b/watcher/decision_engine/planner/weight.py @@ -41,7 +41,7 @@ class WeightPlanner(base.BasePlanner): *Limitations* - This planner requires to have action_weights and parallelization configs - tuned well. + tuned well. """ def __init__(self, config):