OpenTelemetry K8s Operator Collector - Prometheus 的导出器配置

OpenTelemetry K8s Operator Collector - Prometheus 的导出器配置

我在 Azure AKS 集群中有一些容器工作负载。我需要使用 OpenTelemetry 从容器工作负载中获取指标、日志和跟踪数据,并让 OTEL 收集器收集这些数据。

我在 AKS 集群中以 K8s 容器的形式设置了 Grafana 和 Prometheus 服务器。当我以部署 Pod 的形式部署 OTEL 收集器时(https://opentelemetry.io/docs/kubernetes/helm/collector/)以下是将OTEL收集器中的数据指向prometheus数据源的导出器配置:

exporters:
  prometheus:
    enable_open_metrics: true
    endpoint: ${env.MY_POD_IP}:9464
    resource_to_telemetry_conversion:
      enabled: true

receivers:
  prometheus:
    config:
      scrape_configs:
      - job_name: opentelemetry-collector
        scrape_interval: 10s
        static_configs:
        - targets:
          - ${env:MY_POD_IP}:8888

这有效。在这里,OTEL 收集器能够将数据导出到 Prometheus 数据源,并且可以使用 Grafana 进行可视化。

然而,我的痛点是当使用 OpenTelemetry Collector 作为 Kubernetes Operator 时(https://opentelemetry.io/docs/kubernetes/operator/). 在哪里定义导出器和接收器配置?

以下是 OTEL 收集器的 YAML 配置:

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: otel-collector
spec:
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    processors:
      memory_limiter:
        check_interval: 1s
        limit_percentage: 75
        spike_limit_percentage: 15
      batch:
        send_batch_size: 10000
        timeout: 10s

    exporters:
      debug:

    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: []
          exporters: [debug]

这里,我该如何定义需要将数据导出到 Prometheus 服务器端点?我假设需要使用端口 9464。但是,我在哪里提到该配置?

相关内容