Visualizza i log del gestore della scalabilità automatica

Quando attivi 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 gli eventi relativi a:

  • Suggerimento 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 MIG, la modifica della dimensione consigliata viene descritta nei log del gestore della scalabilità automatica. Vedi Ridimensionare la voce di log.
  • Modifiche allo stato del gestore della scalabilità automatica. Ad esempio, se il gestore della scalabilità automatica funzionava come previsto, ma poi ha riscontrato un problema, la modifica dello stato verrà descritta nei log del gestore della scalabilità automatica. Consulta la voce del log delle modifiche dello stato.

Prima di iniziare

  • Leggi la documentazione relativa allo scaling automatico.
  • Avere un autoscaler attivo per il quale vuoi visualizzare i log.
  • Consulta la sezione su come utilizzare Esplora log.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo di verifica dell'identità per poter accedere a Trusted Cloud by S3NS servizi e API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .

Visualizza i log del gestore della scalabilità automatica

Per visualizzare i log del gestore della scalabilità automatica, utilizza la console Trusted Cloud , gcloud CLI o REST.

Console

Se hai attivato la scalabilità automatica, puoi visualizzare i log in Trusted Cloud console.

  1. Vai alla pagina Esplora log.

    Vai a Esplora log

  2. Trascina verso il basso il menu a discesa Risorsa e seleziona Scalabilità automatica.

Puoi anche andare alla pagina Esplora log dal tuo MIG come segue:

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

    Vai a Gruppi di istanze

  2. Fai clic sul nome del MIG per cui vuoi visualizzare i log.

  3. Fai clic sulla scheda Monitoraggio.

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

  5. Per aprire la pagina Esplora log, fai clic sull'icona Visualizza in Esplora log in questo riquadro. 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 MIG specifico, specifica instance_group_manager_name nel seguente modo:

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 di 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

REST

Invia una richiesta all'API Logging V2. Il corpo della richiesta deve contenere il parametro filter da utilizzare durante la ricerca dei log e il parametro project per cui vuoi visualizzare i log. Ad esempio, per effettuare una richiesta per 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 effettuare una richiesta per ottenere un elenco delle modifiche dello stato di un gruppo di istanze gestite 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 MIG, Compute Engine crea una voce di log che acquisisce le dimensioni consigliate nuove e precedenti. Per i MIG 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 MIG a livello di zona. In questo esempio, in base alla scalabilità automatica predittiva, il gestore della scalabilità automatica ha calcolato 3 VM per raggiungere l'obiettivo di utilizzo della CPU pari a 35%. Tuttavia, il numero massimo di istanze configurato nella policy di scalabilità automatica è solo 2. Pertanto, il gestore della scalabilità automatica limita la dimensione consigliata 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"
    }

La tabella seguente descrive 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 la dimensione consigliata, rappresentata da newSize nel log. A seconda della modalità di scalabilità automatica, il gestore della scalabilità automatica ridimensiona il MIG nel seguente modo:
  • ON: il gestore della scalabilità automatica ridimensiona il MIG a newSize.
  • OFF: il gestore della scalabilità automatica non ridimensiona il MIG.
  • ONLY_SCALE_OUT: il gestore della scalabilità automatica ridimensiona il MIG solo se newSize è maggiore della dimensione target del MIG.
autoscalingReason Dettagli sul motivo della scalabilità automatica. Questo campo viene visualizzato solo per i MIG zonali.
autoscalingReason.scalingLimit Dettagli sulla funzionalità di scalabilità automatica che ha limitato il calculatedSize, ovvero la dimensione calcolata dal gestore della scalabilità automatica in base all'indicatore di scalabilità automatica. Le funzionalità di scalabilità automatica che possono limitare il calculatedSize sono il numero massimo o minimo di istanze, i controlli di scale in o il periodo di stabilizzazione. Se non si applica alcun limite a 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 il calculatedSize perché la stabilizzazione è una funzionalità predefinita della scalabilità automatica.
autoscalingReason.scalingLimit.limitSize Il numero di VM in base alla funzionalità di scalabilità automatica che ha limitato calculatedSize.
autoscalingReason.scalingLimit.name Il nome della funzionalità di scalabilità automatica che ha limitato calculatedSize.
autoscalingReason.scalingSignal Dettagli sull'indicatore di scalabilità automatica utilizzato per calcolare il numero di VM che il MIG deve avere. Se la policy di scalabilità automatica ha più indicatori, il gestore della scalabilità automatica considera l'indicatore che richiede il maggior numero di VM.
autoscalingReason.scalingSignal.calculatedSize Il numero di VM che il MIG deve avere in base all'indicatore di scalabilità automatica. Se si applica scalingLimit, i limiti del gestore della scalabilità automatica calculatedSize a scalingLimit.limitSize.
autoscalingReason.scalingSignal.calculationDetails Dettagli utilizzati per determinare il calculatedSize.
  • servingSize: Il numero di VM nel MIG escluse le VM ancora nel periodo di inizializzazione.
  • signalTarget: il valore target che il gestore della scalabilità automatica mantiene per l'utilizzo della CPU (in tempo reale), l'utilizzo della CPU previsto, l'utilizzo del bilanciamento del carico o una metrica configurata con il target di utilizzo.
  • singleInstanceAssignment: se lo scaling si basa su un valore della metrica che rappresenta il volume totale di lavoro da svolgere, allora singleInstanceAssignment è la quantità di lavoro che ogni VM può gestire.
  • signalValue: il valore del segnale di scalabilità automatica. Se signalTarget è impostato, il gestore della scalabilità automatica confronta signalValue con signalTarget per calcolare il numero di VM necessarie, rappresentato 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 al quale il gestore della scalabilità automatica ha determinato calculatedSize.
autoscalingReason.summary Una descrizione del motivo della scalabilità automatica.
newSize Le dimensioni consigliate correnti del MIG. A seconda del autoscalingMode, il gestore della scalabilità automatica ridimensiona il MIG in base al newSize nel seguente modo:
  • ON: il gestore della scalabilità automatica ridimensiona il MIG a newSize.
  • OFF: il gestore della scalabilità automatica non ridimensiona il MIG.
  • ONLY_SCALE_OUT: il gestore della scalabilità automatica ridimensiona il MIG solo se newSize è maggiore della dimensione target del MIG.
oldSize Le dimensioni consigliate precedenti del MIG.

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

Voce di log delle modifiche dello stato

Quando lo stato dello scalatore automatico cambia, Compute Engine crea una voce di log che acquisisce i messaggi di stato precedenti e nuovi. Puoi utilizzare questi messaggi di stato per scoprire perché lo strumento di scalabilità automatica non si comporta come previsto o per eseguire il debug dei problemi passati che hai notato. Per alcuni dei messaggi di stato comuni, vedi Messaggi di stato restituiti di frequente.

I seguenti campi in protoPayload descrivono lo stato precedente e quello nuovo:

  • 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 voce di log che descrive una modifica dello stato. In questo esempio, potresti notare il nuovo messaggio di stato che indica problemi con la configurazione del bilanciamento del carico.

    {
      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, vedi Formato delle voci di log di controllo.

Passaggi successivi