Lorsque vous créez un groupe d'instances géré (MIG) régional ou que vous augmentez sa taille cible, Compute Engine évalue la disponibilité des ressources en temps réel pour répartir les nouvelles instances de calcul entre les zones et les types de machines. Au cours de ce processus, Compute Engine enregistre une entrée de journal de distribution d'instances dans Cloud Logging.
Ce document explique comment afficher et interpréter ces journaux de distribution d'instances. Il explique également comment utiliser ces journaux pour examiner les allocations en attente et configurer des alertes.
Pour voir la répartition réelle de vos instances en cours d'exécution, consultez Surveiller la répartition des instances dans les MIG.
À propos des journaux de distribution des instances
Les journaux de distribution d'instances fournissent un instantané unique des allocations planifiées du MIG pour les instances de calcul. Dans ces journaux, une instance allouée signifie que le MIG a trouvé de la capacité et prévoit de créer l'instance de calcul sur ce type de machine et dans cette zone. Une taille allouée ne signifie pas que les instances de calcul ont déjà été créées.
Étant donné que les journaux fournissent un instantané, Compute Engine ne les met pas à jour lorsque le MIG crée les instances de calcul restantes ultérieurement. L'entrée de journal vous permet d'afficher les détails suivants :
Répartition des types de machines : nombre d'instances de calcul que le MIG a allouées par type de machine. Ces informations ne sont présentes que pour les MIG régionaux qui utilisent la flexibilité des instances.
Distribution zonale : nombre d'instances de calcul que le MIG a allouées par zone.
Instances en attente de capacité : nombre d'instances pour lesquelles le MIG n'a pas pu allouer de capacité immédiatement et recherche activement de la capacité.
Limites
Les journaux de distribution des instances ne sont disponibles que pour les MIG régionaux.
Pour les MIG régionaux qui utilisent la forme de distribution cible
EVENsans autoscaling, l'entrée de journal n'inclut que les champsoldSize,newSize,deltaSizeettargetShape, sans aucun détail sur la distribution des instances.Compute Engine ne consigne les détails de la distribution des instances que lorsque vous créez un MIG ou augmentez sa taille cible. Compute Engine ne consigne pas ces détails lorsque la taille cible diminue, ni lors des opérations de réparation, de recréation et de mise à jour d'instance.
Afficher les journaux de distribution d'instances d'un MIG spécifique
Pour afficher les journaux de distribution d'instances d'un MIG spécifique, utilisez l'une des options suivantes :
Console
Vous pouvez afficher les journaux d'un MIG spécifique directement depuis la page d'informations du groupe d'instances.
Dans la console Google Cloud , accédez à la page Groupes d'instances.
Cliquez sur le nom du MIG que vous souhaitez afficher.
Cliquez sur l'onglet Surveillance.
Dans le volet de gauche, sélectionnez Journaux.
Dans le filtre des résultats de journaux, saisissez
instanceDistribution, puis appuyez sur Entrée.Pour afficher les données de distribution des instances, développez une entrée de journal, puis développez
protoPayload.metadata.details.
gcloud
Pour afficher les journaux de distribution d'instances d'un MIG spécifique, utilisez la commande gcloud logging read :
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \ protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \ resource.labels.instance_group_manager_name=\"MIG_NAME\""
Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.MIG_NAME: nom du MIG.
REST
Pour afficher les journaux de distribution des instances d'un MIG spécifique, envoyez une requête POST à la méthode entries.list.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}
Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.MIG_NAME: nom du MIG.
Pour en savoir plus sur chaque champ d'un journal, consultez Entrée de journal de distribution d'instances.
Afficher tous les journaux de distribution d'instances d'un projet
Pour afficher tous les journaux de distribution d'instances d'un projet, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Explorateur de journaux.
Saisissez une requête. Voici quelques exemples :
Pour afficher tous les journaux de distribution d'instances du projet :
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
Pour afficher les journaux de distribution d'instances où une partie du redimensionnement est toujours en attente de capacité :
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution" protoPayload.metadata.details.data.activeSeekDeltaSize > 0
Remplacez
PROJECT_IDpar l'ID de votre projet.Cliquez sur Exécuter la requête.
Dans les résultats, développez une entrée de journal.
- Pour afficher le résumé et les données, développez
protoPayload.metadata.details. - Pour afficher le résumé sur chaque ligne, cliquez sur
messageet sélectionnez Ajouter un champ à la ligne de résumé.
- Pour afficher le résumé et les données, développez
gcloud
Pour afficher les journaux de distribution des instances, utilisez la commande gcloud logging read.
- Pour afficher tous les journaux de distribution d'instances du projet :
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \ protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
- Pour afficher tous les journaux du projet datant des dernières 24 heures, spécifiez l'option
--freshness=1dcomme suit :
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
--freshness=1d
- Pour afficher les journaux de distribution d'instances où une partie du redimensionnement est toujours en attente de capacité :
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
Remplacez PROJECT_ID par l'ID de votre projet.
REST
Pour afficher les journaux de distribution des instances, envoyez une requête POST à la méthode entries.list.
- Pour afficher tous les journaux de distribution d'instances du projet :
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
- Pour afficher tous les journaux du projet datant du jour précédent, ajoutez une condition
timestampau filtre :
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
- Pour afficher les journaux de distribution d'instances où une partie du redimensionnement est toujours en attente de capacité :
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}
Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.YYYY-MM-DDThh:mm:ssZ: code temporel RFC 3339 de l'heure de début (par exemple,2024-10-22T00:00:00Z).
Pour en savoir plus sur chaque champ d'un journal, consultez Entrée de journal de distribution d'instances.
Entrée de journal de distribution des instances
Voici un exemple d'entrée de journal (protoPayload.metadata.details). Comme cet événement est un instantané ponctuel, l'entrée de journal n'est pas mise à jour lorsque les instances restantes sont créées ultérieurement. L'entrée de journal vous permet d'afficher les détails comme suit :
details.data: affiche les détails structurés de la distribution des instances.details.message: affiche le résumé de la distribution des instances.
Dans cet exemple, un MIG régional avec flexibilité des instances effectue un scaling horizontal de 0 à 100. Le MIG alloue immédiatement 80 des 100 nouvelles instances sur deux sélections d'instances classées (20 d'instances c2-standard-4 dans la sélection rank2-c2 et 60 d'instances n2d-standard-4 dans la sélection rank3-n2d). L'entrée indique également que 40 instances de calcul sont allouées dans us-central1-b et us-central1-c. Pour les 20 instances restantes (activeSeekDeltaSize), le MIG continue de rechercher de la capacité dans toutes les sélections d'instances et zones configurées. Pour les MIG régionaux sans flexibilité d'instance, l'entrée de journal omet le champ instanceSelections et n'affiche que la distribution zonale.
"metadata": {
"details": {
"data": {
"oldSize": 0,
"newSize": 100,
"deltaSize": 100,
"targetShape": "BALANCED",
"activeSeekDeltaSize": 20,
"instanceSelections": {
"rank1-n2": {
"rank": 1,
"machineSelections": [
{
"machineType": "n2-standard-4",
"allocatedSize": 0
}
]
},
"rank2-c2": {
"rank": 2,
"machineSelections": [
{
"machineType": "c2-standard-4",
"allocatedSize": 20
}
]
},
"rank3-n2d": {
"rank": 3,
"machineSelections": [
{
"machineType": "n2d-standard-4",
"allocatedSize": 60
}
]
}
},
"zonalDistribution": {
"us-central1-a": {
"allocatedSize": 0
},
"us-central1-b": {
"allocatedSize": 40
},
"us-central1-c": {
"allocatedSize": 40
}
}
},
"message": "Increasing MIG target size from 0 to 100 instances (+100).
Allocated 80 of 100 new instances. Allocated instances across instance
selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
n2d-standard-4: 60). Allocated instances across zones based on target
distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
across all instance selections and zones. The final distribution across zones
and machine types may differ as instances are created. View the group's
instances for the current distribution."
}
}
Le tableau suivant décrit chaque champ d'une entrée de journal.
| Champ | Description |
|---|---|
details.data.oldSize |
Taille cible du MIG régional avant l'opération de redimensionnement. |
details.data.newSize |
Taille cible demandée du MIG régional. |
details.data.deltaSize |
Modification de la taille de la cible (newSize - oldSize).
|
details.data.targetShape |
Forme de distribution cible du MIG régional. |
details.data.activeSeekDeltaSize |
Nombre de nouvelles instances pour lesquelles le MIG recherche toujours de la capacité dans les sélections d'instances et les zones configurées. Ce champ est omis lorsque sa valeur est 0.
|
details.data.instanceSelections |
Sélections d'instances configurées évaluées lors de l'allocation. Ce champ n'est présent que pour les MIG qui utilisent la flexibilité des instances. Chaque clé correspond au nom d'une sélection d'instances, et sa valeur contient les champs suivants :
|
details.data.zonalDistribution |
Les zones configurées et la répartition des instances qui leur sont allouées. Chaque clé est un nom de zone, et sa valeur contient le nombre d'instances de calcul allouées dans cette zone (allocatedSize).
|
details.message |
Message récapitulatif décrivant la distribution des instances, y compris le nombre d'instances allouées et les détails de la capacité de recherche. |
Interpréter les journaux de distribution des instances
Le journal de distribution des instances fournit un instantané du plan du MIG pour la création d'instances de calcul. Étant donné que le journal indique que le MIG alloue des instances de calcul avant qu'elles ne soient créées, vous devez utiliser les données du journal ainsi que l'état de l'instance de calcul et les messages d'erreur pour comprendre le comportement réel de votre MIG.
Utilisez le tableau suivant pour interpréter les résultats de journaux courants et déterminer si vous devez prendre des mesures :
| Sortie du journal | Explication | Action recommandée |
|---|---|---|
activeSeekDeltaSize est supérieur à 0 |
Le MIG n'a pas trouvé suffisamment de capacité pour répondre immédiatement à l'intégralité de la requête de redimensionnement. Le MIG continue d'essayer de créer les instances restantes dans toutes les options configurées. | Vérifiez les erreurs d'instance du MIG pour savoir pourquoi la création de l'instance a échoué. Envisagez d'ajouter des types de machines d'autres familles de machines, d'ajouter des zones ou de vérifier vos quotas. |
Une sélection de préférence plus élevée (numéro de rang inférieur) a un allocatedSize de 0. |
Au moment de la décision, le MIG a vérifié vos types de machines préférés, mais n'a pas trouvé de capacité suffisante. Le MIG a utilisé une sélection de préférence inférieure (numéro de rang plus élevé) à la place. Compute Engine ne consigne pas les erreurs d'instance pour les sélections ignorées. | Si le MIG ignore souvent votre sélection préférée, envisagez d'ajouter d'autres types de machines à votre sélection préférée ou d'accepter des options moins préférées. |
Une zone configurée possède un allocatedSize de 0 |
Le MIG n'a pas alloué de nouvelles instances dans cette zone. | Si votre forme cible est ANY ou ANY_SINGLE_ZONE, cette distribution inégale est normale.
Sinon, vérifiez votre quota, vos réservations et la compatibilité de la zone avec votre modèle d'instance. |
Un type de machine est manquant dans le récapitulatif message |
Le MIG n'a pas utilisé ce type de machine pour l'allocation. | Vérifiez le bloc details.data structuré. Le message récapitulatif omet les sélections et les types de machines qui ont obtenu 0 nouvelles instances, mais les données structurées listent toutes les options évaluées. |
Vérifier les allocations d'instances en attente
Si votre MIG est toujours en attente de capacité (activeSeekDeltaSize > 0), vous pouvez vérifier les points suivants pour comprendre les raisons des allocations en attente :
Vérifiez les erreurs de création d'instance. Pour savoir si la création d'instances a échoué après l'allocation de capacité par le MIG ou si les instances de calcul attendent toujours de la capacité, vérifiez les erreurs d'instance. Pour en savoir plus, consultez Répertorier les erreurs d'instance.
Vérifiez l'état de l'instance. Pour afficher l'état et l'action en cours de chaque instance, listez les instances du MIG et vérifiez leur champ
instanceStatus. Pour en savoir plus, consultez Vérifier l'état des instances gérées.Vérifiez votre configuration. Si vous avez configuré une règle de flexibilité des instances dans le MIG, vérifiez vos quotas régionaux pour les familles de machines de la règle. Vérifiez également que les zones sélectionnées sont compatibles avec les types de machines demandés. Pour en savoir plus, consultez Afficher et gérer les quotas et Régions et zones disponibles.
Créer des règles d'alerte basées sur les journaux
Pour recevoir une notification lorsque des opérations de redimensionnement de MIG sont en attente de capacité, vous pouvez créer une règle d'alerte basée sur les journaux dans l'explorateur de journaux. Par exemple, vous pouvez déclencher une alerte lorsque activeSeekDeltaSize est supérieur à 0.
Pour créer cette alerte, procédez comme suit :
Dans la console Google Cloud , accédez à la page Explorateur de journaux.
Saisissez la requête suivante :
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution" protoPayload.metadata.details.data.activeSeekDeltaSize > 0
Remplacez
PROJECT_IDpar l'ID de votre projet.Cliquez sur Exécuter la requête pour valider la requête.
Créez la règle d'alerte en suivant les instructions de la section Créer une règle d'alerte basée sur les journaux de la documentation Cloud Logging.