您可以配置 `OpenTelemetryCollector` 自定义资源 (CR) 来创建一个 Prometheus `ServiceMonitor` CR 或 `PodMonitor` CR 用于 sidecar 部署。`ServiceMonitor` 可以抓取 Collector 的内部指标端点和 Prometheus 导出器指标端点。
带有 Prometheus 导出器的 OpenTelemetry Collector CR 示例
apiVersion: opentelemetry.io/v1alpha1
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:
receivers: [otlp]
exporters: [prometheus]
1 |
配置 Red Hat 版本的 OpenTelemetry Operator 以创建 Prometheus `ServiceMonitor` CR 或 `PodMonitor` CR,用于抓取 Collector 的内部指标端点和 Prometheus 导出器指标端点。 |
|
将 `enableMetrics` 设置为 `true` 将创建以下两个 `ServiceMonitor` 实例:
|
或者,手动创建的 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
1 |
OpenTelemetry Collector CR 的名称。 |
2 |
OpenTelemetry Collector 的内部指标端口的名称。此端口名称始终为 `metrics`。 |
3 |
OpenTelemetry Collector 的 Prometheus 导出器端口的名称。 |