Add storage backend documentation

This adds some documentation about storage backend configuration and
available backends.

Change-Id: I7e526b21c4ca409c554e89ed50fc179a61c707ba
This commit is contained in:
Luka Peschke 2019-03-25 16:32:38 +01:00
parent 7c7ff81cd9
commit 8691aa6352
4 changed files with 82 additions and 4 deletions

View File

@ -110,11 +110,12 @@ Storage
**Loaded with stevedore**
The storage module is responsible of storing the data in a backend. It
implements an API on top of the storage to be able to query the data without
the need of knowing the type of backend used.
The storage module is responsible for storing and retrieving data in a
backend. It implements two interfaces (v1 and v2), each providing one or more
drivers. For more information about the storage backend, see the
`configuration section`_.
You can use the API to create reports on the fly for example.
.. _configuration section: configuration/storage.html
Writer
======

View File

@ -7,4 +7,5 @@ Configuration Guide
configuration
collector
storage
policy

View File

@ -0,0 +1,75 @@
===============================
Storage backend configuration
===============================
Common options
==============
.. note::
Two storage backend interfaces are available: v1 and v2. Each supports one
or several drivers. The v2 storage interface is required to use
CloudKitty's v2 API. It is retrocompatible with the v1 API. However, it is
not possible to use the v2 API with the v1 storage interface.
The main storage backend options are specified in the ``[storage]`` section of
the configuration file. The following options are available:
* ``version``: Defaults to 2. Version of the storage interface to use
(must be 1 or 2).
* ``backend``: Defaults to ``influxdb``. Storage driver to use.
Supported v1 drivers are:
- ``sqlalchemy``
Supported v2 drivers are:
- ``influxdb``
Driver-specific options
=======================
SQLAlchemy (v1)
---------------
This backend has no specific options. It uses the ``connection`` option of the
``database`` section. Example of value for this option:
.. code-block:: ini
[database]
connection = mysql+pymysql://cloudkitty_user:cloudkitty_password@mariadb_host/cloudkitty_database
InfluxDB (v2)
-------------
Section: ``storage_influx``.
* ``username``: InfluxDB username.
* ``password``: InfluxDB password.
* ``database``: InfluxDB database.
* ``retention_policy``: Retention policy to use (defaults to ``autogen``)
* ``host``: Defaults to ``localhost``. InfluxDB host.
* ``port``: Default to 8086. InfluxDB port.
* ``use_ssl``: Defaults to false. Set to true to use SSL for InfluxDB
connections.
* ``insecure``: Defaults to false. Set to true to authorize insecure HTTPS
connections to InfluxDB.
* ``cafile``: Path of the CA certificate to trust for HTTPS connections.
.. note:: CloudKitty will push one point per collected metric per collect
period to InfluxDB. Depending on the size of your infra and the
capacities of your InfluxDB host / cluster, you might want to do
regular exports of your data and create a custom retention policy on
cloudkitty's database.

View File

@ -4,6 +4,7 @@ Administration Guide
.. toctree::
:glob:
:maxdepth: 2
architecture
devstack