Was ist Prometheus?

Prometheus ist ein Open-Source-Toolkit für Monitoring und Benachrichtigungen, das mit dem Wachstum von Kubernetes immer beliebter wurde. Prometheus wurde ursprünglich bei SoundCloud entwickelt und kann bis zu einem Monitoringprojekt bei Google namens Borgmon zurückverfolgen.

Prometheus ist der Hauptvorteil des Erfassens von Messwerten aus Ihren Anwendungen und Ihrer Infrastruktur mithilfe eines Pull-basierten Modells. Das bedeutet, dass Prometheus regelmäßig eine Anfrage an Ihre Ziele sendet und die erfassten Messwerte dann in einer Zeitreihendatenbank gespeichert werden. In selbstverwalteten Prometheus-Instanzen stellen Sie die Infrastruktur zum Erfassen, Speichern und Abfragen der Messwerte bereit. In verwalteten Prometheus-Versionen stellt ein Anbieter die gesamte Infrastruktur und ein Service Level Agreement (SLA) für die Betriebszeit des Dienstes zur Verfügung.

Zum Abfragen Ihrer Zeitreihendaten bietet Prometheus eine Abfragesprache namens PromQL. Es gibt viele Projekte, die PromQL nutzen, darunter Grafana und Alertmanager, um analytische und operative Aufgaben wie die Datenvisualisierung, das Erstellen von Benachrichtigungen und die Skalierung Ihrer Monitoring-Infrastruktur zu unterstützen.  

Wozu wird Prometheus verwendet?

Mit Prometheus werden Messwerte aus Ihren Anwendungen und Ihrer Infrastruktur erfasst. Anhand dieser Messwerte können Sie den Zustand Ihrer Systeme verfolgen, potenzielle Probleme identifizieren und Probleme beheben.

Welche Vorteile bietet Prometheus?

Die Verwendung von Prometheus bietet unter anderem folgende Vorteile:

  • Offenheit: Prometheus ist eine Open-Source-Software, die zur Cloud Native Computing Foundation (CNCF) gehört und kostenlos genutzt werden kann.
  • Zuverlässigkeit: Prometheus ist zuverlässig und hat sich in Produktionsumgebungen bei einigen der größten Unternehmen der Welt bewährt.
  • Community-Support: Prometheus hat eine große und aktive Community, die Support, Dokumentation und Verbesserungen bietet. Darüber hinaus ist eine Reihe von Einbindungen in andere Tools möglich, mit denen Sie Ihre Systeme und Infrastruktur überwachen und Ihre Daten visualisieren können.
  • Kompatibel mit Kubernetes: Als Standard-Monitoring-Lösung für Kubernetes sind die meisten Drittanbieteranwendungen bereits für Prometheus-Messwerte instrumentiert.
  • Überall einsetzbar: Die meisten Anwendungen wurden bisher in Kubernetes-Bereitstellungen eingesetzt, aber Prometheus kann auch für VMs und einige serverlose Umgebungen eingesetzt werden.

Aus welchen Komponenten besteht Prometheus?

  • Prometheus-Server: Die zentrale Komponente des Prometheus-Monitoringsystems. Es speichert Zeitreihendaten und stellt eine HTTP-API für Abfragen und Benachrichtigungen zu diesen Daten bereit.
  • Prometheus-Exporteure: Software-Agents, die Messwerte aus verschiedenen Systemen erfassen und Prometheus zur Verfügung stellen.
  • Alertmanager: Ein Dienst, der Benachrichtigungen von Prometheus empfängt und an die entsprechenden Personen oder Systeme weiterleitet.
  • Prometheus-Föderation: Eine Funktion, mit der mehrere Prometheus-Server Daten gemeinsam nutzen können.
  • Prometheus Pushgateway:Eine Komponente, mit der Dienste Messwerte an Prometheus übertragen können, ohne sie extrahieren zu müssen. Diese Funktion eignet sich am besten für kurzlebige Jobs.
  • Prometheus Blackbox Exporter: Ein Dienst, mit dem die Verfügbarkeit von HTTP-, TCP- und DNS-Endpunkten überwacht werden kann.

Wie erfasst Prometheus Messwerte?

Prometheus nutzt ein Pull-Modell, um Messwerte zu erfassen. Das bedeutet, dass der Prometheus-Server die Systeme oder Anwendungen abfragt, die er auf Messwerte überwacht. Dies steht im Gegensatz zum Push-Modell, das von vielen anderen Monitoringsystemen verwendet wird, bei dem Sie den Anwendungscode so ändern, dass regelmäßig Messwerte an den Server gesendet werden.

Für das Pull-Modell ist es nicht erforderlich, dass die überwachten Systeme oder Anwendungen den Prometheus-Server erkennen. Daher kann es einem Monitoringsystem hinzugefügt werden, ohne Änderungen am Anwendungscode vorzunehmen. Im Pull-Modell werden Messwerte nur dann erfasst, wenn sie benötigt werden. Daher verschwendet Prometheus keine Ressourcen durch das Erfassen nicht verwendeter Messwerte.

