第 6 章 为监控堆栈配置指标
作为集群管理员,您可以配置 OpenTelemetry Collector 自定义资源 (CR) 来执行以下任务:
-
创建 Prometheus
ServiceMonitor
CR,以提取 Collector 的管道指标并启用 Prometheus exporter。 - 配置 Prometheus 接收器,以从集群内监控堆栈中提取指标。
6.1. 将指标发送到监控堆栈的配置
您可以配置 OpenTelemetryCollector
自定义资源 (CR),为 sidecar 部署创建 Prometheus ServiceMonitor
CR 或 PodMonitor
CR。ServiceMonitor
可以提取 Collector 的内部指标端点和 Prometheus exporter 指标端点。
带有 Prometheus exporter 的 OpenTelemetry Collector CR 示例
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
spec:
mode: deployment
observability:
metrics:
enableMetrics: true 1
config:
exporters:
prometheus:
endpoint: 0.0.0.0:8889
resource_to_telemetry_conversion:
enabled: true # by default resource attributes are dropped
service:
telemetry:
metrics:
address: ":8888"
pipelines:
metrics:
exporters: [prometheus]
- 1
- 配置红帽构建的 OpenTelemetry Operator,以创建 Prometheus
ServiceMonitor
CR 或PodMonitor
CR,以提取 Collector 的内部指标端点和 Prometheus exporter 指标端点。
注意
将 enableMetrics
设置为 true
会创建以下两个 ServiceMonitor
实例:
-
一个
ServiceMonitor
实例用于<instance_name>-collector-monitoring
服务。此ServiceMonitor
实例提取 Collector 的内部指标。 -
一个
ServiceMonitor
实例用于<instance_name>-collector
服务。此ServiceMonitor
实例提取 Prometheus exporter 实例公开的指标。
另外,手动创建 Prometheus PodMonitor
CR 可以提供精细的控制,例如删除 Prometheus 提取过程中添加的重复标签。
配置监控堆栈以提取 Collector 指标的 PodMonitor
CR 示例
apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: otel-collector spec: selector: matchLabels: app.kubernetes.io/name: <cr_name>-collector 1 podMetricsEndpoints: - port: metrics 2 - port: promexporter 3 relabelings: - action: labeldrop regex: pod - action: labeldrop regex: container - action: labeldrop regex: endpoint metricRelabelings: - action: labeldrop regex: instance - action: labeldrop regex: job