Reference telemetry integration spec as implemented
As telemetry is now usable for metrics collection in Watcher, we should set the specifications as implemented for Mitaka-1 Change-Id: Ifd4a0ff372898e258f2dce03cc833cd4f5c456b0 Implements: blueprint telemetry-integration
This commit is contained in:
parent
386c3a2a88
commit
e4845da6d8
222
specs/mitaka/implemented/telemetry-integration.rst
Normal file
222
specs/mitaka/implemented/telemetry-integration.rst
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
=======================================================================
|
||||||
|
Watcher Decision Engine should query metrics from the Ceilometer V2 API
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/watcher/+spec/telemetry-integration
|
||||||
|
|
||||||
|
Watcher Decision Engine must query metrics from the Ceilometer V2 API to allow
|
||||||
|
an easiest integration with OpenStack services (especially DevStack).
|
||||||
|
|
||||||
|
Telemetry used to be the initial name of the Ceilometer project. Now, the
|
||||||
|
following projects are managed by the Telemetry team:
|
||||||
|
|
||||||
|
- **Aodh** - an alarming service
|
||||||
|
- **Ceilometer** - a data collection service
|
||||||
|
- **Gnocchi** - a time-series database and resource indexing service
|
||||||
|
|
||||||
|
Therefore, behind the word "*Telemetry*" we encompass the three projects.
|
||||||
|
|
||||||
|
Please, refer to `the official page of the Project <https://wiki.openstack.org/wiki/Telemetry>`_
|
||||||
|
if you want to know more about it.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
Today, the watcher Decision Engine is not relying on Ceilometer V2 API to query
|
||||||
|
the metrics necessary for the optimization algorithm.
|
||||||
|
|
||||||
|
Use Cases
|
||||||
|
----------
|
||||||
|
|
||||||
|
As a developer.
|
||||||
|
I want to be able, in my optimization strategies, to request metrics collected
|
||||||
|
by Telemetry services.
|
||||||
|
So that I can develop and run audits on an official DevStack release
|
||||||
|
(Kilo and above) just by enabling the Telemetry services.
|
||||||
|
|
||||||
|
As an operator with an admin role.
|
||||||
|
I want to be able to launch audits on data-centers where compute and storage
|
||||||
|
resources are managed by any Openstack controller deployed with version Kilo
|
||||||
|
and above.
|
||||||
|
So that I can optimize the resources of the data-center which I am responsible
|
||||||
|
of without the need to install a metering chain which is not in an official
|
||||||
|
release of the core modules.
|
||||||
|
|
||||||
|
Project Priority
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Not relevant because Watcher is not in the big tent so far.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Estimated changes are going to be in the following places:
|
||||||
|
|
||||||
|
* Modify the query of metrics on the available strategies (for example,
|
||||||
|
**basic_consolidation**) to query Ceilometer API V2
|
||||||
|
* May need to develop a helper to simplify some complex queries to the
|
||||||
|
Ceilometer V2 API
|
||||||
|
* Be compliant with the naming of Telemetry measurements
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
No alternative because Watcher definitely needs to rely on Ceilometer API V2
|
||||||
|
to make sure it is compatible with any deployed OpenStack cluster.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
There is no impact on the Watcher MariaDB database (which stores Watcher
|
||||||
|
objects such as Audit Templates, Audits, Action Plans, ...).
|
||||||
|
|
||||||
|
But there is an impact on how Watcher will request the metrics in the Decision
|
||||||
|
Engine, especially regarding the measurements names because Watcher used to
|
||||||
|
have its own measurements naming system.
|
||||||
|
|
||||||
|
See `the full list of available measurements for Telemetry <http://docs.openstack.org/admin-guide-cloud/telemetry-measurements.html>`_
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
There used to be some performance issues regarding the query of metrics from
|
||||||
|
the Ceilometer database. This is one of the reason why it was rarely used in
|
||||||
|
production environment.
|
||||||
|
These issues may now be solved thanks to an abstraction layer which enables
|
||||||
|
anybody to change the underlying metrics storage backend easily.
|
||||||
|
|
||||||
|
The metrics will now be queried by an optimization strategy using the python
|
||||||
|
Ceilometer client package corresponding to the Ceilometer V2 API.
|
||||||
|
This Ceilometer API will relay the query to an abstract Ceilometer Storage
|
||||||
|
Engine Base Interface (see class defined in **ceilometer.storage.base.py**).
|
||||||
|
|
||||||
|
The Storage Engine may be configured with any available driver for requesting
|
||||||
|
a time-series database implementation (InfluxDB, OpenTSDB, ...), providing much
|
||||||
|
better performances than a SQL database.
|
||||||
|
For example, see class **ceilosca.ceilometer.storage.impl_monasca.py** in the
|
||||||
|
**monasca-ceilometer** project.
|
||||||
|
|
||||||
|
The frequency of the queries will depend on the strategy used to achieve the
|
||||||
|
goal of the audit.
|
||||||
|
|
||||||
|
The performances of the query will not only depend on the underlying database
|
||||||
|
implementation but also on how it has been deployed and configured for indexing
|
||||||
|
the metrics:
|
||||||
|
|
||||||
|
- sharding policy of the TSDB + use of a cluster of nodes to balance the load
|
||||||
|
- tags associated to each metric (host id, instance if, ...),
|
||||||
|
- use of pre-defined requests (named "Continuous Queries" in InfluxDB)
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Telemetry services will have to be installed on the controller nodes and
|
||||||
|
compute nodes of the OpenStack cluster that the admin wants to optimize with
|
||||||
|
Watcher.
|
||||||
|
|
||||||
|
The main configuration file **watcher.conf** will also be impacted, especially
|
||||||
|
the **watcher_metrics_collector** section.
|
||||||
|
|
||||||
|
The V2 of the Ceilometer querying API has been released since the official
|
||||||
|
Kilo release.
|
||||||
|
Therefore, this blueprint should deliver a Watcher version which would be
|
||||||
|
compatible with any deployment using the Kilo release and above.
|
||||||
|
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
There may be some change requests to the Telemetry team when some metrics are
|
||||||
|
not available and strongly needed for optimization strategies (Energy, ...).
|
||||||
|
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
jed56
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
Work items or tasks -- break the feature up into the things that need to be
|
||||||
|
done to implement it. Those parts might end up being done by different people,
|
||||||
|
but we're mostly trying to understand the timeline for implementation.
|
||||||
|
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
* https://wiki.openstack.org/wiki/Ceilometer/blueprints/APIv2
|
||||||
|
|
||||||
|
* https://blueprints.launchpad.net/ceilometer/+spec/api-v2-improvement
|
||||||
|
|
||||||
|
* https://wiki.openstack.org/wiki/Gnocchi
|
||||||
|
|
||||||
|
* http://docs.openstack.org/admin-guide-cloud/telemetry-measurements.html
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
* Unit tests on the Watcher Decision Engine
|
||||||
|
|
||||||
|
* An admin should be able to launch an Audit with Watcher with a
|
||||||
|
SERVERS_CONSOLIDATION goal on an OpenStack cluster which does
|
||||||
|
not have the Watcher metering chain installed but only the
|
||||||
|
Telemetry services.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
The documentation explaining howto add new optimization strategies will have
|
||||||
|
to indicate that metrics must be queried using the Ceilometer V2 client API.
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
* Telemetry official project page: https://wiki.openstack.org/wiki/Telemetry
|
||||||
|
|
||||||
|
* http://eavesdrop.openstack.org/irclogs/%23openstack-meeting-3/%23openstack-meeting-3.2015-11-04.log.html
|
||||||
|
|
||||||
|
* See Gnocchi Features in https://wiki.openstack.org/wiki/ReleaseNotes/Liberty#OpenStack_Telemetry_.28Ceilometer.29
|
||||||
|
|
||||||
|
* https://wiki.openstack.org/wiki/Gnocchi
|
||||||
|
|
||||||
|
* Video presenting Ceilosca=Monasca+Ceilometer : https://www.youtube.com/watch?v=5-IvVwIoCzM
|
||||||
|
|
||||||
|
* Source code project of Monasca+Ceilometer : https://github.com/openstack/monasca-ceilometer
|
||||||
|
|
||||||
|
History
|
||||||
|
=======
|
||||||
|
|
||||||
|
None
|
@ -0,0 +1 @@
|
|||||||
|
approved/telemetry-integration.rst ../implemented/telemetry-integration.rst
|
Loading…
x
Reference in New Issue
Block a user