Darüber hinaus kann Prometheus Datenquellen automatisch erkennen:

  • Service Discovery: Prometheus kann eine Vielzahl von Diensterkennungsmechanismen verwenden, um Hosts zu finden, auf denen Dienste ausgeführt werden, die Messwerte zur Verfügung stellen. Prometheus kann beispielsweise die Kubernetes API verwenden, um Pods zu erkennen, auf denen Prometheus-Exporter ausgeführt werden.
  • Statische Konfiguration: Es ist auch möglich, Prometheus statisch zu konfigurieren, um bestimmte Ressourcen zu extrahieren. Dies ist nützlich für Ressourcen, die auf andere Weise nicht gefunden werden können.
  • Dateierkennung: Prometheus kann Ressourcen auch anhand der Dateien erkennen, die Messwerte enthalten. So kann Prometheus beispielsweise Dateien erkennen, die von gclid oder Nagios generiert wurden.

Sobald Prometheus eine Ressource gefunden hat, wird sie regelmäßig nach Messwerten durchsucht. Die Messwerte werden dann in der Prometheus-Datenbank gespeichert, wo sie abgefragt und visualisiert werden können.

Was sind die vier Messwerttypen von Prometheus?

  • Zähler erfassen kumulative Werte, die nur erhöht werden können. Sie werden häufig verwendet, um Dinge wie ausgelieferte Anfragen, Fehler und übertragene Byte zu verfolgen.
  • Mit Tachometern werden Verhältnisse erfasst, die steigen oder fallen können. Meist wird dabei die Geschwindigkeit pro Sekunde gemessen. Sie werden häufig verwendet, um Dinge wie die Arbeitsspeichernutzung, die CPU-Auslastung und den Speicherplatz zu verfolgen.
  • Histogramme verfolgen die Verteilung von Werten. Sie werden häufig verwendet, um Aspekte wie die Anfragelatenz und die Antwortgröße zu verfolgen.
  • Zusammenfassungen ähneln Histogrammen, erfassen jedoch auch Quantile. Dies macht sie nützlicher, um Ausreißer zu identifizieren und die Gesamtverteilung von Werten zu verstehen.

Was ist PromQL?

PromQL ist eine leistungsstarke und flexible Abfragesprache für die von Prometheus erfassten Messwerte, mit denen Ad-hoc-Grafiken, -Tabellen und -Benachrichtigungen erstellt werden können.

PromQL verwendet eine funktionale Abfragesprache, mit der der Nutzer Zeitreihendaten in Echtzeit auswählen und aggregieren kann. Das Ergebnis eines Ausdrucks kann entweder als Diagramm oder als tabellarische Daten im Ausdrucksbrowser von Prometheus angezeigt oder von externen Systemen über die HTTP API verarbeitet werden.

Hier sind einige der Dinge, für die Prometheus und PromQL verwendet werden können:

  • Status Ihrer Anwendungen und Infrastruktur überwachen: Prometheus erfasst Messwerte und Benachrichtigungen zu potenziellen Problemen.
  • Potenzielle Probleme identifizieren: Prometheus vergleicht aktuelle Messwerte mit Verlaufsdaten und Benachrichtigungen bei erheblichen Abweichungen
  • Probleme beheben: Prometheus bietet eine detaillierte Ansicht des Systemzustands und ermöglicht es Nutzern, bestimmte Messwerte und Ressourcen aufzurufen, um die Ursache des Problems zu ermitteln.
  • Daten visualisieren: : Prometheus verwendet die PromQL-Abfragesprache, um die Zeitreihendaten abzufragen, und zeigt die Ergebnisse dann in verschiedenen Formaten an, einschließlich Grafiken, Tabellen und Benachrichtigungen.
  • Benachrichtigungen erstellen: Prometheus verwendet seine PromQL-Abfragesprache, um seine Zeitreihendaten abzufragen, und sendet Benachrichtigungen, wenn die Ergebnisse bestimmte Bedingungen erfüllen
  • Drittanbietertools visualisieren:Jedes Frontend, das die Prometheus Query API unterstützt, z. B. Grafana oder Kiali, kann den Prometheus-Server abfragen und Daten anzeigen.

Beispiele für PromQL-Abfragen

Hier sind einige Beispiele für PromQL-Abfragen:

Durchschnittliche CPU-Nutzung pro Sekunde

Mit der folgenden Abfrage können Sie die durchschnittliche CPU-Auslastung pro Sekunde für eine bestimmte Anwendung ermitteln:

PromQL-pro-Sekunde – Abfrage zur CPU-Nutzung

Anzahl der Endpunktanfragen

Um die Anzahl der Anfragen an einen bestimmten Endpunkt abzurufen, können Sie die folgende Abfrage verwenden:

PromQL-Abfrage für die Anzahl der Endpunktanfragen

Anzahl der Fehler bei Endpunktanfragen

Um die Gesamtzahl der Fehler abzurufen, die von einem bestimmten Endpunkt zurückgegeben wurden, können Sie die folgende Abfrage verwenden:

Beispiel für eine Abfrage von Fehlern bei PromQL-Endpunktanfragen

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Sprechen Sie mit einem Google Cloud-Vertriebsexperten, um Ihre besonderen Herausforderungen im Detail zu besprechen.
Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
Google Cloud