
- Add support for reporting statistics to InfluxDB - Move stats configuration under 'metrics' section of the yaml file - fix metric name build when url contains project id - report timing in milliseconds - add initial docs for metrics reporting - fix metric names in some weird cases - allow individual proxy to override metrics naming logic Change-Id: I76d2d78dc2f4c8cecbf89b8cc101c2bb1dec1a2b
60 lines
2.1 KiB
ReStructuredText
60 lines
2.1 KiB
ReStructuredText
====================
|
|
Statistics reporting
|
|
====================
|
|
|
|
`openstacksdk` offers possibility to report statistics on individual API
|
|
requests/responses in different formats. `Statsd` allows reporting of the
|
|
response times in the statsd format. `InfluxDB` allows a more event-oriented
|
|
reporting of the same data. `Prometheus` reporting is a bit different and
|
|
requires the application using SDK to take care of the metrics exporting, while
|
|
`openstacksdk` prepares the metrics.
|
|
|
|
Due to the nature of the `statsd` protocol lots of tools consuming the metrics
|
|
do the data aggregation and processing in the configurable time frame (mean
|
|
value calculation for a 1 minute time frame). For the case of periodic tasks
|
|
this might not be very useful. A better fit for using `openstacksdk` as a
|
|
library is an 'event'-recording, where duration of an individual request is
|
|
stored and all required calculations are done if necessary in the monitoring
|
|
system based required timeframe, or the data is simply shown as is with no
|
|
analytics. A `comparison
|
|
<https://prometheus.io/docs/introduction/comparison/>`_ article describes
|
|
differences in those approaches.
|
|
|
|
Simple Usage
|
|
------------
|
|
|
|
To receive metrics add a following section to the config file (clouds.yaml):
|
|
|
|
.. code-block:: yaml
|
|
|
|
metrics:
|
|
statsd:
|
|
host: __statsd_server_host__
|
|
port: __statsd_server_port__
|
|
clouds:
|
|
..
|
|
|
|
|
|
In order to enable InfluxDB reporting following configuration need to be done
|
|
in the `clouds.yaml` file
|
|
|
|
.. code-block:: yaml
|
|
|
|
metrics:
|
|
influxdb:
|
|
host: __influxdb_server_host__
|
|
port: __influxdb_server_port__
|
|
use_udp: __True|False__
|
|
username: __influxdb_auth_username__
|
|
password: __influxdb_auth_password__
|
|
database: __influxdb_db_name__
|
|
measurement: __influxdb_measurement_name__
|
|
timeout: __infludb_requests_timeout__
|
|
clouds:
|
|
..
|
|
|
|
Metrics will be reported only when corresponding client libraries (
|
|
`statsd` for 'statsd' reporting, `influxdb` for influxdb reporting
|
|
correspondingly). When those libraries are not available reporting will be
|
|
silently ignored.
|