Integration · Prometheus

Prometheus Monitoring mit Remote Write und PromQL

Behalten Sie Exporter, Scrape-Konfigurationen und PromQL. Obseria empfängt Prometheus-Metriken per Remote Write oder OpenTelemetry Collector und ergänzt Langzeitspeicher, Topologie und KI-Ursachenanalyse.
Obseria Apps und Funktionen: Observability, APM, Infrastruktur und Integrationen
Obseria Home-Dashboard mit Service-Zustand, offenen Problemen, SLO-Erfüllung und Ingestion
Obseria Trace-Explorer mit Span-Liste und Span-Attributen
Überblick

Warum Prometheus mit Obseria überwachen

PromQL bleibt

Fragen Sie Prometheus-Metriken in Obseria mit PromQL ab oder wechseln Sie zu OQL und SQL, wenn Sie Metriken mit Logs und Traces verknüpfen möchten.

Langzeitspeicher ohne Sharding

Metrik-Datenpunkte werden 13 Monate in Obseria Lake gespeichert. Thanos, Cortex oder Federation nur für die Historie entfallen.

Kontext über Metriken hinaus

TopoGraph ordnet jede Zeitreihe Pod, Host und Service zu, Obseria Intelligence korreliert Anomalien mit Traces und Logs.

Abdeckung

Prometheus-Quellen, die Obseria aufnimmt

  • Prometheus Server. Bestehende Server leiten Samples per Remote Write mit Bearer-Token und Relabeling pro Zeitreihe weiter.
  • Prometheus Agent Mode. Prometheus läuft im Agent Mode als schlanker Scraper, der nur weiterleitet und keine lokale TSDB benötigt.
  • Exporter. node_exporter, blackbox_exporter, mysqld_exporter, kube-state-metrics und jeder andere /metrics-Endpunkt funktionieren unverändert.
  • OpenTelemetry Collector. Der prometheus-Receiver scrapt Targets mit Standard-scrape_configs und sendet die Daten per OTLP.
  • Kubernetes Service Discovery. Pods, Services und Endpoints, die Prometheus oder das Obseria-Agent-DaemonSet erkennt, werden automatisch gescrapt.
  • Client Libraries. Anwendungen mit Prometheus-Client-Libraries für Go, Java, Python oder Node.js brauchen keine Codeänderung.
Auf einen Blick

Die Prometheus-Kennzahlen, auf die es ankommt

Obseria erfasst diese Werte automatisch und zeigt sie in fertigen Dashboards und Alerts.

Zuverlässige Datenerfassung

Zeigt, ob alle überwachten Systeme erreichbar sind und ihre Daten pünktlich liefern, damit keine blinden Flecken entstehen.

  • up
  • scrape_duration_seconds

Erfasste Datenmenge

Zeigt, wie viele Überwachungsdaten erfasst und gespeichert werden, was sowohl Speicherbedarf als auch Kosten bestimmt.

  • scrape_samples_scraped
  • prometheus_tsdb_head_series

Übertragung an Obseria

Macht sichtbar, ob Daten zuverlässig und zügig weitergeleitet werden oder sich unterwegs stauen und verloren gehen.

  • prometheus_remote_storage_samples_pending
  • prometheus_remote_storage_samples_failed_total
  • prometheus_remote_storage_shards

Verlässliche Alerts

Hebt Alert-Regeln hervor, die nicht ausgeführt werden, sodass wichtige Warnungen Ihr Team womöglich nie erreichen.

  • prometheus_rule_evaluation_failures_total
Alle 8 Metriken im Detail anzeigen
MetrikEinheitAussage
up1Ob der letzte Scrape eines Targets erfolgreich war, das erste Signal für einen defekten Exporter.
scrape_duration_secondssDauer jedes Scrapes; Werte nahe am Timeout führen zu Lücken.
scrape_samples_scraped{samples}Samples pro Scrape; plötzliche Sprünge deuten auf eine Kardinalitätsexplosion hin.
prometheus_tsdb_head_series{series}Aktive Zeitreihen im Head Block, der größte Treiber für den Speicherbedarf.
prometheus_remote_storage_samples_pending{samples}Für Remote Write wartende Samples; eine wachsende Queue zeigt einen Engpass.
prometheus_remote_storage_samples_failed_total{samples}Samples, deren Versand mit einem nicht behebbaren Fehler scheiterte.
prometheus_remote_storage_shards{shards}Aktive Remote-Write-Shards; dauerhaft auf max_shards bedeutet Drosselung.
prometheus_rule_evaluation_failures_total{evaluations}Recording- und Alerting-Regeln, deren Auswertung fehlschlug.
Einrichtung

