Auf dieser Seite werden die Grundlagen zur Verwendung von Prometheus-Messwerten für Verfügbarkeits- und Latenz-SLIs in Cloud Monitoring und zum Erstellen eines SLO mithilfe dieser Messwerte erläutert.
Die Grundlagen von Prometheus
Prometheus ist eine führende Open-Source-Monitoring-Lösung für Messwerte und Benachrichtigungen.
Prometheus unterstützt Dimensionsdaten mit Schlüssel/Wert-Paaren für Messwerte, stellt die PromQL-Abfragesprache bereit und unterstützt zahlreiche Integrationen, da es Exporter für andere Produkte bereitstellt.
Wenn Sie Prometheus mit Monitoring verwenden möchten, empfehlen wir den Google Cloud Managed Service for Prometheus.
Messwerte
Prometheus unterstützt folgende Messwerttypen:
- Zähler: Ein einzelner Wert, der nur monoton erhöht oder beim Neustart auf 0 zurückgesetzt werden kann.
- Gauge: Ein einzelner numerischer Wert, der beliebig festgelegt werden kann.
- Histogramm: Eine Gruppe konfigurierbaren Buckets für Sampling-Beobachtungen und zur Aufzeichnung von Werten in Bereichen. Stellt auch eine Summe aller beobachteten Werte bereit.
- Zusammenfassung: Wie ein Histogramm, kalkuliert aber auch konfigurierbare Quantile über ein gleitendes Zeitfenster.
Weitere Informationen finden Sie unter Messwerttypen.
Messwerte für SLIs erstellen
Wenn Ihre Anwendung Prometheus-Messwerte ausgibt, können Sie diese für SLIs verwenden.
- Für Verfügbarkeits-SLIs zur Anzahl von Anfragen und Fehler können Sie mit Prometheus-Zählermesswerten starten.
- Für Latenz-SLIs können Sie ein Prometheus-Histogramm oder Messwerte zur Zusammenfassung verwenden.
Informationen zum Erfassen von Prometheus-Messwerten mit Google Cloud Managed Service for Prometheus finden Sie in der Dokumentation zum Einrichten der verwalteten oder selbst bereitgestellten Messwerterfassung.
Wenn Sie in der Google Cloud Console eine SLO erstellen, enthalten die Standard-SLO-Typen für Verfügbarkeit und Latenz keine Prometheus-Messwerte. Wenn Sie einen Prometheus-Messwert verwenden möchten, erstellen Sie einen benutzerdefinierten SLO und wählen Sie dann einen Prometheus-Messwert für den SLI aus.
Prometheus-Messwerte beginnen mit prometheus.googleapis.com/
.
Messwerte für GKE
Die verwaltete Erfassung von Messwerten durch Google Cloud Managed Service for Prometheus ist für GKE standardmäßig aktiviert. Bei Ausführung in einer GKE-Umgebung, die die verwaltete Sammlung nicht standardmäßig aktiviert hat, sehen sie Verwaltete Sammlung manuell aktivieren Wenn die verwaltete Erfassung aktiviert ist, werden die clusterinternen Komponenten ausgeführt. Messwerte werden jedoch erst generiert, wenn Sie eine PodMonitoring-Ressource bereitstellen, die einen gültigen Messwertendpunkt extrahiert oder eines der Pakete mit verwalteten Messwerten aktiviert.
Das Paket Messwerte der Steuerungsebene enthält Messwerte, die nützliche Indikatoren für den Systemstatus sind. Aktivieren Sie die Erfassung von Messwerten der Steuerungsebene, um diese Messwerte für Verfügbarkeit, Latenz und andere SLIs zu verwenden.
- Mit API-Server-Messwerten können Sie die API-Serverlast, den Anteil der API-Serveranfragen, die Fehler zurückgeben, und die Antwortlatenz für Anfragen erfassen, die vom API-Server empfangen werden.
- Mithilfe von Planermesswerten können Sie proaktiv auf Planungsprobleme reagieren, wenn nicht genügend Ressourcen für ausstehende Pods vorhanden sind.
Messwerte für Verfügbarkeits-SLIs
Sie geben einen anfragebasierten Verfügbarkeits-SLI in der Cloud Monitoring API an, indem Sie mit der Struktur TimeSeriesRatio
ein Verhältnis von „guten” oder „schlechten” Anfragen zu den gesamten Anfragen festlegen. Dieses Verhältnis wird im Feld goodTotalRatio
einer RequestBasedSli
-Struktur verwendet.
Die Anwendung muss Prometheus-Messwerte erstellen, mit denen dieses Verhältnis erstellt werden kann. Die Anwendung muss mindestens zwei der folgenden Elemente ausgeben:
Ein Messwert, mit dem alle Ereignisse gezählt werden. Verwenden Sie diesen Messwert im
totalServiceFilter
des Verhältnisses.Sie können einen Prometheus-Zähler verwenden, der für jedes Ereignis erhöht wird.
Verwenden Sie diesen Messwert im
badServiceFilter
des Verhältnisses, um "schlechte" Ereignisse zu zählen.Sie können einen Prometheus-Zähler verwenden, der für jeden Fehler und jedes andere „fehlerhaftes” Ereignis erhöht wird.
Verwenden Sie diesen Messwert im
goodServiceFilter
des Verhältnisses, um "gute" Ereignisse zu zählen.Sie können einen Prometheus-Zähler verwenden, der für jedes erfolgreiche und jedes sonstige „gute” Ereignis erhöht wird.
Messwerte für Latenz-SLIs
Sie geben einen anfragebasierten Latenz-SLI in der Cloud Monitoring API mithilfe einer DistributionCut
-Struktur aus. Diese Struktur wird im Feld distributionCut
einer RequestBasedSli
-Struktur verwendet.
Ihre Anwendung muss einen Prometheus-Messwert erstellen, mit dem der Wert für den Verteilungsschnitt erstellt werden kann. Sie können für diesen Zweck ein Prometheus-Histogramm oder eine Zusammenfassung verwenden. Informationen zum Definieren von Buckets, um genau zu messen, ob die Antworten in Ihr SLO fallen, finden Sie unter Messwerttypen in der Prometheus-Dokumentation.
Beispiel
Im folgenden JSON-Beispiel wird der GKE-Steuerungsebenenmesswert prometheus.googleapis.com/apiserver_request_duration_seconds
verwendet, um einen SLO für die Latenz eines Dienstes zu erstellen. Das SLO erfordert 98 % der Antwortlatenz in weniger als 50 Sekunden in einem Kalendermonat.
{
"displayName": "98% Calendar month - Request Duration Under 50s",
"goal": 0.98,
"calendarPeriod": "MONTH",
"serviceLevelIndicator": {
"requestBased": {
"distributionCut": {
"distributionFilter": "metric.type=\"prometheus.googleapis.com/apiserver_request_duration_seconds/histogram\" resource.type=\"prometheus_target\"",
"range": {
"min": "-Infinity",
"max": 50
}
}
}
}
}
Nächste Schritte
- SLO erstellen
- Weitere Informationen zu Google Cloud Managed Service for Prometheus
- Weitere Informationen zu Messwerten der Steuerungsebene