发射软件指标

从 Newton (6.1.0) 版本开始,ironic 服务支持将内部性能数据发射到 statsd。这允许操作员绘制图形并了解其系统中的性能瓶颈。

本指南假定您已设置 statsd 服务器。有关使用和配置 statsd 的信息,请参阅 statsd README 和文档。

这些性能测量,在此称为“指标”,可以从 Bare Metal 服务发射,包括 ironic-api、ironic-conductor 和 ironic-python-agent。默认情况下,任何服务都不会发射指标。

重要的是要强调,statsd 并非是唯一支持指标收集和传输的工具。这将在我们文档的后面部分介绍。

配置 Bare Metal 服务以启用 Statsd 指标

启用 ironic-api 和 ironic-conductor 中的指标

可以通过将以下内容添加到 ironic 配置文件(通常位于 /etc/ironic/ironic.conf)来配置 ironic-api 和 ironic-conductor 服务以将指标发射到 statsd

[metrics]
backend = statsd

如果 statsd 守护程序已安装并配置在运行 ironic 服务的每个主机上,并监听默认 UDP 端口 (8125),则无需进一步配置。如果您正在使用远程 statsd 服务器,则还必须在 ironic 配置文件中提供连接信息

[metrics_statsd]
# Point this at your environments' statsd host
statsd_host = 192.0.2.1
statsd_port = 8125

启用 ironic-python-agent 中的指标

ironic-python-agent 进程从向 ironic-api 服务的初始查找请求的响应中接收其配置。这意味着要配置 ironic-python-agent 以发射指标,您必须在所有 ironic-conductor 主机上的 ironic 配置文件中启用代理指标后端

[metrics]
agent_backend = statsd

为了可靠地从 ironic-python-agent 发射指标,您必须提供一个 statsd 服务器,该服务器可以从配置的置备和清理网络访问。代理 statsd 连接信息也在 ironic 配置文件中配置

[metrics_statsd]
# Point this at a statsd host reachable from the provisioning and cleaning nets
agent_statsd_host = 198.51.100.2
agent_statsd_port = 8125

注意

目前不支持使用不同的指标后端与代理程序。

传输到消息总线通知器

无论您使用的是 Ceilometer、ironic-prometheus-exporter,还是您编写的用于消费消息总线通知的脚本,都可以通过利用 metrics.backend 配置选项并将其设置为 collector,从计时器方法 *和* 额外的计量计数器发送指标数据到消息总线通知器。在这种情况下,信息会本地缓存,并定期与通用的传感器数据更新一起发送到消息通知器,该通知器可以从消息总线或通过通知器插件(如 ironic-prometheus-exporter 所做的那样)消费。

注意

仅计时器数据传输适用于 Conductor 或 single-process Ironic 服务模型。目前,单独的 Web 服务器进程没有触发调用以检索和传输数据的能力。

发射的指标类型

Bare Metal 服务发射每个 API 方法以及大多数驱动程序方法的计时指标。这些指标测量给定方法执行所需的时间。

启用指标的部署者应期望从 Bare Metal 服务发射 100 到 500 个不同的命名数据点。如果将 metrics.preserve_host 选项设置为 true 或在 Bare Metal 部署中使用多个驱动程序,则此数量将增加。可以使用此估计值来确定部署者是否需要扩展其指标后端以处理额外的负载,然后再启用指标。要查看哪些指标的名称已更改或在版本之间已被删除,请参阅 ironic 版本说明

与 Conductor 的活动相关的有限位置也会生成额外的 Conductor 指标形式的计数。

注意

使用默认 statsd 配置,由于 statsd 处理计时指标的方式,每个计时指标可能会创建额外的指标。有关更多信息,请参阅 statds 文档中的 指标类型

ironic-python-agent ramdisk 发射每个 API 方法的计时指标。

使用自定义 HardwareManagers 的部署者可以为其硬件发射自定义指标。有关自定义 HardwareManagers 以及从它们发射指标的信息,请参阅 ironic-python-agent 文档

添加新指标

如果您是开发人员,并且想向 ironic 添加其他指标,请参阅 ironic-lib 开发人员文档,了解有关如何使用指标库的详细信息。每次更改或删除指标时,还应创建一个版本说明,以提醒部署者有关此更改。