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 article describes differences in those approaches.

Simple Usage

To receive metrics add a following section to the config file (clouds.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

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.