为监控栈配置指标
OpenTelemetry Collector 可以与平台监控栈集成,通过 Prometheus 暴露自身的运行指标。作为集群管理员,你可以设置此集成以实现以下目标:
- 自动生成 Prometheus
ServiceMonitor资源,用于抓取 Collector 的内部 pipeline 指标以及任何已配置的 Prometheus exporter 端点。 - 使用 Collector 中的 Prometheus receiver,从集群内置监控基础设施拉取指标。
将指标发送到监控栈
OpenTelemetryCollector 自定义资源(CR)支持自动创建 Prometheus ServiceMonitor 或 PodMonitor 资源。这些资源会指示监控栈从 Collector 的内部 telemetry 端点以及 pipeline 中定义的任何 Prometheus exporter 端点收集指标。
启用自动创建 ServiceMonitor
当你在 Collector CR 中启用 enableMetrics 选项时,Alauda 构建的 OpenTelemetry v2 Operator 会自动提供所需的 ServiceMonitor 或 PodMonitor 资源,以进行指标收集。
以下示例展示了一个配置了 Prometheus exporter 且已启用自动指标收集的 Collector CR:
- 在 ACP prometheus 中需要
prometheus=kube-prometheus。 - 使 Operator 能够自动创建指向 Collector 指标端点的
ServiceMonitor或PodMonitor资源,包括内部 telemetry 和 Prometheus exporter 端口。
NOTE
启用 enableMetrics 会创建两个独立的 ServiceMonitor 资源:
- 一个
ServiceMonitor目标是<instance_name>-collector-monitoringService,用于收集 Collector 自身的内部运行指标。 - 另一个
ServiceMonitor目标是<instance_name>-collectorService,用于收集 pipeline 中配置的任何 Prometheus exporter 发布的指标。
使用自定义 PodMonitor
对于需要更精细控制指标收集的场景——例如过滤 Prometheus 抓取过程中引入的重复标签——你可以手动创建 PodMonitor 资源,而不是依赖自动的 ServiceMonitor provisioning。
以下示例展示了一个 PodMonitor,它以 Collector pods 为目标,并应用 relabeling 规则以删除冗余标签:
- 在 ACP prometheus 中需要
prometheus=kube-prometheus。 - 必须与 OpenTelemetry Collector CR 的名称匹配,遵循
<cr_name>-collector模式。 - 暴露 Collector 内部运行指标的端口。此端口始终命名为
metrics。 - 暴露 Collector pipeline 中配置的 Prometheus exporter 指标的端口。