统计报告

openstacksdk 可以报告针对单个 API 请求/响应的统计信息,格式有多种。

请注意,只有在存在相应的客户端库(statsd 用于 ‘statsd’ 报告,influxdb 用于 influxdb 等)时,才会报告指标。如果库不可用,报告将被静默忽略。

statsd

statsd 可以通过配置条目或环境变量进行配置。

全局 metrics 条目定义所有云的默认值。每个云可以指定一个 metrics 部分来覆盖变量;这对于为每个云报告的结果进行分离可能很有用。

metrics:
  statsd:
    host: __statsd_server_host__
    port: __statsd_server_port__
    prefix: __statsd_prefix__ (default 'openstack.api')
clouds:
  a-cloud:
    auth:
     ...
    metrics:
      statsd:
        prefix: 'openstack.api.a-cloud'

如果设置了 STATSD_HOSTSTATSD_PORT 环境变量,则将它们视为默认值(并在未指定其他配置的情况下启用 statsd 报告)。

InfluxDB

InfluxDB 通过 metrics 字段中的配置得到支持。与 statsd 类似,每个云可以提供自己的 metrics 部分来覆盖任何全局默认值。

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:
  ..

InfluxDB 报告允许根据所选云设置额外的标签到指标中。

clouds:
  my_cloud:
    profile: some_profile
    ...
    additional_metric_tags:
      environment: production

prometheus

prometheus 支持不从配置中读取,也不运行 http 服务,因为 OpenstackSDK 是一个库。预期使用 OpenstackSDK 并希望收集请求统计信息的应用程序会将 prometheus_client.CollectorRegistry 传递给 collector_registry