Visualizza log del gestore della scalabilità automatica

Quando abiliti la scalabilità automatica, il gestore della scalabilità automatica prende decisioni di scalabilità in base alle opzioni che specifichi. Ogni decisione di scalabilità viene registrata da Cloud Logging. Leggi questi log in Esplora log per comprendere meglio le decisioni di scalabilità del gestore della scalabilità automatica.

Utilizzando Esplora log, puoi visualizzare eventi relativi a:

  • Consiglio del gestore della scalabilità automatica per il ridimensionamento di un gruppo di istanze gestite (MIG). Se il gestore della scalabilità automatica calcola una nuova dimensione consigliata per un gruppo di istanze gestite, la modifica della dimensione consigliata viene descritta nei log del gestore della scalabilità automatica. Consulta la pagina Ridimensionare la voce di log.
  • Modifiche dello stato del gestore della scalabilità automatica. Ad esempio, se il gestore della scalabilità automatica funzionava come previsto, ma poi si è verificato un problema, la modifica dello stato sarà descritta nei log del gestore della scalabilità automatica. Vedi Voce del log delle modifiche di stato.

Prima di iniziare

  • Leggi la documentazione relativa alla scalabilità automatica.
  • Disporre di un gestore della scalabilità automatica attivo per il quale vuoi visualizzare i log.
  • Scopri come utilizzare Esplora log.

Visualizza log del gestore della scalabilità automatica

Per visualizzare i log del gestore della scalabilità automatica, utilizza la console, l'interfaccia a riga di comando gcloud o l'API Cloud Logging.

console

Se hai attivato la scalabilità automatica, puoi visualizzare i log di scalabilità automatica in Google Cloud Console.

  1. Vai alla pagina Esplora log.

    Vai a Esplora log

  2. Apri il menu a discesa Risorsa e seleziona Gestore della scalabilità automatica.

Puoi anche accedere alla pagina Esplora log dal gruppo di istanze gestite come segue:

  1. Nella console, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic sul nome del gruppo di istanze gestite per cui vuoi visualizzare i log.

  3. Fai clic sulla scheda Monitoraggio.

  4. Nella scheda Monitoring, il riquadro Log si trova nella parte inferiore della pagina. Apri il riquadro facendo clic sull'icona alla fine.

  5. Per aprire la pagina Esplora log, fai clic sull'icona Visualizza nello strumento Esplora log in questo riquadro. Lo strumento Esplora log si apre con una query predefinita per recuperare tutti i log del gestore della scalabilità automatica del gruppo di istanze gestite.

gcloud

Per cercare tutti i log relativi alla scalabilità automatica, utilizza il comando logging read. Ad esempio:

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

Per visualizzare i log del gestore della scalabilità automatica di un gruppo di istanze specifiche, specifica instance_group_manager_name come segue:

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

Per visualizzare le voci di log relative alle azioni di ridimensionamento del gestore della scalabilità automatica, specifica il nome del metodo compute.autoscalers.resize:

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

Per visualizzare le voci di log relative alle modifiche dello stato del gestore della scalabilità automatica, specifica il nome del metodo compute.autoscalers.changeStatus:

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

Server

Invia una richiesta all'API Logging V2. Il corpo della richiesta deve contenere il parametro filter da utilizzare per la ricerca dei log e l'elemento project per cui vuoi visualizzare i log. Ad esempio, per effettuare una richiesta al fine di ottenere un elenco di azioni di ridimensionamento di un MIG specifico:

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"
  ]
}

Per fare una richiesta per ottenere un elenco di modifiche di stato per un MIG specifico:

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"
  ]
}

Ridimensiona voce di log

Quando il gestore della scalabilità automatica calcola una dimensione consigliata per il tuo gruppo di istanze gestite, Compute Engine crea una voce di log che acquisisce le dimensioni nuove e vecchie. Per i gruppi di istanze gestite a livello di zona, la voce di log acquisisce anche il motivo della modifica delle dimensioni consigliate.

Di seguito è riportato un esempio di voce di log per un gruppo di istanze gestite a livello di zona. In questo esempio, in base alla scalabilità automatica predittiva, il gestore della scalabilità automatica ha calcolato 3 VM per raggiungere il target di utilizzo della CPU di 35%. Tuttavia, il numero massimo di istanze configurate nel criterio di scalabilità automatica è solo 2. Quindi, il gestore della scalabilità automatica limita le dimensioni consigliate a 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"
    }

Nella tabella seguente vengono descritti i campi della voce di log:

Proprietà Valore
autoscalingMode La modalità di scalabilità automatica al momento della registrazione della voce. Indipendentemente dalla modalità, il gestore della scalabilità automatica calcola le dimensioni consigliate, rappresentate da newSize nel log. A seconda della modalità di scalabilità automatica, il gestore della scalabilità automatica ridimensiona il gruppo di istanze gestite come segue:
  • ON: il gestore della scalabilità automatica ridimensiona il gruppo di istanze gestite in newSize.
  • OFF: il gestore della scalabilità automatica non ridimensiona il gruppo di istanze gestite.
  • ONLY_SCALE_OUT: il gestore della scalabilità automatica ridimensiona il gruppo di istanze gestite solo se newSize è maggiore delle dimensioni target del gruppo di istanze gestite.