Prometheus-Monitoring in wenigen Minuten einrichten

  1. Schritt 1

    Ingest-Token erstellen

    Erstellen Sie in Obseria ein Token für Metrik-Ingest und legen Sie es als Datei oder Kubernetes Secret neben Prometheus ab.

  2. Schritt 2

    remote_write ergänzen

    Fügen Sie einen remote_write-Block mit Obseria-Endpunkt und Bearer-Token hinzu und laden Sie Prometheus neu. Nicht benötigte Zeitreihen können Sie vorher verwerfen.

  3. Schritt 3

    Abfragen und alarmieren

    Öffnen Sie die Prometheus-Dashboards, führen Sie Ihre PromQL-Abfragen aus und machen Sie die wichtigsten zu Alerts und SLOs.

Beispielkonfiguration · YAML
# prometheus.yml: forward every scraped series to Obseria
remote_write:
  - url: "https://<your-obseria-remote-write-endpoint>"
    authorization:
      type: Bearer
      credentials_file: /etc/prometheus/obseria-token
    queue_config:
      capacity: 10000
      max_shards: 50
      max_samples_per_send: 2000
    write_relabel_configs:
      # drop high-churn series you never query
      - source_labels: [__name__]
        regex: "go_gc_duration_seconds.*"
        action: drop

Sofort einsatzbereit

Dashboards, Alerts und SLOs, die bereitstehen, sobald die ersten Daten ankommen.

  • Remote-Write-Zustand und Queue-Rückstau
  • Verfügbarkeit der Scrape-Targets (up) pro Job
  • Kardinalität nach Metrik und Label
  • Alert: Target länger als 5 Minuten down
  • Kubernetes-Cluster-Übersicht aus kube-state-metrics
Leitfaden

Prometheus-Monitoring: Darauf kommt es an

Warum Prometheus Monitoring mehr als einen Server braucht

Prometheus ist das Standard-Metriksystem in Cloud-native-Umgebungen. Ein einzelner Server mit lokalem Speicher ist schnell aufgesetzt, wurde aber für kurze Aufbewahrung und eine einzige Fehlerdomäne entworfen. Mit jedem weiteren Cluster kommen mehrere Server pro Region, Federation und eine Langzeitspeicher-Schicht wie Thanos oder Cortex hinzu. Prometheus Monitoring wird so zu zwei Aufgaben: die Workloads überwachen und das Monitoring selbst am Leben halten.

Obseria übernimmt die zweite Aufgabe. Ihre Prometheus-Server oder -Agents scrapen Exporter wie bisher und leiten Samples per Prometheus Remote Write weiter. Obseria speichert sie 13 Monate, beantwortet PromQL-Abfragen und stellt jede Zeitreihe in den Kontext von Topologie, Traces und Logs.

Die Prometheus-Metriken, auf die es ankommt

Jedes Prometheus-Setup sollte sich mit wenigen Meta-Metriken selbst überwachen:

  • Target-Zustand: up ist bei jedem erfolgreichen Scrape 1. Alarmieren Sie auf up == 0 pro Job statt pro Instanz, um Alert-Stürme bei Rollouts zu vermeiden.
  • Scrape-Kosten: scrape_duration_seconds und scrape_samples_scraped zeigen langsame Exporter und Targets, die plötzlich viel mehr Zeitreihen liefern.
  • Kardinalität: prometheus_tsdb_head_series ist die Zahl aktiver Zeitreihen. Sie bestimmt den Speicherbedarf und ist die erste Metrik, wenn Prometheus per OOM beendet wird.
  • Remote-Write-Zustand: prometheus_remote_storage_samples_pending, prometheus_remote_storage_samples_failed_total und prometheus_remote_storage_shards zeigen, ob Daten den Server tatsächlich verlassen.
  • Regelauswertung: prometheus_rule_evaluation_failures_total findet Recording- und Alerting-Regeln, die unbemerkt nicht mehr funktionieren.

Typische Probleme und wie Sie sie erkennen

Kardinalitätsexplosionen

Ein Label mit User-IDs, Request-Pfaden oder Pod-Hashes vervielfacht die Zeitreihen über Nacht. Beobachten Sie das Wachstum der Head Series und der Samples pro Scrape und verwerfen oder aggregieren Sie Labels mit write_relabel_configs, bevor sie den Server verlassen. In Obseria kann zusätzlich die Pipeline Labels beim Ingest verwerfen oder umschreiben.

