Autoscaling-Logs ansehen


Wenn Sie Autoscaling aktivieren, werden Skalierungsentscheidungen basierend auf den von Ihnen festgelegten Optionen vorgenommen. Jede Skalierungsentscheidung wird von Cloud Logging protokolliert. Lesen Sie diese Logs im Log-Explorer, um die Skalierungsentscheidungen des Autoscalings besser zu verstehen.

Im Log-Explorer sehen Sie folgende Ereignisse:

  • Autoscaling-Empfehlung zum Anpassen der Größe einer verwalteten Instanzgruppe (MIG). Wenn das Autoscaling eine neue empfohlene Größe für eine MIG berechnet, wird die Änderung der empfohlenen Größe in den Autoscaling-Logs beschrieben. Weitere Informationen finden Sie unter Größe des Logeintrags anpassen.
  • Änderungen beim Autoscaling-Status. Wenn beispielsweise das Autoscaling wie erwartet funktioniert, dann aber ein Problem auftritt, wird diese Statusänderung in den Autoscaling-Logs beschrieben. Siehe Logeintrag für die Statusänderung.

Vorbereitung

  • Lesen Sie die Dokumentation zum Autoscaling.
  • Sie benötigen ein aktives Autoscaling, dessen Logs Sie anzeigen möchten.
  • Lesen Sie die Informationen über die Verwendung des Log-Explorers.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich wie folgt bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Autoscaling-Logs ansehen

Zum Aufrufen von Autoscaling-Logs verwenden Sie die Google Cloud Console, die gcloud CLI oder REST.

Console

Wenn Sie das Autoscaling aktiviert haben, können Sie Autoscaling-Logs in der Google Cloud Console aufrufen.

  1. Rufen Sie die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Maximieren Sie das Drop-down-Menü Ressource und wählen Sie Autoscaling aus.

Sie können auch so die Seite Log-Explorer über Ihre MIG aufrufen:

  1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf den Namen der MIG, für die Sie die Logs aufrufen möchten.

  3. Klicken Sie auf den Tab Monitoring.

  4. Im Tab Monitoring befindet sich der Bereich Logs unten auf der Seite. Klicken Sie auf das Symbol am Ende dieses Steuerfelds, um das Steuerfeld zu öffnen.

  5. Klicken Sie zum Öffnen der Seite Log-Explorer in diesem Bereich auf das Symbol Im Log-Explorer ansehen. Der Log-Explorer wird mit einer Standardabfrage geöffnet, um alle Autoscaling-Logs der MIG abzurufen.

gcloud

Verwenden Sie den Befehl logging read, um alle Logs im Zusammenhang mit dem Autoscaling aufzurufen. Beispiel:

gcloud logging read "resource.type=autoscaler" --limit 10 \
    --format json

Geben Sie zum Aufrufen der Autoscaling-Logs einer bestimmten MIG den instance_group_manager_name so an:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm" \
    --limit 10 --format json

Geben Sie den Methodennamen compute.autoscalers.resize an, um die Logeinträge für Größenänderungen des Autoscalings aufzurufen:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.resize" \
    --limit 10 --format json

Geben Sie den Methodennamen compute.autoscalers.changeStatus an, um die Logeinträge für Statusänderungen des Autoscalings aufzurufen:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.changeStatus" \
    --limit 10 --format json

REST

Stellen Sie eine Anfrage an die Logging V2 API. Der Text der Anfrage muss den Parameter filter zum Suchen nach Logs und das project haben, für das Sie Logs aufrufen möchten. Hier ein Beispiel für eine Anfrage zum Abrufen einer Liste von Größenänderungen einer bestimmten MIG:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.resize",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

Anfrage zum Abrufen einer Liste von Statusänderungen einer bestimmten MIG:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.changeStatus",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

Logeintragsgröße anpassen

Wenn das Autoscaling eine empfohlene Größe für Ihre MIG berechnet, erstellt Compute Engine einen Logeintrag, der die neuen und alten empfohlenen Größen erfasst. Bei zonalen MIGs erfasst der Logeintrag auch den Grund für die Änderung der empfohlenen Größe.

