Afficher les journaux de l'autoscaler


Lorsque vous activez l'autoscaling, l'autoscaler prend des décisions en matière de scaling en fonction des options que vous spécifiez. Chaque décision de scaling est consignée par Cloud Logging. Lisez ces journaux dans l'explorateur de journaux pour mieux comprendre les décisions de scaling prises par l'autoscaler.

L'explorateur de journaux vous permet de voir les événements liés au(x) :

  • Recommandation de l'autoscaler pour le redimensionnement d'un groupe d'instances géré (MIG, Managed Instance Groups). Si l'autoscaler calcule une nouvelle taille recommandée pour un MIG, la modification de la taille recommandée est décrite dans les journaux de l'autoscaler. Consultez la section Redimensionner l'entrée de journal.
  • Modifications de l'état de l'autoscaler. Par exemple, si l'autoscaler rencontre un problème après avoir fonctionné comme prévu, le changement d'état est décrit dans les journaux de l'autoscaler. Consultez la section Entrée du journal des modifications d'état.

Avant de commencer

  • Lisez la documentation sur l'Autoscaling.
  • Procurez-vous un autoscaler actif, avec affichage des journaux.
  • Découvrez comment utiliser l'explorateur de journaux.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Afficher les journaux de l'autoscaler

Pour afficher les journaux de l'autoscaler, utilisez la console Google Cloud, la gcloud CLI ou REST.

Console

Si vous avez activé l'autoscaling, vous pouvez consulter les journaux d'autoscaling dans la console Google Cloud.

  1. Accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Déroulez le menu déroulant Ressource et sélectionnez Autoscaler.

Vous pouvez également accéder à la page Explorateur de journaux de votre MIG comme suit :

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur le nom du MIG pour lequel vous souhaitez afficher les journaux.

  3. Cliquez sur l'onglet Surveillance.

  4. Dans l'onglet Surveillance, le panneau Journaux se trouve en bas de la page. Ouvrez le panneau en cliquant sur l'icône située en bas de ce panneau.

  5. Pour ouvrir la page Explorateur de journaux, cliquez sur l'icône Afficher dans l'explorateur de journaux dans ce panneau. L'explorateur de journaux s'ouvre avec une requête par défaut pour récupérer tous les journaux de l'autoscaler du MIG.

gcloud

Pour rechercher tous les journaux liés à l'autoscaling, utilisez la commande logging read. Exemple :

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

Pour afficher les journaux de l'autoscaler d'un MIG spécifique, spécifiez l'élément instance_group_manager_name comme suit :

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

Pour afficher les entrées de journal associées aux actions de redimensionnement de l'autoscaler, spécifiez le nom de la méthode 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

Pour afficher les entrées de journal liées aux modifications d'état de l'autoscaler, spécifiez le nom de la méthode 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

Envoyez une requête à l'API Logging V2. Le corps de la requête doit contenir le paramètre de filtre (filter) à utiliser lors de la recherche de journaux et le projet (project) pour lequel vous souhaitez afficher les journaux. Par exemple, pour effectuer une requête afin d'obtenir la liste des actions de redimensionnement d'un MIG spécifique, procédez comme suit :

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

Pour effectuer une requête afin d'obtenir la liste des modifications d'état d'un MIG spécifique, procédez comme suit :

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

Redimensionner une entrée de journal

Lorsque l'autoscaler calcule une taille recommandée pour votre MIG, Compute Engine crée une entrée de journal capturant les nouvelles et les anciennes tailles recommandées. Pour les MIG zonaux, l'entrée de journal capture également la raison de la modification de la taille recommandée.

Voici un exemple d'entrée de journal pour un MIG zonal. Dans cet exemple, en se basant sur l'autoscaling prédictif, l'autoscaler a calculé 3 VM pour atteindre l'objectif d'utilisation du processeur de 35%. Toutefois, le nombre maximal d'instances configurées dans la règle d'autoscaling n'est que de 2. L'autoscaler limite donc la taille recommandée à 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"
    }

Le tableau suivant décrit les champs de l'entrée de journal :

Propriété Value
autoscalingMode Mode d'autoscaling au moment où l'entrée a été consignée. Quel que soit le mode, l'autoscaler calcule la taille recommandée, qui est représentée par newSize dans le journal. Selon le mode d'autoscaling, l'autoscaler redimensionne le MIG comme suit :
  • ON : l'autoscaler redimensionne le MIG sur newSize.
  • OFF : l'autoscaler ne redimensionne pas le MIG.
  • ONLY_SCALE_OUT : l'autoscaler ne redimensionne le MIG que si la valeur de newSize est supérieure à la taille cible du MIG.
