Sie können einen GKE-Cluster (Google Kubernetes Engine) so konfigurieren, dass eine Gruppe ausgewählter Kube State Metrics, einschließlich Messwerten für Pods, Deployments usw. an Cloud Monitoring mit Google Cloud Managed Service for Prometheus gesendet wird. In diesem Dokument wird beschrieben, wie diese Messwerte formatiert werden, wenn sie in Cloud Monitoring geschrieben und abgefragt werden. Dieses Dokument enthält auch Tabellen, in denen die Messwerte in jedem Satz aufgeführt sind und wie Sie die Messwerte verwenden können.
Bevor Sie Kube State Metrics verwenden können, müssen Sie ihre Sammlung aktivieren.
Messwertformat
Alle in Cloud Monitoring geschriebenen Kube State Metrics von Kubernetes verwenden den Ressourcentyp
prometheus_target
.
Jeder Messwertname hat das Präfix prometheus.googleapis.com/
und ein Suffix, das den Prometheus-Messwerttyp angibt, z. B. /gauge
, /histogram
oder /counter
. Andernfalls ist jeder Messwertname mit dem Messwert von Open-Source-Kubernetes identisch.
Aus Cloud Monitoring exportieren
Die Kube State Metrics können mithilfe der Cloud Monitoring API aus Cloud Monitoring exportiert werden. Da alle Kube State Metrics mithilfe von Google Cloud Managed Service for Prometheus aufgenommen werden, können Kube State Metrics mit der Prometheus-Abfragesprache (PromQL) abgefragt werden. Eine Abfrage ist auch mit Monitoring Query Language (MQL) möglich.
Messwerte abfragen
Wenn Sie Kube State Metrics abfragen, hängt der Name davon ab, ob Sie PromQL- oder Cloud Monitoring-basierte Features wie MQL oder die menügesteuerte Oberfläche des Metrics Explorer verwenden.
Die folgenden Tabellen der Kube State Metrics zeigen zwei Versionen jedes Messwertnamens:
- PromQL-Messwertname: Bei der Verwendung von PromQL auf Cloud Monitoring-Seiten der Google Cloud Console oder in PromQL-Feldern des Cloud Monitoring API verwenden Sie den PromQL-Messwertnamen.
- Name des Cloud Monitoring-Messwerts: Verwenden Sie in den folgenden Tabellen den Cloud Monitoring-Messwertnamen, wenn Sie andere Cloud Monitoring-Features verwenden. Dieser Name muss das Präfix
prometheus.googleapis.com/
haben, das in den Einträgen der Tabelle weggelassen wurde.
Speichermesswerte
Die Cloud Monitoring-Messwertnamen in dieser Tabelle müssen das Präfix prometheus.googleapis.com/
haben. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen.
PromQL-Messwertname Cloud Monitoring-Messwertname |
|
---|---|
Art, Typ, Einheit
Überwachte Ressourcen Erforderliche GKE-Version |
Beschreibung Labels |
kube_persistentvolume_capacity_bytes kube_persistentvolume_capacity_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.27.2-gke.1200 |
Kapazität von Persistentvolume in Byte.
Alle 30 Sekunden wird eine Stichprobe erstellt.persistentvolume : persistentvolume.
|
kube_persistentvolume_claim_ref kube_persistentvolume_claim_ref/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informationen zur Referenz zum Anspruch auf nichtflüchtige Volumes.
Alle 30 Sekunden wird eine Stichprobe erstellt.claim_name : claim_name.
name : Name.
persistentvolume : persistentvolume.
|
kube_persistentvolume_info kube_persistentvolume_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informationen zum persistentvolume.
Alle 30 Sekunden wird eine Stichprobe erstellt.csi_driver : csi_driver.
csi_volume_handle : csi_volume_handle.
local_fs : local_fs.
local_path : local_path.
persistentvolume : persistentvolume.
storageclass : storageclass.
|
kube_persistentvolume_status_phase kube_persistentvolume_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Phase gibt an, ob ein Volume verfügbar ist, an einen Anspruch gebunden ist oder durch einen Anspruch freigegeben wird.
Alle 30 Sekunden wird eine Stichprobe erstellt.persistentvolume : persistentvolume.
phase : phase.
|
kube_persistentvolumeclaim_info kube_persistentvolumeclaim_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informationen zum Anspruch auf nichtflüchtiges Volume.
Alle 30 Sekunden wird eine Stichprobe erstellt.persistentvolumeclaim : persistentvolumeclaim.
storageclass : storageclass.
volumename : volumename.
|
kube_persistentvolumeclaim_resource_requests_storage_bytes kube_persistentvolumeclaim_resource_requests_storage_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.27.2-gke.1200 |
Die Kapazität des vom Persistent Volume Claim angeforderten Speichers.
Alle 30 Sekunden wird eine Stichprobe erstellt.persistentvolumeclaim : persistentvolumeclaim.
|
kube_persistentvolumeclaim_status_phase kube_persistentvolumeclaim_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Phase, in der sich der Anspruch auf nichtflüchtiges Volume derzeit befindet.
Alle 30 Sekunden wird eine Stichprobe erstellt.persistentvolumeclaim : persistentvolumeclaim.
phase : phase.
|
Weitere Informationen finden Sie unter PersistentVolume-Messwerte und PersistentVolumeClaim-Messwerte.
Pod-Messwerte
Ein Pod ist eine Gruppe von einem oder mehreren Containern mit einer Spezifikation zum Ausführen der Container, die Speicher- und Netzwerkressourcen gemeinsam nutzen.
Tabelle der Pod-Messwerte
Mit den Pod-Messwerten können Sie das Verhalten Ihrer Pods beobachten und melden. Die folgende Tabelle zeigt die im Kube State Metrics-Paket verfügbaren Messwerte:
Die Cloud Monitoring-Messwertnamen in dieser Tabelle müssen das Präfix prometheus.googleapis.com/
haben. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen.
PromQL-Messwertname Cloud Monitoring-Messwertname |
|
---|---|
Art, Typ, Einheit
Überwachte Ressourcen Erforderliche GKE-Version |
Beschreibung Labels |
kube_pod_container_status_ready kube_pod_container_status_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Beschreibt, ob die Bereitschaftsprüfung der Container erfolgreich war.
Alle 30 Sekunden wird eine Stichprobe erstellt.container : container.
pod : pod.
uid : uid.
|
kube_pod_container_status_waiting_reason kube_pod_status_container_status_waiting_reason/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Beschreibt, warum sich der Container derzeit im Wartestatus befindet.
Alle 30 Sekunden wird eine Stichprobe erstellt.container : container.
pod : pod.
reason : reason.
uid : uid.
|
kube_pod_status_phase kube_pod_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die aktuelle Phase der Pods. Alle 30 Sekunden wird eine Stichprobe erstellt.phase : phase.
pod : pod.
uid : uid.
|
kube_pod_status_unschedulable kube_pod_status_unschedulable/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Beschreibt den Status „Nicht planbar“ für den Pod.
Alle 30 Sekunden wird eine Stichprobe erstellt.pod : pod.
uid : uid.
|
Weitere Informationen finden Sie unter Pod-Messwerte.
Beispielabfragen für Pod-Messwerte
Mit dem folgenden PromQL-Ausdruck können Sie feststellen, ob nicht planbare Pods vorhanden sind:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"})
Für eine Benachrichtigung bei einer Reihe nicht planbarer Pods in einem Namespace können Sie den folgenden PromQL-Ausdruck verwenden:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"}) > LIMIT
Sie können den Messwert kube_pod_container_status_waiting_reason
verwenden, um eine Benachrichtigung für einen Container zu erstellen, der in einem bestimmten Wartestatus hängen bleibt. Dazu verwenden Sie einen PromQL-Ausdruck wie den folgenden:
max_over_time(kube_pod_container_status_waiting_reason{reason="REASON", cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Der Wert von REASON gibt den Wartestatus des Containers an. Beispiel:
CrashLoopBackOff
ImagePullBackOff
ContainerCreating
Verwenden Sie den folgenden PromQL-Ausdruck, um eine Benachrichtigung für einen Container zu erstellen, der in einem der Wartestatus hängen bleibt:
max_over_time(kube_pod_container_status_waiting_reason{cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Verwenden Sie den folgenden PromQL-Ausdruck, um festzustellen, wie viele Container die Bereitschaftsprüfungen nicht bestehen:
sum(kube_pod_container_status_ready) by (pod, container) == 0
Einige Abfrage- und Benachrichtigungsausdrücke in diesem Abschnitt wurden aus der Datei kubernetes-apps.yaml
im Repository der Prometheus-Community-Kubernetes-Helm-Diagramme auf GitHub übernommen.
Interaktive Playbooks
Die Kube-Statusmesswerte werden auch in den interaktiven GKE-Playbooks zur Fehlerbehebung von nicht planbaren oder Absturzschleifen-Pods verwendet. Weitere Informationen zu diesen Fehlermodi finden Sie in den folgenden Dokumenten zur Fehlerbehebung:
Wenn das Messwertpaket für Kube-State nicht aktiviert ist, besteht die primäre Möglichkeit zum Erkennen von Problemen mit der Pod-Planung darin, "Fehlgeschlagene Planung"-Protokollereignisse abzufragen. Nachdem Sie das Kube-State-Messwertpaket aktiviert haben, können Sie den kube_pod_status_unschedulable
-Messwert verwenden, der denselben Zweck erfüllt, aber einfacher zu aggregieren und grafisch darzustellen. Anhand des Messwerts können Sie sehen, wie viele Pods nicht planbar sind und wann das Problem begann.
Ebenso können Sie mit dem GKE-Systemmesswert kubernetes.io/container/restart_count
Pods mit Absturzschleifen erkennen. Der Messwert kube_pod_container_status_waiting_reason
listet auch Pods in Absturzschleifen auf und ermöglicht Ihnen außerdem, festzustellen, ob Pods in einem anderen Zustand als CrashLookBackOff
hängen bleiben, z. B. ImagePullBackOff
und ContainerCreating
.
So entdecken Sie die interaktiven Playbooks:
-
Rufen Sie in der Google Cloud Console die Seite Dashboards auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Filtern Sie die Dashboard-Liste, indem Sie auf die Kategorie G C P klicken.
- Klicken Sie in der Liste auf den Namen eines "Interaktiven GKE-Playbooks".
Deployment-Messwerte
Ein Deployment ist ein Controller, der den Status von Ressourcen wie Pods aktualisiert, um Ereignisse wie Rollouts und Deaktivierungen zu verwalten.
Tabelle der Deployment-Messwerte
Mit den Deployment-Messwerten können Sie das Verhalten des Controllers überwachen und melden. Die folgende Tabelle zeigt die im Kube State Metrics-Paket verfügbaren Messwerte:
Die Cloud Monitoring-Messwertnamen in dieser Tabelle müssen das Präfix prometheus.googleapis.com/
haben. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen.
PromQL-Messwertname Cloud Monitoring-Messwertname |
|
---|---|
Art, Typ, Einheit
Überwachte Ressourcen Erforderliche GKE-Version |
Beschreibung Labels |
kube_deployment_spec_replicas kube_deployment_spec_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Anzahl der gewünschten Pods für eine Bereitstellung. Alle 30 Sekunden wird eine Stichprobe erstellt.deployment : deployment.
|
kube_deployment_status_replicas_available kube_deployment_status_replicas_available/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der verfügbaren Replikate pro Bereitstellung. Alle 30 Sekunden wird eine Stichprobe erstellt.deployment : deployment.
|
kube_deployment_status_replicas_updated kube_deployment_status_replicas_updated/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der aktualisierten Replikate pro Bereitstellung. Alle 30 Sekunden wird eine Stichprobe erstellt.deployment : deployment.
|
Weitere Informationen finden Sie unter Bereitstellungsmesswerte.
Beispielabfragen für Deployment-Messwerte
Sie können Diagramme und Benachrichtigungsrichtlinien für einzelne Deployments erstellen, indem Sie Deployment-Messwerte nach Cluster, Namespace und Namen des Deployments filtern.
Wenn Sie beispielsweise die Anzahl der verfügbaren Replikate mit der erwarteten Anzahl von Replikaten in einem einzelnen Deployment vergleichen möchten, können Sie die folgenden PromQL-Abfragen verwenden, um beide Messwerte in einem einzelnen Diagramm grafisch darzustellen:
kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}und
kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
Wenn Sie eine Benachrichtigung über ein fehlgeschlagenes oder angehaltenes Deployment senden möchten, können Sie den folgenden PromQL-Ausdruck verwenden:
( kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"} > kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"} ) and ( changes(kube_deployment_status_replicas_updated{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"}[10m]) == 0 )
Einige Abfrage- und Benachrichtigungsausdrücke in diesem Abschnitt wurden aus der Datei kubernetes-apps.yaml
im Repository der Prometheus-Community-Kubernetes-Helm-Diagramme auf GitHub übernommen.
StatefulSet-Messwerte
Ein StatefulSet ist ein Controller, der die Bereitstellung und Skalierung einer Reihe von Pods für zustandsorientierte Anwendungen verwaltet. Mit diesem Controller werden die Reihenfolge und Eindeutigkeit von Pods verwaltet.
Tabelle der StatefulSet-Messwerte
Mit den StatefulSet-Messwerten können Sie das Verhalten des Controllers beobachten und melden. Die folgende Tabelle zeigt die im Kube State Metrics-Paket verfügbaren Messwerte:
Die Cloud Monitoring-Messwertnamen in dieser Tabelle müssen das Präfix prometheus.googleapis.com/
haben. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen.
PromQL-Messwertname Cloud Monitoring-Messwertname |
|
---|---|
Art, Typ, Einheit
Überwachte Ressourcen Erforderliche GKE-Version |
Beschreibung Labels |
kube_statefulset_replicas kube_statefulset_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Anzahl der gewünschten Pods für ein StatefulSet. Alle 30 Sekunden wird eine Stichprobe erstellt.statefulset : statefulset.
|
kube_statefulset_status_replicas_ready kube_statefulset_status_replicas_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der Replikate pro StatefulSet, die bereit sind. Alle 30 Sekunden wird eine Stichprobe erstellt.statefulset : statefulset.
|
kube_statefulset_status_replicas_updated kube_statefulset_status_replicas_updated/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der aktualisierten Replikate pro StatefulSet. Alle 30 Sekunden wird eine Stichprobe erstellt.statefulset : statefulset.
|
Weitere Informationen finden Sie unter StatefulSet-Messwerte.
Beispielabfragen für StatefulSet-Messwerte
Sie können Diagramme und Benachrichtigungsrichtlinien für einzelne StatefulSets erstellen, wenn Sie zustandsorientierte Messwerte nach Cluster, Namespace und Namen des StatefulSets filtern.
Wenn Sie beispielsweise die Anzahl der verfügbaren Replikate mit der erwarteten Anzahl von Replikaten in einem einzelnen StatefulSet vergleichen möchten, können Sie die folgenden PromQL-Abfragen verwenden, um beide Messwerte in einem einzelnen Diagramm grafisch darzustellen.
kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}und
kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
Wenn Sie eine Benachrichtigung über einen fehlgeschlagenen oder angehaltenen StatefulSet-Rollout senden möchten, können Sie den folgenden PromQL-Ausdruck verwenden:
( kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"} > kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"} ) and ( changes(kube_statefulset_status_replicas_updated{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}[10m]) == 0 )
Einige Abfrage- und Benachrichtigungsausdrücke in diesem Abschnitt wurden aus der Datei kubernetes-apps.yaml
im Repository der Prometheus-Community-Kubernetes-Helm-Diagramme auf GitHub übernommen.
DaemonSet-Messwerte
Ein DaemonSet ist ein Controller, der dafür sorgt, dass eine Reihe von Knoten eine Kopie eines Pods ausführt. Wenn einem Cluster beispielsweise Knoten hinzugefügt werden, fügt das DaemonSet den Knoten Pods hinzu. Dieser Controller ist nützlich, um dafür zu sorgen, dass bestimmte Prozesse auf jedem Knoten ausgeführt werden.
Tabelle mit DaemonSet-Messwerten
Mit den DaemonSet-Messwerten können Sie das Verhalten des Controllers beobachten und melden. Die folgende Tabelle zeigt die im Kube State Metrics-Paket verfügbaren Messwerte:
Die Cloud Monitoring-Messwertnamen in dieser Tabelle müssen das Präfix prometheus.googleapis.com/
haben. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen.
PromQL-Messwertname Cloud Monitoring-Messwertname |
|
---|---|
Art, Typ, Einheit
Überwachte Ressourcen Erforderliche GKE-Version |
Beschreibung Labels |
kube_daemonset_status_desired_number_scheduled kube_daemonset_status_desired_number_scheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der Knoten, auf denen der Daemon-Pod ausgeführt werden soll.
Alle 30 Sekunden wird eine Stichprobe erstellt.daemonset : daemonset.
|
kube_daemonset_status_number_misscheduled kube_daemonset_status_number_misscheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der Knoten, auf denen ein Daemon-Pod ausgeführt wird, aber nicht ausgeführt werden sollte. Alle 30 Sekunden wird eine Stichprobe erstellt.daemonset : daemonset.
|
kube_daemonset_status_number_ready kube_daemonset_status_number_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der Knoten, auf denen der Daemon-Pod ausgeführt werden soll und auf denen mindestens ein Daemon-Pod ausgeführt werden soll. Alle 30 Sekunden wird eine Stichprobe erstellt.daemonset : daemonset.
|
kube_daemonset_status_updated_number_scheduled kube_daemonset_status_updated_number_scheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Anzahl der Knoten, auf denen ein aktualisierter Daemon-Pod ausgeführt wird.
Alle 30 Sekunden wird eine Stichprobe erstellt.daemonset : daemonset.
|
Weitere Informationen finden Sie unter DaemonSet-Messwerte.
Beispielabfragen für DaemonSet-Messwerte
Sie können Diagramme und Benachrichtigungsrichtlinien für einzelne DaemonSets erstellen, indem Sie DaemonSet-Messwerte nach Cluster, Namespace und Namen des DaemonSets filtern.
Wenn Sie beispielsweise die Anzahl der verfügbaren Replikate mit der erwarteten Anzahl von Replikaten in einem einzelnen DaemonSet vergleichen möchten, können Sie die folgenden PromQL-Abfragen verwenden, um beide Messwerte in einem einzelnen Diagramm grafisch darzustellen:
kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonsetset=DAEMONSET"}und
kube_daemonset_status_desired_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset=DAEMONSET"}
Wenn Sie eine Benachrichtigung über einen fehlgeschlagenen oder angehaltenen DaemonSet-Rollout senden möchten, können Sie den folgenden PromQL-Ausdruck verwenden:
( ( kube_daemonset_status_number_misscheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} != 0 ) or ( kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} != kube_daemonset_status_desired_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} ) ) and ( changes(kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"}[5m]) == 0 )
Einige Abfrage- und Benachrichtigungsausdrücke in diesem Abschnitt wurden aus der Datei kubernetes-apps.yaml
im Repository der Prometheus-Community-Kubernetes-Helm-Diagramme auf GitHub übernommen.
HorizontalPodAutoscaler-Messwerte
Ein HorizontalPodAutoscaler (HPA) ist ein Controller, der als Reaktion auf einen bestimmten Messwert wie die CPU- oder Arbeitsspeicherauslastung regelmäßig die Anzahl der Pods in einer Arbeitslast ändert, z. B. ein Deployment oder StatefulSet. Wenn Sie die Anzahl der für eine Arbeitslast verfügbaren Pods ändern, bleibt die Arbeitslast reaktionsschnell, aber effizient.
Weitere Informationen zu HPAs finden Sie unter Details zu einem horizontalen Pod-Autoscaling ansehen.
Tabelle der HPA-Messwerte
Mit den HorizontalPodAutoscaler-Messwerten können Sie das Verhalten des Controllers überwachen und melden. Die folgende Tabelle zeigt die im Kube State Metrics-Paket verfügbaren Messwerte:
Die Cloud Monitoring-Messwertnamen in dieser Tabelle müssen das Präfix prometheus.googleapis.com/
haben. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen.
PromQL-Messwertname Cloud Monitoring-Messwertname |
|
---|---|
Art, Typ, Einheit
Überwachte Ressourcen Erforderliche GKE-Version |
Beschreibung Labels |
kube_horizontalpodautoscaler_spec_max_replicas kube_horizontalpodautoscaler_spec_max_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Obergrenze für die Anzahl der Pods, die vom Autoscaling festgelegt werden können. Sie darf nicht kleiner als MinReplicas sein.
Alle 30 Sekunden wird eine Stichprobe erstellt.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_spec_min_replicas kube_horizontalpodautoscaler_spec_min_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Unteres Limit für die Anzahl der Pods, die vom Autoscaling festgelegt werden können (Standardeinstellung: 1).
Alle 30 Sekunden wird eine Stichprobe erstellt.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_spec_target_metric kube_horizontalpodautoscaler_spec_target_metric/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Messwertspezifikationen, die von diesem Autoscaling bei der Berechnung der gewünschten Replikatanzahl verwendet werden.
Alle 30 Sekunden wird eine Stichprobe erstellt.horizontalpodautoscaler : horizontalpodautoscaler.
metric_name : metric_name.
metric_target_type : metric_target_type.
|
kube_horizontalpodautoscaler_status_condition kube_horizontalpodautoscaler_status_condition/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Die Bedingung dieses Autoscalings.
Alle 30 Sekunden wird eine Stichprobe erstellt.condition : condition.
horizontalpodautoscaler : horizontalpodautoscaler.
namespace : namespace.
status : status.
|
kube_horizontalpodautoscaler_status_current_replicas kube_horizontalpodautoscaler_status_status_current_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Aktuelle Anzahl der Replikate der Pods, die durch dieses Autoscaling verwaltet werden.
Alle 30 Sekunden wird eine Stichprobe erstellt.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_status_desired_replicas kube_horizontalpodautoscaler_status_desired_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Gewünschte Anzahl von Replikaten von Pods, die durch dieses Autoscaling verwaltet werden.
Alle 30 Sekunden wird eine Stichprobe erstellt.horizontalpodautoscaler : horizontalpodautoscaler.
|
Weitere Informationen finden Sie unter Messwerte für horizontales Pod-Autoscaling.
Beispielabfragen für HPA-Messwerte
Wenn Sie beispielsweise feststellen möchten, ob das HPA die maximale Anzahl an Replikaten fast erreicht hat, können Sie das folgende Verhältnis grafisch darstellen:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} / kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Wenn das HPA mit der maximalen Anzahl von Replikaten ausgeführt wird, sollten Sie die Spezifikation für die maximale Anzahl von Pods erhöhen. Mit dem folgenden PromQL-Ausdruck können Sie eine Benachrichtigung über diesen Fall erstellen:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} == kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Sie können auch die Werte der Messwerte kube_horizontalpodautoscaler_status_current_replicas
und kube_horizontalpodautoscaler_status_desired_replicas
vergleichen, um festzustellen, ob es eine Differenz zwischen der aktuellen und der erforderlichen Anzahl von Replikaten gibt. Ein Unterschied kann auf eine Ressourceneinschränkung im Cluster hinweisen. Der folgende PromQL-Ausdruck sucht nach Unterschieden zwischen der aktuellen Anzahl von Replikaten und der erforderlichen, minimalen und maximalen Anzahl von Replikaten sowie Änderungen in der aktuellen Anzahl von Replikaten:
(kube_horizontalpodautoscaler_status_desired_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} != kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and (kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} > kube_horizontalpodautoscaler_spec_min_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and (kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} < kube_horizontalpodautoscaler_spec_max_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and changes(kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}[15m]) == 0
Anhand der Labels condition
und status
für den Messwert kube_horizontalpodautoscaler_status_condition
können Sie auch erkennen, wann HPAs in verschiedenen Fehlermodi ausgeführt werden. Beispiele:
- Die Bedingung
ScalingLimited
und der Statustrue
geben an, dass das HPA entweder an die minimale oder maximale Replikatanzahl gebunden ist:kube_horizontalpodautoscaler_status_condition{status="true", condition="ScalingLimited"} == 1
Die Bedingung
AbleToScale
und der Statusfalse
geben an, dass das HPA Probleme beim Abrufen oder Aktualisieren von Skalierungen hat:kube_horizontalpodautoscaler_status_condition{status="false", condition="AbleToScale"} == 1
Die Bedingung
ScalingActive
und der Statusfalse
geben an, dass das HPA deaktiviert ist oder keine neue Skalierung berechnen kann:kube_horizontalpodautoscaler_status_condition{status="false", condition="ScalingActive"} == 1
Einige Abfrage- und Benachrichtigungsausdrücke in diesem Abschnitt wurden aus der Datei kubernetes-apps.yaml
im Repository der Prometheus-Community-Kubernetes-Helm-Diagramme auf GitHub übernommen.