autoscalingReason Dettagli sul motivo della scalabilità automatica. Questo campo viene visualizzato solo per i MIG a livello di zona.
autoscalingReason.scalingLimit Dettagli sulla funzionalità di scalabilità automatica che limita calculatedSize, che corrisponde alla dimensione calcolata dal gestore della scalabilità automatica in base all'indicatore di scalabilità automatica. Le funzionalità di scalabilità automatica che possono limitare calculatedSize sono il numero massimo o minimo di istanze, i controlli di scale in o il periodo di stabilizzazione. Se non esistono limiti per calculatedSize, il campo scalingLimit non viene visualizzato nei log.
autoscalingReason.scalingLimit.limitPolicy La configurazione della funzionalità di scalabilità automatica che limitava calculatedSize. Il campo limitPolicy non è impostato quando la stabilizzazione limita calculatedSize perché la stabilizzazione è una funzionalità predefinita di scalabilità automatica.
autoscalingReason.scalingLimit.limitSize Il numero di VM basato sulla funzionalità di scalabilità automatica che limitava calculatedSize.
autoscalingReason.scalingLimit.name Il nome della funzionalità di scalabilità automatica che limita calculatedSize.
autoscalingReason.scalingSignal Dettagli sull'indicatore di scalabilità automatica utilizzato per calcolare il numero di VM che dovrebbe avere il gruppo di istanze gestite. Se il criterio di scalabilità automatica ha più indicatori, il gestore della scalabilità automatica prende in considerazione l'indicatore che richiede il numero maggiore di VM.
autoscalingReason.scalingSignal.calculatedSize Il numero di VM che il MIG dovrebbe avere in base all'indicatore di scalabilità automatica. Se scalingLimit si applica, il gestore della scalabilità automatica limita calculatedSize a scalingLimit.limitSize.
autoscalingReason.scalingSignal.calculationDetails Dettagli utilizzati per determinare il calculatedSize.
  • servingSize: il numero di VM nel gruppo di istanze gestite, escluse le VM ancora in periodo di raffreddamento.
  • signalTarget: il valore target che il gestore della scalabilità automatica mantiene per l'utilizzo della CPU (in tempo reale), l'utilizzo previsto della CPU, l'utilizzo del bilanciamento del carico o una metrica configurata con la destinazione di utilizzo.
  • singleInstanceAssignment: se la scalabilità è basata su un valore metrica che rappresenta la quantità di lavoro totale da eseguire, singleInstanceAssignment è la quantità di lavoro che ogni VM può gestire.
  • signalValue: valore del segnale di scalabilità automatica. Se è impostato signalTarget, il gestore della scalabilità automatica confronta signalValue con signalTarget per calcolare quante VM sono necessarie, rappresentate da calculatedSize.
autoscalingReason.scalingSignal.name Il nome dell'indicatore di scalabilità automatica in base al quale il gestore della scalabilità automatica ha calcolato il numero di VM, rappresentato da calculatedSize nel log.
autoscalingReason.scalingSignal.signalPolicy La configurazione dell'indicatore di scalabilità automatica in base a cui il gestore della scalabilità automatica ha determinato calculatedSize.
autoscalingReason.summary Una descrizione del motivo per la scalabilità automatica.
newSize L'attuale dimensione consigliata del gruppo di istanze gestite. A seconda del autoscalingMode, il gestore della scalabilità automatica ridimensiona il MIG al newSize come segue:
  • ON: il gestore della scalabilità automatica ridimensiona il gruppo di istanze gestite in newSize.
  • OFF: il gestore della scalabilità automatica non ridimensiona il gruppo di istanze gestite.
  • ONLY_SCALE_OUT: il gestore della scalabilità automatica ridimensiona il gruppo di istanze gestite solo se newSize è maggiore delle dimensioni target del gruppo di istanze gestite.
oldSize La dimensione precedente consigliata del gruppo di istanze gestite.

Per informazioni sugli altri campi della voce di log, consulta Formato delle voci del log di controllo.

Voce del log delle modifiche di stato

Quando lo stato del gestore della scalabilità automatica cambia, Compute Engine crea una voce di log che acquisisce i messaggi di stato vecchi e nuovi. Puoi utilizzare questi messaggi di stato per scoprire perché il gestore della scalabilità automatica non funziona come previsto o per eseguire il debug dei problemi passati che hai notato. Per alcuni messaggi di stato comuni, consulta Messaggi di stato comuni restituiti.

I seguenti campi in protoPayload descrivono il vecchio e il nuovo stato:

  • metadata.newStatus.details: il nuovo stato del gestore della scalabilità automatica.
  • metadata.oldStatus.details: lo stato precedente del gestore della scalabilità automatica.

Di seguito è riportato un esempio di una voce di log che descrive una modifica dello stato. In questo esempio, potresti notare il nuovo messaggio di stato e verificare che la configurazione del bilanciamento del carico sia impostata correttamente.

    {
      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"
      }
    }

Per informazioni sugli altri campi della voce di log, consulta Formato delle voci del log di controllo.

Passaggi successivi