154 lines
4.5 KiB
ReStructuredText
154 lines
4.5 KiB
ReStructuredText
..
|
|
Copyright 2017, Canonical UK
|
|
|
|
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. 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
|
|
|
|
===============================
|
|
Panko Charm
|
|
===============================
|
|
|
|
Ceilometer used to provide an event API to query and store events from
|
|
different OpenStack services. However, this functionality was deprecated
|
|
in Newton and removed in Ocata. Event storage and querying functionality
|
|
is now provided by a service called Panko. Use-cases of historical
|
|
event data storage include audit logging, debugging and billing.
|
|
|
|
Problem Description
|
|
===================
|
|
|
|
Panko is an event storage service that provides an ability to store and
|
|
query event data generated by Ceilometer with potentially other sources.
|
|
Panko includes support for several storage options (sqlalchemy-compatible
|
|
databases, mongodb, elasticsearch) which differ in their level of maturity.
|
|
|
|
At its core Panko is a regular API service with a database backend.
|
|
|
|
Events are published to Panko via Direct publisher in Ocata while in
|
|
Pike Direct publisher was deprecated and will be removed. For that
|
|
reason Panko publisher was added.
|
|
|
|
* Direct publisher `deprecation <https://docs.openstack.org/releasenotes/panko/unreleased.html#deprecation-notes>`__ (ceilometer/publisher/direct.py) was done under this `commit <https://git.io/vd98b>`__.
|
|
|
|
Another mechanism that was deprecated in Pike is dispatchers which were
|
|
used to send data specified by publishers. So were
|
|
{event,meter}_dispatchers options in ceilometer.conf
|
|
|
|
* Panko dispatcher `deprecation <https://docs.openstack.org/releasenotes/panko/unreleased.html#deprecation-notes>`__.
|
|
* `Notes <https://docs.openstack.org/releasenotes/ceilometer/ocata.html#deprecation-notes>`__ on unneeded duplication of publishers and dispatchers.
|
|
* A `discussion <https://lists.openstack.org/pipermail/openstack-dev/2017-April/115576.html>`__ on dispatchers vs publishers.
|
|
|
|
This is instead done directly by publishers in Pike and Panko publisher is
|
|
present in Panko's repository itself, not ceilometer repository.
|
|
|
|
Panko first appeared in Ocata Ubuntu Cloud Archive.
|
|
|
|
Ceilometer is able to query Panko's presence via Keystone catalog but
|
|
does not define a publisher for sending event data to Panko by default.
|
|
|
|
Proposed Change
|
|
===============
|
|
|
|
The new charm should include the following features:
|
|
|
|
- Support SQLAlchemy-compatible databases as storage backends;
|
|
- HA support;
|
|
- TLS support;
|
|
- integration with Ceilometer charm.
|
|
|
|
Alternatives
|
|
------------
|
|
|
|
None for historical event data within OpenStack.
|
|
|
|
Implementation
|
|
==============
|
|
|
|
Assignee(s)
|
|
-----------
|
|
|
|
Primary assignee:
|
|
dmitriis
|
|
|
|
Gerrit Topic
|
|
------------
|
|
|
|
Use Gerrit topic "panko-charm" for all patches related to this spec.
|
|
|
|
.. code-block:: bash
|
|
|
|
git-review -t panko-charm
|
|
|
|
Work Items
|
|
----------
|
|
|
|
Reactive Interfaces
|
|
+++++++++++++++++++
|
|
|
|
- interface: panko
|
|
|
|
Provide Panko charm
|
|
+++++++++++++++++++++
|
|
|
|
- Create a charm layer based on openstack-api layer;
|
|
- Add support for upgrading Panko (schema changes);
|
|
- Add support for deploying Panko in a highly available configuration;
|
|
- Add support for the Panko to display workload status;
|
|
- Add support TLS endpoints;
|
|
- Charm should have unit and functional tests.
|
|
|
|
Update Ceilometer Charm
|
|
+++++++++++++++++++++++++++++++++
|
|
|
|
- Support for deployment with Panko (by specifying publishers correctly
|
|
in event_pipeline.yaml for both Ocata and Pike+).
|
|
|
|
Mojo specification deploying and testing Panko
|
|
++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
- Update HA Mojo spec for deploying Panko in an HA configuration.
|
|
|
|
Update telemetry bundle
|
|
+++++++++++++++++++++++
|
|
|
|
- Update telemetry bundle to deploy Panko
|
|
|
|
Repositories
|
|
------------
|
|
|
|
A new git repository will be required for the Panko charm:
|
|
|
|
.. code-block:: bash
|
|
|
|
https://git.openstack.org/openstack/charm-panko
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
The Panko charm should contain a README with instructions on deploying the
|
|
charm. A blog post is optional but would be a useful addition.
|
|
|
|
Security
|
|
--------
|
|
|
|
No additional security concerns.
|
|
|
|
Testing
|
|
-------
|
|
|
|
Code changes will be covered by unit tests; functional testing will be done
|
|
using a combination of Amulet, Bundle tester and Mojo specification.
|
|
|
|
Dependencies
|
|
============
|
|
|
|
- No dependencies outside of this specification.
|