Veröffentlicht
13.08.2025
Technologie OpenTelemetry Kubernetes Prometheus

Verwendung des OpenTelemetry-Endpunkts in Prometheus 3 zum Erfassen von OTLP-Metriken in Kubernetes

Prometheus 3 führt native Unterstützung für die Erfassung von OpenTelemetry (OTLP) Metriken ein und ermöglicht so eine nahtlose Integration zwischen Prometheus und dem OpenTelemetry-Ökosystem.

Dieser Blogbeitrag zeigt, wie OTLP-Metriken in einer Kubernetes-Umgebung, in der sowohl der Prometheus-Operator als auch der OpenTelemetry-Operator bereits installiert sind, an Prometheus 3 gesendet werden können.

Voraussetzungen

Im Kubernetes-Cluster müssen die folgenden Komponenten installiert sein:

  • Prometheus 3 (mit aktiviertem OpenTelemetry-Empfangs-Endpunkt)
  • OpenTelemetry Operator (zur Verwaltung von OpenTelemetry-Collector-Instanzen)
  • Eine Beispielanwendung, die OTLP-Metriken erzeugt

Bereitstellen eines OpenTelemetry Collectors zum Exportieren von Metriken

Wir werden einen OpenTelemetry Collector so konfigurieren, dass er Anwendungsmetriken erfasst und an Prometheus 3 weiterleitet.

OpenTelemetry-Collector-Konfiguration in einer CRD

Anstatt eine ConfigMap zu verwenden, betten wir die Konfiguration direkt in die OpenTelemetryCollector-Custom Resource ein:

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: otel-collector
  namespace: monitoring
spec:
  mode: deployment
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:

    processors:
      batch:

    exporters:
      prometheusremotewrite:
        endpoint: "http://prometheus-operated.monitoring.svc.cluster.local:9090/api/v1/otlp"

    service:
      pipelines:
        metrics:
          receivers: [otlp]
          processors: [batch]
          exporters: [prometheusremotewrite]

Konfiguration von Prometheus 3 zur Annahme von OTLP-Metriken über den Prometheus Operator

Um den OTLP-Endpunkt in Prometheus über den Prometheus Operator zu aktivieren, passen wir die Prometheus-Custom-Resource wie folgt an:

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: prometheus
  namespace: monitoring
spec:
  containers:
    - name: prometheus
      args:
        - "--web.enable-remote-write-receiver"
        - "--enable-feature=otlp-write-receiver"
  serviceMonitorSelector:
    matchLabels:
      team: frontend
  podMonitorSelector: {}
  resources:
    requests:
      memory: 400Mi

Diese Flags aktivieren den OTLP-Metrik-Endpunkt unter /api/v1/otlp.

Bereitstellen einer Beispielanwendung mit OTLP-Metriken

Wir werden eine einfache Beispielanwendung mit OpenTelemetry-Instrumentierung bereitstellen, die Metriken an den OpenTelemetry Collector sendet.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-app
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sample-app
  template:
    metadata:
      labels:
        app: sample-app
    spec:
      containers:
        - name: sample-app
          image: myorg/sample-app:latest
          ports:
            - containerPort: 8080
          env:
            - name: OTEL_EXPORTER_OTLP_ENDPOINT
              value: "http://otel-collector.monitoring.svc.cluster.local:4317"

Überprüfung der Metriken in Prometheus

Nachdem die Beispielanwendung bereitgestellt wurde, überprüfen Sie, ob die Metriken erfolgreich in Prometheus einfliessen:

  • Zugriff auf die Prometheus-Benutzeroberfläche:
kubectl port-forward svc/prometheus-operated 9090 -n monitoring
  • Wir navigieren zu http://localhost:9090 und verwenden den Prometheus-Expression-Browser um die eingehenden OTLP-Metriken zu überprüfen.

Fazit

Mit dem OpenTelemetry-Endpunkt von Prometheus 3 wird die Integration von OTLP-Metriken in einen Kubernetes-basierten Observability-Stack deutlich vereinfacht. Dieses Setup ermöglicht es Teams, die leistungsstarken Telemetrie-Erfassungsfunktionen von OpenTelemetry zu nutzen und gleichzeitig Prometheus als zuverlässigen Backend-Speicher für Metriken und Abfragen weiter einzusetzen.

Beitrag teilen
Weitere Beiträge
Technologie OpenTelemetry Kubernetes
01.03.2025
Observability mit OpenTelemetry: Ein Kubernetes-nativer Ansatz
Weiterlesen
Technologie OpenTelemetry Kubernetes
08.05.2025
Der OpenTelemetry Collectors in Kubernetes
Weiterlesen