autoscalingReason Détails sur le motif de l'autoscaling. Ce champ n'apparaît que pour les MIG zonaux.
autoscalingReason.scalingLimit Détails sur la fonctionnalité d'autoscaling ayant limité l'élément calculatedSize, qui est la taille calculée par l'autoscaler en fonction du signal d'autoscaling. Les fonctionnalités d'autoscaling pouvant limiter le paramètre calculatedSize sont le nombre maximal ou minimal d'instances, les contrôles de scaling vertical ou la période de stabilisation. Si aucune limite ne s'applique à calculatedSize, le champ scalingLimit n'apparaît pas dans les journaux.
autoscalingReason.scalingLimit.limitPolicy Configuration de la fonctionnalité d'autoscaling ayant limité l'élément calculatedSize. Le champ limitPolicy n'est pas défini lorsque la stabilisation limite la valeur calculatedSize, car la stabilisation est une fonctionnalité d'autoscaling par défaut.
autoscalingReason.scalingLimit.limitSize Nombre de VM basées sur la fonctionnalité d'autoscaling ayant limité calculatedSize.
autoscalingReason.scalingLimit.name Nom de la fonctionnalité d'autoscaling ayant limité l'élément calculatedSize.
autoscalingReason.scalingSignal Informations détaillées sur le signal d'autoscaling qui est utilisé pour calculer le nombre de VM que le MIG doit contenir. Si la règle d'autoscaling comporte plusieurs signaux, l'autoscaler prend en compte le signal nécessitant le plus grand nombre de VM.
autoscalingReason.scalingSignal.calculatedSize Nombre de VM que le MIG doit avoir en fonction du signal d'autoscaling. Si scalingLimit s'applique, l'autoscaler limite calculatedSize à scalingLimit.limitSize.
autoscalingReason.scalingSignal.calculationDetails Détails utilisés pour déterminer la valeur calculatedSize.
  • servingSize : nombre de VM du MIG, à l'exclusion des VM qui sont encore en période d'initialisation.
  • signalTarget : valeur cible que l'autoscaler conserve pour l'utilisation du processeur (en temps réel), l'utilisation prévue du processeur, l'utilisation de l'équilibrage de charge, ou une métrique configurée avec la cible d'utilisation.
  • singleInstanceAssignment : si le scaling est basé sur une valeur de métrique représentant le volume total de travail à effectuer, singleInstanceAssignment correspond à la quantité de travail que chaque VM peut gérer.
  • signalValue : valeur du signal d'autoscaling. Si signalTarget est défini, l'autoscaler compare signalValue avec signalTarget pour calculer le nombre de VM nécessaires, qui est représenté par calculatedSize.
autoscalingReason.scalingSignal.name Nom du signal d'autoscaling sur lequel est basé le nombre de VM calculé par l'autoscaler, représenté par calculatedSize dans le journal.
autoscalingReason.scalingSignal.signalPolicy Configuration du signal d'autoscaling en fonction duquel l'autoscaler a déterminé calculatedSize.
autoscalingReason.summary Description de la raison de l'autoscaling.
newSize Taille recommandée actuelle du MIG. En fonction de autoscalingMode, l'autoscaler redimensionne le MIG sur newSize comme suit :
  • ON : l'autoscaler redimensionne le MIG sur newSize.
  • OFF : l'autoscaler ne redimensionne pas le MIG.
  • ONLY_SCALE_OUT : l'autoscaler ne redimensionne le MIG que si la valeur de newSize est supérieure à la taille cible du MIG.
oldSize Taille recommandée précédente du MIG.

Pour en savoir plus sur les autres champs de l'entrée de journal, consultez la section Format des entrées du journal d'audit.

Entrée du journal des modifications d'état

Lorsque l'état de l'autoscaler change, Compute Engine crée une entrée de journal capturant les anciens et les nouveaux messages d'état. Vous pouvez utiliser ces messages d'état pour déterminer pourquoi votre autoscaler ne se comporte pas comme prévu ou pour déboguer les problèmes que vous avez remarqués. Pour obtenir certains messages d'état courants, consultez la section Messages d'état fréquemment affichés.

Les champs suivants de protoPayload décrivent les anciens et nouveaux états :

  • metadata.newStatus.details : nouvel état de l'autoscaler.
  • metadata.oldStatus.details : état précédent de l'autoscaler.

Voici un exemple d'entrée de journal décrivant une modification d'état. Dans cet exemple, vous remarquerez probablement le nouveau message d'état et devrez vérifier que votre configuration d'équilibrage de charge est correctement paramétrée.

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

Pour en savoir plus sur les autres champs de l'entrée de journal, consultez la section Format des entrées du journal d'audit.

Étapes suivantes