Das folgende Beispiel zeigt einen Logeintrag für eine zonale MIG. In diesem Beispiel berechnet das Autoscaling anhand von vorausschauendem Autoscaling 3 VMs, um das CPU-Auslastungsziel von 35% zu erreichen. Die maximale Anzahl von Instanzen, die in der Autoscaling-Richtlinie konfiguriert sind, beträgt jedoch nur 2. Das Autoscaling begrenzt daher die empfohlene Größe auf 2.

    {
    insertId: "1l68z7sg4jw7kzo"
    logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload: {
      @type: "type.googleapis.com/google.cloud.audit.AuditLog"
      metadata: {
        @type: "type.googleapis.com/autoscaler.AutoscalerSizeChangeExplanation"
        autoscalingMode: "ON"
        autoscalingReason: {
          scalingLimit: {
            limitPolicy: {
              maxNumReplicas: 2
            }
            limitSize: 2
            name: "MAX_INSTANCES"
          }
          scalingSignal: {
            calculatedSize: 3
            calculationDetails: {
              servingSize: 1
              signalTarget: 0.35
              signalValue: 1.03533
            }
            name: "PREDICTED_CPU_UTILIZATION"
            signalPolicy: {
              coolDownPeriodSec: 15
              cpuUtilization: {
                predictiveMethod: "OPTIMIZE_AVAILABILITY"
                utilizationTarget: 0.35
              }
            }
          }
          summary: "The autoscaler's recommended size changed from 1 to 2
          because the autoscaler predicted that in 15 seconds the average CPU
          utilization across 1 serving instance will be 103.533%, which is above
          the utilization target of 35%. The calculated size was 3 to achieve
          the target CPU utilization but the size was limited by the maximum
          number of instances set in the autoscaling policy."
        }
        newSize: 2
        oldSize: 1
      }
      methodName: "compute.autoscalers.resize"
      resourceName: "projects/example-project/zones/us-east1-d/autoscalers/example-autoscaler"
      serviceName: "compute.googleapis.com"
    }
    receiveTimestamp: "2022-06-13T22:34:43.045973046Z"
    resource: {
      labels: {
        autoscaler_id: "1234567890123456789"
        autoscaler_name: "example-autoscaler"
        instance_group_manager_id: "1357908642148074125"
        instance_group_manager_name: "example-igm"
        location: "us-east1-d"
        project_id: "example-project"
      }
      type: "autoscaler"
    }
    severity: "INFO"
    timestamp: "2022-06-13T22:34:42.810216614Z"
    }

In der folgenden Tabelle werden die Felder aus dem Logeintrag beschrieben:

Attribut Wert
autoscalingMode Der Autoscaling-Modus zu dem Zeitpunkt, zu dem der Eintrag protokolliert wurde. Unabhängig vom Modus berechnet das Autoscaling die empfohlene Größe, die durch newSize im Log dargestellt wird. Je nach Autoscaling-Modus passt das Autoscaling die MIG so an:
  • ON: Das Autoscaling ändert die Größe der MIG in newSize.
  • OFF: Das Autoscaling passt die Größe der MIG nicht an.
  • ONLY_SCALE_OUT: Das Autoscaling passt die Größe der MIG nur dann an, wenn newSize größer als die Zielgröße der MIG ist.
autoscalingReason Details zum Grund für das Autoscaling. Dieses Feld wird nur für zonale MIGs angezeigt.
autoscalingReason.scalingLimit Details zum Autoscaling-Feature, das die calculatedSize begrenzt hat. Dies ist die Größe, die das Autoscaling basierend auf dem Autoscaling-Signal berechnet hat. Die Autoscaling-Features, die die calculatedSize begrenzen, sind die maximale oder minimale Anzahl von Instanzen, Einstellungen für die Herunterskalierung oder der Stabilisierungszeitraum. Wenn für calculatedSize kein Limit gilt, wird das Feld scalingLimit nicht in den Logs angezeigt.
autoscalingReason.scalingLimit.limitPolicy Die Konfiguration des Autoscaling-Features, das die calculatedSize begrenzt hat. Das Feld limitPolicy wird nicht festgelegt, wenn die Stabilisierung die calculatedSize begrenzt, da die Stabilisierung ein Standardfeature des Autoscalings ist.
autoscalingReason.scalingLimit.limitSize Die Anzahl der VMs, die auf dem Autoscaling-Feature basieren, das die calculatedSize begrenzt hat.
autoscalingReason.scalingLimit.name Der Name des Autoscaling-Features, das die calculatedSize eingeschränkt hat.
autoscalingReason.scalingSignal Details zum Autoscaling-Signal, das zur Berechnung der Anzahl von VMs verwendet wird, die die MIG haben sollte. Wenn die Autoscaling-Richtlinie mehrere Signale hat, berücksichtigt das Autoscaling das Signal, das die größte Anzahl von VMs erfordert.
autoscalingReason.scalingSignal.calculatedSize Die Anzahl der VMs, die die MIG basierend auf dem Autoscaling-Signal haben sollte. Wenn scalingLimit gilt, beschränkt das Autoscaling calculatedSize auf scalingLimit.limitSize.
autoscalingReason.scalingSignal.calculationDetails Details zur Bestimmung der calculatedSize.
  • servingSize: Die Anzahl der VMs in der MIG ohne die VMs, die sich noch in der Initialisierungsphase befinden.
  • signalTarget: Der Zielwert, den das Autoscaling für die CPU-Auslastung (in Echtzeit), die vorhergesagte CPU-Auslastung, die Load-Balancing-Auslastung oder einen Messwert, der für das Auslastungsziel konfiguriert wurde, verwendet.
  • singleInstanceAssignment: Wenn die Skalierung auf einem Messwert basiert, der die Gesamtmenge der auszuführenden Arbeit darstellt, ist singleInstanceAssignment die Arbeitsmenge, die jede VM bewältigen kann.
  • signalValue: Der Wert des Autoscaling-Signals. Wenn signalTarget festgelegt ist, vergleicht das Autoscaling signalValue mit signalTarget, um zu berechnen, wie viele VMs benötigt werden. Dies wird dargestellt durch calculatedSize.
