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 la visionneuse de journaux pour mieux comprendre les décisions prises par l'autoscaler concernant le scaling.
La visionneuse de journaux vous permet de voir les événements liés au(x) :
- Redimensionnement d'un groupe d'instances. Si l'autoscaler redimensionne un groupe d'instances, le redimensionnement est décrit dans les journaux des autoscalers.
- 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. Certains messages d'état courants sont décrits dans la section Messages d'état fréquemment affichés.
Avant de commencer
- Lisez la documentation sur l'Autoscaling.
- Procurez-vous un autoscaler actif, avec affichage des journaux.
- Examinez comment utiliser la visionneuse de journaux.
Afficher les journaux des autoscalers
Pour afficher les journaux de l'autoscaler, utilisez Google Cloud Console, l'outil de ligne de commande gcloud
ou l'API Cloud Logging.
Console
Si vous avez activé l'autoscaling, vous pouvez consulter les journaux d'autoscaling dans Google Cloud Console.
- Accédez à la page "Visionneuse de journaux".
- Déroulez le menu déroulant des ressources et sélectionnez Autoscaler GCE.
gcloud
À l'aide de l'outil gcloud
, exécutez la commande bêta logging read
pour rechercher tous les journaux liés à l'autoscaling, (y compris les journaux d'activité et d'audit).
Exemple :
gcloud beta logging read "resource.type=gce_autoscaler" --limit 10 \
--format json
Si vous souhaitez limiter les entrées des journaux aux actions de redimensionnement de l'autoscaler, indiquez le paramètre logName
et filtrez avec le champ jsonPayload.newSize
. Définissez la valeur de logName
sur :
`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`
Exemple :
gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
--limit 10 --format json
Pour les modifications d'état de l'autoscaler, utilisez le paramètre logName
et filtrez avec le champ jsonPayload.new_status
. Définissez la valeur de logName
sur :
`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`
Exemple :
gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
--limit 10 --format json
API
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 une liste d'actions de redimensionnement :
POST https://logging.googleapis.com/v2/entries:list
{
"filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
"pageSize": 10,
"resourceNames": [
"projects\/[PROJECT_ID]"
]
}
Pour effectuer une requête afin d'obtenir une liste de modifications d'état :
POST https://logging.googleapis.com/v2/entries:list
{
"filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
"pageSize": 10,
"resourceNames": [
"projects\/[PROJECT_ID]"
]
}
Journaux de redimensionnement
Les journaux associés aux actions de redimensionnement contiennent des informations sur la taille précédente et la nouvelle taille du groupe d'instances. Ces entrées de journaux sont identifiables par la présence des champs suivants dans la charge utile JSON :
jsonPayload.new_size
jsonPayload.old_size
Par exemple, dans l'entrée suivante, le journal décrit les modifications de l'ancien groupe d'instances de taille 8 vers un nouveau groupe d'instances de taille 10.
{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
"autoscaler_name": "example-autoscaler",
"instance_group_name": "example-igm",
"new_size": 10,
"old_size": 8,
"project_id": "myproject",
"zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
"labels": {
"autoscaler_id": "1234567890123456789",
"location": "europe-west1-b",
"project_id": "myproject"
},
"type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"
}
Explication de chaque champ du journal :
Propriété | Valeur |
---|---|
insertId |
Identifiant unique pour l'entrée de journal. |
jsonPayload |
Charge utile de l'entrée de journal, représentée par une structure exprimée sous la forme d'un objet JSON. |
new_size |
Nouvelle taille à laquelle ce groupe a été redimensionné automatiquement. Si le groupe a évolué à la hausse, la nouvelle taille sera plus grande que l'ancienne. S'il a évolué à la baisse, la nouvelle taille sera plus petite que l'ancienne. |
old_size |
Ancienne taille du groupe avant modification. |
instance_group_name |
Nom du groupe d'instances géré auquel cette entrée de journal s'applique. |
project_id |
ID de projet du groupe d'instances. Il doit toujours correspondre à l'ID du projet en cours. |
autoscaler_name |
Nom de l'autoscaler responsable de l'action. |
zone_name |
Zone de l'autoscaler et du groupe d'instances. |
resource |
Détails sur l'autoscaler. |
type |
Type de ressource dont il s'agit. Pour les autoscalers, la valeur correspond toujours à gce_autoscaler . |
labels |
Métadonnées concernant l'autoscaler. |
location |
Zone de l'autoscaler. |
autoscaler_id |
ID d'autoscaler numérique, généré par le serveur. |
project_id |
ID du projet auquel appartient l'autoscaler. |
timestamp |
Heure à laquelle l'événement décrit par l'entrée de journal s'est produit. Cet élément utilise un horodatage au format RFC 3339 UTC "Zulu", précis à la nanoseconde près. |
severity |
Niveau de gravité du journal. Pour les journaux de l'autoscaler, la valeur correspond toujours à "INFO" . |
logName |
Nom de la ressource du journal à laquelle appartient cette entrée de journal. Pour les journaux de redimensionnement de l'autoscaler, la valeur correspond toujours à projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler .
|
receiveTimestamp |
Heure à laquelle l'entrée de journal a été reçue par Cloud Logging. Cet élément utilise un horodatage au format RFC 3339 UTC "Zulu", précis à la nanoseconde près. |
Journaux des modifications d'état
Lorsque l'état de l'autoscaler change, Compute Engine crée une entrée de journal capturant la modification d'état. Ces entrées de journaux sont identifiables par la présence des champs suivants dans la charge utile JSON :
jsonPayload.old_status
jsonPayload.new_status
Par exemple, l'entrée suivante décrit une modification d'état de OK
à un nouvel état :
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
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. Dans ce cas, 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",
"jsonPayload": {
"autoscaler_name": "example-autoscaler",
"instance_group_name": "example-igm",
"new_status": {
"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."
},
"old_status": {
"details": "OK"
},
"project_id": "myproject",
"zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
"labels": {
"autoscaler_id": "1234567890123456789",
"location": "us-east1-b",
"project_id": "myproject"
},
"type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"
}
Explication de chaque champ du journal :
Propriété | Valeur |
---|---|
insertId |
Identifiant unique pour l'entrée de journal. |
jsonPayload |
Charge utile de l'entrée de journal, représentée par une structure exprimée sous la forme d'un objet JSON. |
new_status |
Nouvel état de l'autoscaler. Voir quelques messages d'état fréquemment affichés. |
old_status |
Ancien état de l'autoscaler, avant modification. |
instance_group_name |
Nom du groupe d'instances géré auquel cette entrée de journal s'applique. |
project_id |
ID de projet du groupe d'instances. |
autoscaler_name |
Nom de l'autoscaler responsable de l'action. |
zone_name |
Zone de l'autoscaler et du groupe d'instances. |
resource |
Détails sur l'autoscaler. |
type |
Type de ressource dont il s'agit. Pour les autoscalers, la valeur correspond toujours à gce_autoscaler . |
labels |
Métadonnées concernant l'autoscaler. |
location |
Zone de l'autoscaler. |
autoscaler_id |
ID d'autoscaler numérique, généré par le serveur. |
project_id |
ID du projet auquel appartient l'autoscaler. Il s'agit toujours du projet en cours. |
timestamp |
Heure à laquelle l'événement décrit par l'entrée de journal s'est produit. Cet élément utilise un horodatage au format RFC 3339 UTC "Zulu", précis à la nanoseconde près. |
severity |
Niveau de gravité du journal. Pour les journaux de l'autoscaler, la valeur correspond toujours à "INFO" . |
logName |
Nom de la ressource du journal à laquelle appartient cette entrée de journal. Pour les journaux des modifications d'état, la valeur correspond toujours à projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler .
|
receiveTimestamp |
Heure à laquelle l'entrée de journal a été reçue par Cloud Logging. Cet élément utilise un horodatage au format RFC 3339 UTC "Zulu", précis à la nanoseconde près. |
Étape suivante
- Mettez à jour votre autoscaler à partir des informations collectées dans les journaux.
- Consultez la présentation détaillée pour savoir comment l'autoscaler prend des décisions.
- Examinez les options d'autoscaling.