Remote Write kommt nicht hinterher

Wächst die Zahl wartender Samples und stehen die Shards auf max_shards, ist das Netzwerk oder der Empfänger der Engpass. Eine Abfrage wie rate(prometheus_remote_storage_samples_failed_total[5m]) > 0 eignet sich gut als Alert. Passen Sie capacity, max_shards und max_samples_per_send in queue_config an, statt Scrape-Intervalle zu verlängern.

Lücken nach Neustarts

Lokale TSDB-Daten gehen verloren, wenn ein Pod ohne Persistent Volume neu startet. Mit Remote Write liegt die Historie in Obseria, und Prometheus im Agent Mode benötigt nur ein kleines Write-Ahead-Log.

Best Practices für skalierbares Prometheus

  1. Nutzen Sie am Edge Prometheus im Agent Mode oder den OpenTelemetry Collector und halten Sie nur einen zentralen Speicher für Abfragen vor.
  2. Setzen Sie External Labels für Cluster und Region, damit Zeitreihen verschiedener Server nie kollidieren.
  3. Setzen Sie sample_limit pro Scrape-Job, damit ein einzelnes fehlerhaftes Target den Server nicht überlastet.
  4. Halten Sie Namenskonventionen ein (_total, _seconds, _bytes), damit Metriktypen in jedem Tool eindeutig sind.
  5. Prüfen Sie regelmäßig die größten Zeitreihen nach Metriknamen und löschen Sie, was niemand abfragt.

So unterstützt Obseria Ihr Prometheus Monitoring

Obseria nimmt Prometheus-Daten per Remote Write, über den prometheus-Receiver des OpenTelemetry Collectors oder direkt über den Obseria Agent auf, der /metrics-Endpunkte scrapt. PromQL funktioniert für Dashboards und Alerts, mit OQL verknüpfen Sie dieselben Metriken mit Logs und Spans. TopoGraph ordnet Zeitreihen Kubernetes-Workloads und Hosts zu, sodass ein Alert auf ein Latenz-Histogramm bereits zeigt, welcher Service und welches Deployment betroffen sind. Obseria Intelligence erkennt Anomalien in Ihren Prometheus-Metriken und erklärt sie mit einer Beweiskette. Abgerechnet wird pro aufgenommenem und gespeichertem Metrik-Datenpunkt, nicht pro Host; in der Pipeline verworfene Datenpunkte kosten nur den Ingest.

Eine typische Migration läuft parallel: Sie ergänzen Remote Write in einem Cluster, vergleichen Dashboards und Alerts einige Tage nebeneinander und rollen die gleiche Konfiguration dann auf die übrigen Server aus. Da sich die Scrape-Schicht nicht ändert, bleiben Exporter, ServiceMonitors und Recording Rules genau dort, wo sie sind. Den Remote Write können Sie jederzeit wieder entfernen. Für Teams mit vielen Clustern lohnt es sich, External Labels und Relabeling-Regeln zentral zu versionieren, damit jede neue Umgebung vom ersten Tag an einheitliche Zeitreihen liefert und Kosten pro Cluster nachvollziehbar bleiben.

Häufige Fragen zum Prometheus-Monitoring

Ja. Obseria unterstützt PromQL für Abfragen, Dashboards und Alerts. Für die Korrelation mit Logs und Traces können Sie auf denselben Metriken auch OQL oder SQL verwenden.

Nein. Sie ergänzen einen remote_write-Block, und Ihre Server scrapen wie bisher. Viele Teams wechseln später auf den Agent Mode oder den OpenTelemetry Collector, um den lokalen Ressourcenbedarf zu senken.

Metrik-Datenpunkte werden 13 Monate aufbewahrt. Eine separate Langzeitspeicher-Schicht wie Thanos oder Cortex ist nicht nötig.

Verwerfen Sie Zeitreihen vor dem Versand mit write_relabel_configs oder filtern und aggregieren Sie sie beim Ingest in der Obseria Pipeline. Gefilterte Datenpunkte werden nur für den Ingest berechnet.

Ja. Die Prometheus-Ressource des Operators hat einen remoteWrite-Abschnitt, in dem Sie den Obseria-Endpunkt und eine Secret-Referenz eintragen. ServiceMonitors und PodMonitors bleiben unverändert.

Starten Sie heute mit dem Prometheus-Monitoring

Binden Sie Prometheus in Minuten per OpenTelemetry oder Obseria Agent an. 14 Tage kostenlos.