统计报告¶
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_HOST 或 STATSD_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。