autoscalingReason.scalingSignal.name Der Name des Autoscaling-Signals, anhand dessen das Autoscaling die die Anzahl der VMs berechnet hat, dargestellt durch calculatedSize im Log.
autoscalingReason.scalingSignal.signalPolicy Die Konfiguration des Autoscaling-Signals, anhand dessen das Autoscaling die calculatedSize bestimmt hat.
autoscalingReason.summary Eine Beschreibung des Grunds für das Autoscaling.
newSize Die aktuell empfohlene Größe der MIG. Je nach autoscalingMode passt das Autoscaling die Größe der MIG so an newSize an:
  • ON: Das Autoscaling ändert die Größe der MIG in newSize.
  • OFF: Das Autoscaling passt die Größe der MIG nicht an.
  • ONLY_SCALE_OUT: Das Autoscaling passt die Größe der MIG nur dann an, wenn newSize größer als die Zielgröße der MIG ist.
oldSize Die vorherige empfohlene Größe der MIG.

Informationen zu den anderen Feldern im Logeintrag finden Sie unter Format von Audit-Logeinträgen.

Logeintrag für die Statusänderung

Wenn sich der Status des Autoscalings ändert, erstellt Compute Engine einen Logeintrag, in dem die alten und neuen Statusmeldungen erfasst werden. Anhand dieser Statusmeldungen können Sie herausfinden, warum Ihr Autoscaling nicht wie erwartet funktioniert, oder Probleme beheben, die Ihnen aufgefallen sind. Einige der häufig auftretenden Statusmeldungen finden Sie unter Häufige Statusrückmeldungen.

Die folgenden Felder in protoPayload beschreiben die alten und neuen Status:

  • metadata.newStatus.details: Der neue Status des Autoscalings.
  • metadata.oldStatus.details: Der vorherige Status des Autoscalings.

Das folgende Beispiel zeigt einen Logeintrag, der eine Statusänderung beschreibt. In diesem Beispiel können Sie anhand der neuen Statusmeldung prüfen, ob das Load-Balancing richtig konfiguriert ist.

    {
      insertId: "ivho6kg4icqfio"
      logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload: {
        metadata: {
          @type: "type.googleapis.com/autoscaler.AutoscalerStatusChange"
          newStatus: {
            details: "The autoscaler is configured to scale based on a load
            balancing signal but the instance group has not received any
            utilization data from the load balancer or the utilization is
            constantly 0. Check that the load balancing configuration is
            working"
          }
          oldStatus: {
            details: "OK"
          },
          methodName: "compute.autoscalers.changeStatus"
          resourceName: "projects/example-project/zones/us-east1-b/autoscalers/example-autoscaler"
          serviceName: "compute.googleapis.com"
        }
        receiveTimestamp: "2022-06-08T03:54:12.332329320Z"
        resource: {
          labels: {
            autoscaler_id: "1234567890123456789"
            autoscaler_name: "example-autoscaler"
            instance_group_manager_id: "1357908642148074125"
            instance_group_manager_name: "example-igm"
            location: "us-east1-b"
            project_id: "example-project"
          }
          type: "autoscaler"
        }
        severity: "INFO"
        timestamp: "2022-06-08T03:54:10.675416812Z"
      }
    }

Informationen zu den anderen Feldern im Logeintrag finden Sie unter Format von Audit-Logeinträgen.

Nächste Schritte