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 (ceilometer/publisher/direct.py) was done under this commit.

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.

  • Notes on unneeded duplication of publishers and dispatchers.

  • A discussion 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.

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:

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.