第 7 章 为监控堆栈配置指标
作为集群管理员,您可以配置 OpenTelemetry Collector 自定义资源 (CR) 来执行以下任务:
-
创建 Prometheus
ServiceMonitorCR,以提取 Collector 的管道指标并启用 Prometheus exporter。 - 配置 Prometheus 接收器,以从集群内监控堆栈中提取指标。
7.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
config:
exporters:
prometheus:
endpoint: 0.0.0.0:8889
resource_to_telemetry_conversion:
enabled: true # by default resource attributes are dropped
service:
telemetry:
metrics:
readers:
- pull:
exporter:
prometheus:
host: 0.0.0.0
port: 8888
pipelines:
metrics:
exporters: [prometheus]
- 1
- 配置红帽构建的 OpenTelemetry Operator,以创建 Prometheus
ServiceMonitorCR 或PodMonitorCR,以提取 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
podMetricsEndpoints:
- port: metrics
- port: promexporter
relabelings:
- action: labeldrop
regex: pod
- action: labeldrop
regex: container
- action: labeldrop
regex: endpoint
metricRelabelings:
- action: labeldrop
regex: instance
- action: labeldrop
regex: job