In diesem Dokument wird beschrieben, wie Sie benutzerdefinierte und externe Messwerte abrufen und verwenden, um Pods horizontal zu skalieren.
Zum Abrufen der Messwerte können Sie einen von GKE verwalteten Messwertadapter verwenden. Diese verwaltete Lösung ist sowohl für Messwerte in Cloud Monitoring, die mit PromQL abgefragt werden können, als auch für bestimmte benutzerdefinierte Pod-Messwerte verfügbar, die über einen HTTP-Endpunkt im Prometheus-Format bereitgestellt werden.
Der Autoscaler für Arbeitslasten kann diese Daten dann verwenden, um Arbeitslasten effizienter zu skalieren. Sie können diese Funktion beispielsweise verwenden, um die Warteschlangentiefe oder die Cacheauslastung zu überwachen und dann dem Autoscaler zu erlauben, die Anzahl der Pods zu erhöhen oder zu verringern. Im vLLM-Beispiel ist vllm:gpu_cache_usage_perc eine Metrik, die sich für die Überwachung der Cache-Auslastung eignet.
Als Alternative zum Adapter für verwaltete Messwerte können Sie einen beliebigen Messwert für das Autoscaling verwenden. Dazu müssen Sie einen Messwertadapter manuell konfigurieren, um Messwerte an einen Autoscaler zu senden. Dieser Workflow umfasst die Installation eines Drittanbieteradapters, z. B. des Stackdriver-Adapters, und die Konfiguration von Berechtigungen. Ein Beispiel finden Sie in der Anleitung Pod-Autoscaling anhand von Messwerten optimieren.
Im weiteren Verlauf dieses Dokuments geht es um den verwalteten Messwertadapter.
Messwerte abrufen
Sie können Messwerte mit dem Adapter für verwaltete Messwerte auf folgende Arten abrufen:
- Benutzerdefinierte Pod-Messwerte, die von Pods ausgegeben werden, können innerhalb des Clusters abgerufen werden. Diese Messwerte können für das Autoscaling verwendet werden, ohne dass ein Überwachungssystem wie Cloud Monitoring erforderlich ist.
- Benutzerdefinierte Pod-Messwerte, die in Cloud Monitoring gespeichert sind, können mit einer PromQL-Abfrage abgerufen werden. Diese Messwerte werden von Pods ausgegeben und in Cloud Monitoring exportiert, in der Regel mit Google Cloud Managed Service for Prometheus. Im Vergleich zur vorherigen Methode können Sie mit diesem Ansatz PromQL-Funktionen wie das Berechnen von Perzentilen oder das Lesen von Verlaufsdaten verwenden.
- Externe Messwerte können mit einer PromQL-Abfrage aus Cloud Monitoring abgerufen werden.
Nachdem Sie den Messwert abgerufen haben, verweisen Sie im HorizontalPodAutoscaler-Objekt darauf. Weitere Informationen finden Sie im Abschnitt Messwerte im horizontalen Pod-Autoscaler verwenden.
Eine Übersicht über das Autoscaling anhand von Messwerten finden Sie unter Autoscaling von Arbeitslasten anhand von Messwerten.
Benutzerdefinierte Messwerte im Cluster abrufen
Benutzerdefinierte Messwerte stammen von dem Dienst oder der Anwendung, die Sie ausführen. Ein Beispiel für bereitgestellte Messwerte finden Sie unter Messwerte, die von der vLLM Engine bereitgestellt werden.
Voraussetzungen
Für die Pods gelten die folgenden Anforderungen:
- GKE 1.35.1-gke.1396000 oder höher mit Clustern im Rapid Channel.
- Verwenden Sie horizontales Pod-Autoscaling mit dem Leistungsprofil.
Für die Messwerte gelten die folgenden Anforderungen:
- Die Messwerte müssen von Pods in der Arbeitslast ausgegeben werden, die automatisch skaliert wird.
- Messwerte müssen über einen HTTP-Endpunkt zugänglich sein. Der Endpunktpfad ist standardmäßig
/metrics. - Messwerte müssen gemäß dem Prometheus-Standard formatiert sein.
- Es werden nur Messwerte vom Typ „Zähler“ unterstützt.
- Labelnamen in Pod-Labelselektoren dürfen keine Sonderzeichen enthalten. Es werden nur Buchstaben (Klein- oder Großbuchstaben) von a bis z, Ziffern, Bindestriche und Unterstriche unterstützt.
- Wenn Sie nach Messwertlabels filtern, muss der Labelschlüssel dem regulären Ausdruck
^[a-zA-Z_][a-zA-Z0-9_]*entsprechen (mit einem Buchstaben oder Unterstrich beginnen und nur Buchstaben, Zahlen oder Unterstriche enthalten). - Pro Cluster können maximal 20 eindeutige Messwerte verfügbar gemacht werden.
Messwert definieren
Wählen Sie einen Messwert aus, der verfügbar gemacht werden soll. Sie können jeden Messwert auswählen, der von Ihrer Arbeitslast bereitgestellt wird und die im vorherigen Abschnitt aufgeführten Anforderungen erfüllt.
Wenn für Ihre Arbeitslast mehrere Messwerte mit demselben Namen, aber unterschiedlichen Labels verfügbar sind, fügen Sie einen Label-Filter hinzu, damit nur einer ausgewählt wird.
Fügen Sie die folgende benutzerdefinierte Ressource hinzu und ersetzen Sie die Details, die für Ihren Messwert und Pod spezifisch sind:
apiVersion: autoscaling.gke.io/v1beta1 kind: AutoscalingMetric metadata: name: NAME namespace: NAMESPACE spec: metrics: - pod: selector: matchLabels: APP_LABEL_NAME: APP_LABEL_VALUE containers: - endpoint: port: METRIC_PORT path: METRIC_PATH metrics: - gauge: name: METRIC_NAME prometheusMetricName: METRIC_PROMETHEUS_NAMEErsetzen Sie die folgenden Werte entsprechend Ihrer Arbeitslast:
NAME: Der Name des AutoscalingMetric-Objekts.NAMESPACE: der Namespace, in dem sich die Pods befinden.APP_LABEL_NAMEundAPP_LABEL_VALUE: Der Labelname und -wert, die mit den Pods übereinstimmen, die den Messwert ausgeben.METRIC_PORT: die Portnummer.METRIC_PATH: Der Pfad zum Messwert. Prüfen Sie den von Ihrem Dienst oder Ihrer Anwendung verwendeten Pfad. Dieser Pfad ist oft/metrics.METRIC_NAME: Der Name des Messwerts, den Sie bereitstellen. Der Name muss dem regulären Ausdruck^[a-z]([-a-z0-9]*[a-z0-9])?entsprechen und darf maximal 63 Zeichen lang sein. Das bedeutet, dass das erste Zeichen ein Kleinbuchstabe sein muss. Alle folgenden Zeichen müssen Bindestriche, Kleinbuchstaben oder Ziffern sein. Das letzte Zeichen darf jedoch kein Bindestrich sein.Optional:
METRIC_PROMETHEUS_NAME: Der Prometheus-Messwertname, der vom Pod bereitgestellt wird. Mit diesem Feld können Sie den Messwert umbenennen, z. B. weil der vom Pod bereitgestellte Messwertname nicht den vom Autoscaler festgelegten Namensbeschränkungen entspricht.Weitere Informationen zu Namenseinschränkungen finden Sie unter Einschränkungen für horizontales Pod-Autoscaling. Sie können Messwerte auch mit Messwertlabels filtern.
Wenden Sie das Manifest mit dem folgenden Befehl an:
kubectl apply -f FILE_NAME_AUTOSCALING_METRIC.yamlErsetzen Sie
FILE_NAME_AUTOSCALING_METRICdurch den Namen der YAML-Datei.Prüfen Sie die Messwertdefinition und rufen Sie den Messwertnamen ab, der für das HorizontalPodAutoscaler-Objekt verwendet werden soll:
Führen Sie den Befehl
kubectl describefür die benutzerdefinierte Ressource „AutoscalingMetric“ aus:kubectl describe autoscalingmetric NAME -n NAMESPACEErsetzen Sie Folgendes:
NAME: Der Name des AutoscalingMetric-Objekts.NAMESPACE: Der Namespace des AutoscalingMetric-Objekts.
Sehen Sie sich das Feld
Statusan. Wenn keine Fehler aufgeführt sind, ist das Objekt gültig.Kopieren Sie den Namen in das Feld
HPA Name. Dies ist der Name, den Sie dem HorizontalPodAutoscaler-Objekt hinzufügen. Dieser Name hat das folgende Format:autoscaling.gke.io|NAME|METRIC_NAME.
Der Messwert ist jetzt im AutoscalingMetric-Objekt definiert. Wenn Sie mit diesem Messwert automatisch skalieren möchten, müssen Sie in einem HorizontalPodAutoscaler-Objekt darauf verweisen. Weitere Informationen finden Sie im Abschnitt Messwerte im HorizontalPodAutoscaler-Objekt verwenden.
Wenn Sie die benutzerdefinierte Ressource hinzufügen, wird der Messwert an die Autoscaling API übertragen. Der Messwert wird alle paar Sekunden gelesen und an das Autoscaling für Arbeitslasten gesendet.
Messwerte mit Messwertlabels filtern
Das Filtern von Messwerten mit Messwertlabels ist in GKE-Version 1.36.0-gke.1759000 oder höher verfügbar.
Die von Ihren Arbeitslasten ausgegebenen Messwerte enthalten oft Labels. Labels sind Schlüssel/Wert-Paare, mit denen Sie einem Wert Dimensionen hinzufügen können. Ein Messwert, der die Anzahl der Anfragen an einen HTTP-Endpunkt zählt, der nach Methode und Umgebung aufgeschlüsselt wird, kann beispielsweise Labels verwenden, um diesen Kontext anzugeben. Ein Beispiel dafür könnte so aussehen:
http_requests_total{method="GET", env="prod"} 11111
http_requests_total{method="PUT", env="staging"} 22222
Mit Label-Filtern können Sie dafür sorgen, dass Ihre Messwertspezifikation genau einem Messwert entspricht. Wenn Sie beispielsweise nur den ersten Messwert im vorherigen Beispiel auswählen möchten, verwenden Sie die folgende Spezifikation für den Messwert „AutoscalingMetric“ gauge:
apiVersion: autoscaling.gke.io/v1beta1
kind: AutoscalingMetric
metadata:
name: filter-sample
spec:
# Several lines are omitted here.
metrics:
- gauge:
name: http_requests_total
filter:
matchLabels:
method: GET
env: prod
Die Schlüssel der Schlüssel-Wert-Paare von matchLabels müssen dem regulären Ausdruck ^[a-zA-Z_][a-zA-Z0-9_]* entsprechen. Das bedeutet, sie müssen mit einem Buchstaben oder einem Unterstrich beginnen und dürfen nur Buchstaben, Ziffern oder Unterstriche enthalten.
Benutzerdefinierte oder externe Messwerte aus Cloud Monitoring abrufen
Sie können Messwerte aus Cloud Monitoring abrufen, um Ihre Arbeitslasten zu skalieren. GKE unterstützt das Abrufen von zwei Arten von Messwerten aus Cloud Monitoring:
- Benutzerdefinierte Messwerte: Mit diesem Typ können Sie PromQL-Funktionen wie das Berechnen von Perzentilen oder das Lesen von Verlaufsdaten auf die Messwerte anwenden, die von Ihren Cluster-Workloads ausgegeben werden.
- Externe Messwerte: Mit diesem Typ können Sie basierend auf einer Entität außerhalb des Clusters skalieren, z. B. auf der Anzahl der ausstehenden Nachrichten in einem Pub/Sub-Abo.
Andernfalls rufen Sie benutzerdefinierte Messwerte aus dem Cluster ab.
Voraussetzungen
- GKE-Version 1.36.2-gke.2771000 oder höher.
- Messwerte müssen in Cloud Monitoring gespeichert werden. Sie können beispielsweise Google Cloud Managed Service for Prometheus verwenden.
- Pro Cluster werden maximal 100 Messwerte unterstützt. Dieses Limit gilt für benutzerdefinierte und externe Messwerte zusammen.
- Die Messwerte in Cloud Monitoring müssen sich im selben Google Cloud Projekt wie der Cluster befinden, der automatisch skaliert wird.
Messwert definieren
Sie verwenden eine YAML-Datei, um die Messwerte zu definieren, einschließlich der spezifischen PromQL-Abfrage.
Wählen Sie eine der folgenden Konfigurationen aus, je nachdem, ob Sie einen benutzerdefinierten Messwert oder einen externen Messwert abrufen:
Erstellen Sie ein AutoscalingMetric-Objekt und definieren Sie den abzurufenden Messwert.
Benutzerdefinierter Messwert (Pods)
apiVersion: autoscaling.gke.io/v1beta1 kind: AutoscalingMetric metadata: name: NAME namespace: NAMESPACE spec: metrics: - promql: name: METRIC_NAME query: PROMQL_QUERY type: Pods # Specifies that the metric is associated with Pods. # metricLabels are optional, default to the labels used by Google # Cloud Managed Service for Prometheus. The defaults are used # below. metricLabels: podName: "pod" namespace: "namespace" clusterName: "cluster" location: "location" projectId: "project_id"Ersetzen Sie Folgendes:
NAME: Der Name des AutoscalingMetric-Objekts.NAMESPACE: Der Namespace des AutoscalingMetric-Objekts, der mit dem Namespace der Arbeitslast übereinstimmen muss, die Sie skalieren möchten.METRIC_NAME: Der Name des Messwerts, der vom HorizontalPodAutoscaler-Objekt verwendet wird.PROMQL_QUERY: die PromQL-Abfrage, mit der der Messwert abgefragt wird. Die PromQL-Abfrage muss einen Vektor mit einem Eintrag pro Pod in der automatisch skalierten Ressource zurückgeben, z. B. einen Eintrag pro Pod in einem Deployment.
Sie können mehr als einen Messwert in einem einzelnen AutoscalingMetric-Manifest definieren, indem Sie dem Array
metricszusätzlichepromql-Einträge hinzufügen.In diesem Manifest gilt Folgendes:
- Das Feld
type: Podsgibt an, dass die Messwerte von Pods ausgegeben werden. Optional: Die
metricLabels-Felder sind die Labelnamen im PromQL-Abfrageergebnis, in denen die Ressourcendetails (z. B. Pod-Name, Namespace oder Clusterinformationen) aufgeführt sind. Der benutzerdefinierte Messwert, der von einem Pod ausgegeben wird, muss ein Label enthalten, das mit dem FeldpodNameübereinstimmt und angibt, welchem Pod der Messwert zugeordnet ist. Dieses Label wird automatisch konfiguriert, wenn Sie Messwerte mit Google Cloud Managed Service for Prometheus an Cloud Monitoring senden.Wenn diese Felder nicht im AutoscalingMetric-Objekt angegeben sind, werden die folgenden Standardwerte verwendet, um die Informationen im Label zu finden. Diese Standardwerte sind dieselben Labelnamen, die von Google Cloud Managed Service for Prometheus konfiguriert werden:
podName: "pod"namespace: "namespace"clusterName: "cluster"location: "location"projectId: "project_id"
Externer Messwert
apiVersion: autoscaling.gke.io/v1beta1 kind: AutoscalingMetric metadata: name: NAME namespace: NAMESPACE spec: metrics: - promql: name: METRIC_NAME query: PROMQL_QUERY type: External # Optional, default is 'External'Ersetzen Sie Folgendes:
NAME: Der Name des AutoscalingMetric-Objekts.NAMESPACE: Der Namespace des AutoscalingMetric-Objekts, der mit dem Namespace der Arbeitslast übereinstimmen muss, die Sie skalieren möchten.METRIC_NAME: der Name des Messwerts, der vom HPA verwendet wird.PROMQL_QUERY: die PromQL-Abfrage, mit der der Messwert abgefragt wird. Die PromQL-Abfrage muss einen skalaren Wert oder einen Vektor mit einem eindeutigen Eintrag zurückgeben.
Prüfen Sie die PromQL-Abfragen in Cloud Monitoring, um sicherzustellen, dass die erwarteten Messwerte zurückgegeben werden. Es ist einfacher, die Abfragen bei der Einrichtung zu überprüfen, als später unerwartete Verhaltensweisen zu beheben.
Informationen zum Überprüfen der Abfragen finden Sie im folgenden Abschnitt: PromQL-Abfragen überprüfen.
Wenden Sie das AutoscalingMetric-Manifest auf den Cluster an:
kubectl apply -f MANIFEST_FILE.yamlErsetzen Sie
MANIFEST_FILEdurch den Namen der YAML-Datei.Prüfen Sie die Messwertdefinition und rufen Sie den Messwertnamen ab, der für das HorizontalPodAutoscaler-Objekt verwendet werden soll:
Führen Sie den Befehl
kubectl describefür die benutzerdefinierte Ressource „AutoscalingMetric“ aus:kubectl describe autoscalingmetric NAME -n NAMESPACEErsetzen Sie Folgendes:
NAME: Der Name des AutoscalingMetric-Objekts.NAMESPACE: Der Namespace des AutoscalingMetric-Objekts.
Sehen Sie sich das Feld
Statusan. Wenn keine Fehler aufgeführt sind, ist das Objekt gültig.Kopieren Sie den Namen in das Feld
HPA Name. Dies ist der Name, den Sie dem HorizontalPodAutoscaler-Objekt hinzufügen. Dieser Name hat das folgende Format:autoscaling.gke.io|NAME|METRIC_NAME.
Der Messwert ist jetzt im AutoscalingMetric-Objekt definiert. Wenn Sie mit diesem Messwert automatisch skalieren möchten, müssen Sie in einem HorizontalPodAutoscaler-Objekt darauf verweisen. Weitere Informationen finden Sie im Abschnitt Messwerte im HorizontalPodAutoscaler-Objekt verwenden.
Messwerte im HorizontalPodAutoscaler-Objekt verwenden
Erstellen Sie ein HorizontalPodAutoscaler-Objekt. Der Messwerttyp des HorizontalPodAutoscaler muss mit dem Wert des Felds
typeübereinstimmen, das in der benutzerdefinierten Ressource „AutoscalingMetric“ definiert ist. Wählen Sie je nach Messwerttyp eine der folgenden Konfigurationen aus:Option 1: Externer Messwert
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: HPA_NAME namespace: NAMESPACE spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: DEPLOYMENT_NAME minReplicas: MIN_REPLICAS maxReplicas: MAX_REPLICAS metrics: - type: External external: metric: name: autoscaling.gke.io|NAME|METRIC_NAME target: type: AverageValue averageValue: AVERAGE_VALUEOption 2: Messwert für Pods
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: HPA_NAME namespace: NAMESPACE spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: DEPLOYMENT_NAME minReplicas: MIN_REPLICAS maxReplicas: MAX_REPLICAS metrics: - type: Pods pods: metric: name: autoscaling.gke.io|NAME|METRIC_NAME target: type: AverageValue # This is the only supported target type averageValue: AVERAGE_VALUEErsetzen Sie Folgendes:
HPA_NAME: Der Name des HorizontalPodAutoscaler-Objekts.NAMESPACE: Der Namespace des HorizontalPodAutoscaler-Objekts, der mit dem Namespace der Arbeitslast und der AutoscalingMetric-Ressource übereinstimmen muss.DEPLOYMENT_NAME: Der Name der Bereitstellung der Arbeitslast, die Sie skalieren möchten.MIN_REPLICAS: die Mindestanzahl der ausgeführten Pods.MAX_REPLICAS: die maximale Anzahl von ausgeführten Pods.NAME: Der Name der benutzerdefinierten Ressource „AutoscalingMetric“, die Sie erstellt haben.METRIC_NAME: Der Name des Messwerts, der in der AutoscalingMetric-Ressource definiert ist.AVERAGE_VALUE: Der Zielmesswert, bei dem das Autoscaling die Arbeitslast skaliert.
Beachten Sie beim Erstellen eines eigenen HorizontalPodAutoscaler-Objekts Folgendes:
- Die Objekte „AutoscalingMetric“, „Deployment“ und „HorizontalPodAutoscaler“ müssen sich im selben Namespace befinden.
- Im vorherigen Beispiel wird das Feld/Wert-Paar
type: AverageValueverwendet.type: Valuewird auch für externe Messwerte unterstützt. - Das vorherige Beispiel verwendet ein Deployment-Objekt nur als Beispiel. Sie können auch jedes Objekt automatisch skalieren, das von HorizontalPodAutoscaler-Objekten unterstützt wird, z. B. ein ReplicaSet-Objekt.
Wenden Sie das HorizontalPodAutoscaler-Manifest an:
kubectl apply -f HPA_MANIFEST_FILE.yamlErsetzen Sie
HPA_MANIFEST_FILEdurch den Namen der YAML-Datei.
Fehlerbehebung bei Messwerten, die für das Autoscaling abgerufen werden
Wenn Sie Probleme beim Abrufen von Messwerten beheben möchten, können Sie die Logs oder den Status der benutzerdefinierten Ressource „AutoscalingMetric“ prüfen.
Der Autoscaling-Messwertadapter hat keine Replikate.
Wenn Sie das autoscaling-metrics-adapter-Deployment in kube-system untersuchen, stellen Sie möglicherweise fest, dass es keine Replikate hat.
Standardmäßig wird der Adapter mit null Replikaten ausgeführt, um Clusterressourcen zu schonen. Das ist ganz normal. Die Bereitstellung wird nur auf ein Replikat skaliert, wenn im Cluster eine benutzerdefinierte Ressource vom Typ „AutoscalingMetric“ vorhanden ist, für die eine PromQL-Verarbeitung erforderlich ist.
Wenn Sie ein AutoscalingMetric-Objekt mit einer PromQL-Abfrage konfiguriert haben, der Adapter aber nicht skaliert wurde, prüfen Sie, ob das Objekt erfolgreich im Cluster erstellt wurde.
Logs prüfen
Wenn Sie Probleme mit dem Controller finden möchten, der für das Abrufen von Messwerten aus Cloud Monitoring zuständig ist, können Sie die zugehörigen Logs prüfen.
Sie können die Logs in der Google Cloud Console aufrufen:
Zur Seite „Log-Explorer“
Geben Sie im Bereich „Abfrage“ die folgende Abfrage ein:
resource.type="k8s_container" resource.labels.namespace_name="kube-system" resource.labels.container_name="autoscaling-metrics-adapter"
Alternativ können Sie die Logs mit kubectl aufrufen. Führen Sie dazu den folgenden Befehl aus:
kubectl logs deployment.apps/autoscaling-metrics-adapter -n kube-system
AutoscalingMetric-Status prüfen
Sie können den Status der benutzerdefinierten Ressource „AutoscalingMetric“ prüfen, um nach Konfigurationsfehlern zu suchen.
Prüfen Sie die benutzerdefinierte Ressource „AutoscalingMetric“:
kubectl describe autoscalingmetric NAME -n NAMESPACEErsetzen Sie Folgendes:
NAME: Der Name der benutzerdefinierten Ressource „AutoscalingMetric“, die Sie erstellt haben.NAMESPACE: Der Namespace der benutzerdefinierten Ressource.
Details zu konfigurierten Messwerten finden Sie im Feld
Status. Dazu gehören alle Warnungen zu Konfigurationsfehlern und der genaue Name des Messwerts, wie er im HorizontalPodAutoscaler-Objekt angezeigt werden sollte.Hier ein Beispiel für einen gültigen Status:
Name: sample-metric Namespace: default Labels: <none> Annotations: <none> API Version: autoscaling.gke.io/v1beta1 Kind: AutoscalingMetric Metadata: Creation Timestamp: 2026-08-10T14:41:58Z Generation: 1 Resource Version: 1786372918604351020 UID: c3f012a9-8f25-4399-ac91-12ae8f4426d7 Spec: Metrics: Promql: Name: pubsub_unacked Query: sum(pubsub_subscription_num_undelivered_messages) Type: External Status: Metric Statuses: Hpa Name: autoscaling.gke.io|sample-metric|pubsub_unacked Name: pubsub_unacked Events: <none>Das folgende Beispiel zeigt einen Status mit einem Konfigurationsfehler:
Name: bad-metric Namespace: default Labels: <none> Annotations: <none> API Version: autoscaling.gke.io/v1beta1 Kind: AutoscalingMetric Metadata: Creation Timestamp: 2026-08-10T14:42:40Z Generation: 1 Resource Version: 1786372960414079010 UID: a47d3ed4-f6f2-4c2c-9341-0de4e9752c3c Spec: Metrics: Promql: Name: duplicate_metric Query: sum(up) Type: External Promql: Name: duplicate_metric Query: avg(up) Type: External Status: Metric Statuses: Errors: Multiple metrics defined with the same name. Name: duplicate_metric Events: <none>
PromQL-Abfragen prüfen
Wenn Sie Messwerte aus Cloud Monitoring mit einer PromQL-Abfrage abrufen, kann ein Problem mit der Abfrage zu Fehlern beim Abrufen des Messwerts oder zum Abrufen eines unerwarteten Werts führen. Wenn Sie beispielsweise erwarten, dass ein Prozentsatz als Wert zwischen 1 und 100 zurückgegeben wird, Sie aber stattdessen einen Wert zwischen 0 und 1 erhalten, verhält sich das resultierende Autoscaling unerwartet.
Sie können die PromQL-Abfragen in Cloud Monitoring testen, um zu prüfen, ob die erwarteten Messwerte zurückgegeben werden.
So überprüfen Sie die Abfragen:
Wechseln Sie in der Google Cloud Console zur Seite Metrics Explorer.
Wählen Sie oben im Bereich Query Builder den Tab PromQL aus.
Geben Sie im Abfrageeditor die PromQL-Abfrage ein, die Sie testen möchten.
Klicken Sie auf Abfrage ausführen, um die Messwerte im Diagramm zu sehen.
Nächste Schritte
- Eine Übersicht über das Autoscaling anhand von Messwerten finden Sie unter Autoscaling von Arbeitslasten anhand von Messwerten.
- Informationen zum Autoscaling anhand von Messwerten, die nicht mit einer PromQL-Abfrage definiert werden können, finden Sie unter Pod-Autoscaling anhand von Messwerten optimieren.