Dépanner la mise à l’échelle automatique Azure Monitor

La mise à l’échelle automatique d’Azure Monitor vous permet de disposer de la bonne quantité de ressources en cours d’exécution pour gérer la charge sur votre application. Elle vous permet d’ajouter des ressources pour gérer les augmentations de charge et d’économiser de l’argent en supprimant les ressources qui sont inactives. Vous pouvez mettre à l’échelle en fonction d’une planification, d’une date/heure fixe ou d’une métrique de ressource de votre choix. Pour plus d’informations, consultez Vue d’ensemble de la mise à l’échelle automatique.

Le service de mise à l’échelle automatique fournit des métriques et des journaux pour vous aider à comprendre les actions de mise à l’échelle qui se sont produites et l’évaluation des conditions qui ont conduit à ces actions. Vous pouvez trouver des réponses à des questions comme :

  • Pourquoi mon service a-t-il effectué une action de scale-out ou de scale-in ?
  • Pourquoi mon service n’a-t-il pas été mis à l’échelle ?
  • Pourquoi une action de mise à l’échelle automatique a-t-elle échoué ?
  • Pourquoi une action de mise à l’échelle automatique prend-elle du temps ?

Virtual Machine Scale Sets Flex

Les actions de mise à l’échelle automatique sont retardées jusqu’à plusieurs heures après l’application d’une action de mise à l’échelle manuelle à une ressource Flex Microsoft.Compute/virtualMachineScaleSets (VMSS) pour un ensemble spécifique d’opérations de machine virtuelle.
Par exemple, Azure VM CLI Delete ou Azure VM Rest API Delete où l’opération est effectuée sur une machine virtuelle individuelle.

Dans ce cas, le service de mise à l’échelle automatique n’est pas conscient des opérations individuelles de machine virtuelle.

Pour éviter ce scénario, utilisez la même opération, mais au niveau du groupe de machines virtuelles identiques. Par exemple, l’instance Azure VMSS CLI Delete ou l’instance Azure VMSS Rest API Delete. La mise à l’échelle automatique détecte le changement du nombre d’instances dans le groupe de machines virtuelles identiques et effectue les actions de mise à l’échelle appropriées.

Métriques de mise à l’échelle automatique

La mise à l’échelle automatique vous fournit quatre métriques pour comprendre son fonctionnement :

  • Valeur de métrique observée : la valeur de la métrique sur laquelle vous avez choisi d’effectuer l’action de mise à l’échelle, telle qu’elle apparaît ou est calculée par le moteur de mise à l’échelle automatique. Étant donné qu’un seul paramètre de mise à l’échelle automatique peut avoir plusieurs règles et, par conséquent, plusieurs sources de métriques, vous pouvez filtrer en utilisant « Source de métriques » comme dimension.
  • Seuil de métrique : le seuil que vous avez défini pour effectuer l’action de mise à l’échelle. Étant donné qu’un seul paramètre de mise à l’échelle automatique peut avoir plusieurs règles et, par conséquent, plusieurs sources de métriques, vous pouvez filtrer en utilisant « Règle de métrique » comme dimension.
  • Capacité observée : nombre d’instances actives de la ressource cible, tel qu’il est vu par le moteur de mise à l’échelle automatique.
  • Actions de mise à l’échelle lancées : nombre d’actions de scale-in et de scale-out lancées par le moteur de mise à l’échelle automatique. Vous pouvez filtrer par actions de scale-in ou de scale-out.

Vous pouvez utiliser explorateur de métriques pour représenter visuellement les métriques précédentes dans un même emplacement. Le graphique doit afficher :

  • La métrique réelle.
  • La métrique affichée/calculée par le moteur de mise à l’échelle automatique.
  • Le seuil pour une action de mise à l’échelle.
  • La modification de capacité.

Exemple 1 : analyser une règle de mise à l’échelle automatique

Un paramètre de mise à l’échelle automatique pour un groupe de machines virtuelles identiques :

  • Effectue un scale-out lorsque le pourcentage moyen d’utilisation de l’UC d’un ensemble est supérieur à 70 % pendant 10 minutes.
  • Effectue un scale-in lorsque le pourcentage d’utilisation de l’UC de l’ensemble est inférieur à 5 % pendant plus de 10 minutes.

Passons en revue les métriques du service de mise à l’échelle automatique.

Le graphique suivant montre une métrique Pourcentage d’UC pour un groupe de machines virtuelles identiques.

Screenshot that shows a virtual machine scale set percentage CPU example.

Le graphique suivant montre la métrique Valeur de métrique observée pour un paramètre de mise à l’échelle automatique.

Screenshot that shows another virtual machine scale set percentage CPU example.

Le graphique final montre les métriques Seuil de métrique et Capacité observée. La métrique Seuil de métrique en haut pour la règle de scale-out est 70. La métrique Capacité observée en bas indique le nombre d’instances actives, actuellement 3.

Screenshot that shows Metric Threshold and Observed Capacity.

Remarque

Vous pouvez filtrer le Seuil de métrique par règle de déclenchement de métrique dimension scale-out (augmentation) pour afficher le seuil de scale-out et par règle de scale-in (diminution).

Exemple 2 : mise à l’échelle automatique avancée pour un groupe de machines virtuelles identiques

Un paramètre de mise à l’échelle automatique permet à une ressource de groupe de machines virtuelles identiques d’effectuer un scale-out en fonction de sa propre métrique Flux sortants. L’option Diviser la métrique par le nombre d’instances pour le seuil de métrique est sélectionnée.

La règle d’action de mise à l’échelle est la suivante : si la valeur de Flux sortants par instance est supérieure à 10, le service de mise à l’échelle automatique doit effectuer un scale-out de 1 instance.

Dans ce cas, la valeur de métrique observée du moteur de mise à l’échelle automatique est calculée en tant que valeur métrique réelle divisée par le nombre d’instances. Si la valeur de métrique observée est inférieure au seuil, aucune action de montée en charge n’est initiée.

Les captures d’écran suivantes montrent deux graphiques de métriques.

Le graphique Flux sortants moyens affiche la valeur de la métrique Flux sortants. La valeur réelle est 6.

Screenshot that shows the Average Outbound Flows page with an example of a virtual machine scale set autoscale metrics chart.

Le graphique suivant montre quelques valeurs :

  • La métrique Valeur de métrique observée au milieu est 3, car il y a 2 instances actives, et qu’on divise 6 par 2 pour obtenir 3.
  • La métrique Capacité observée en bas montre le nombre d’instances vues par un moteur de mise à l’échelle automatique.
  • La métrique Seuil de métrique en haut est définie sur 10.Screenshot that shows a virtual machine scale set autoscale metrics charts example.

S’il existe plusieurs règles d’action de mise à l’échelle, vous pouvez utiliser le fractionnement ou l’option ajouter un filtre dans le graphique de l’explorateur de métriques pour examiner une métrique en fonction d’une source ou règle spécifique. Pour plus d’informations sur le fractionnement d’un graphique de métriques, consultez Fonctionnalités avancées des graphiques de métrique - Fractionnement.

Exemple 3 : comprendre les événements de mise à l’échelle automatique

Dans l’écran de paramètres de mise à l’échelle automatique, accédez à l’onglet Historique des exécutions pour afficher les actions de mise à l’échelle les plus récentes. L’onglet affiche également l’évolution de Capacité observée dans le temps. Pour plus d’informations sur les actions de mise à l’échelle automatique, y compris des opérations telles que la mise à jour/suppression de paramètres de mise à l’échelle automatique, consultez le journal d’activité et filtrez par opération de mise à l’échelle automatique.

Screenshot that shows autoscale settings run history.

Journaux de ressources de mise à l’échelle automatique

Le service de mise à l’échelle automatique fournit des journaux de ressources. Il existe deux catégories de journaux :

  • Évaluations de mise à l’échelle automatique : le moteur de mise à l’échelle automatique enregistre des entrées de journal pour chaque évaluation de condition unique chaque fois qu’il effectue une vérification. L’entrée comprend des détails sur les valeurs observées des métriques, les règles évaluées et si l’évaluation a entraîné une action de mise à l’échelle.
  • Actions de mise à l’échelle automatique : le moteur enregistre les événements d’action de mise à l’échelle initiés par le service de mise à l’échelle automatique et les résultats de ces actions d’échelle (réussite, échec, ainsi que l’ampleur de la mise à l’échelle observée par le service de mise à l’échelle automatique).

Comme pour tout service Azure Monitor pris en charge, vous pouvez utiliser les paramètres de diagnostic pour acheminer ces journaux vers :

  • Votre espace de travail Log Analytics pour une analyse détaillée.
  • Azure Event Hubs puis vers des outils non Azure.
  • Votre compte de stockage Azure pour les archiver.

Screenshot that shows autoscale diagnostic settings.

La capture d’écran précédente montre le volet Paramètres de diagnostic de mise à l’échelle automatique du portail Azure. Vous pouvez y sélectionner l’onglet Journaux de diagnostic/ressources et activer le regroupement et le routage des journaux. Vous pouvez également effectuer la même action à l’aide de l’API REST, de l’interface Azure CLI, de PowerShell et des modèles Azure Resource Manager pour les paramètres de diagnostic en choisissant le type de ressource tel que Microsoft.Insights/AutoscaleSettings.

Résoudre des problèmes à l’aide des journaux de mise à l’échelle automatique

Pour une expérience de dépannage optimale, nous vous recommandons d’acheminer vos journaux vers Azure Monitor Logs (Log Analytics) dans un espace de travail lorsque vous créez le paramètre de mise à l’échelle automatique. Ce processus est illustré dans la capture d’écran de la section précédente. Vous pourrez valider les évaluations et actions de mise à l’échelle plus facilement à l’aide de Log Analytics.

Une fois que vous avez configuré les journaux de mise à l’échelle automatique pour qu’ils soient envoyés à l’espace de travail Log Analytics, vous pouvez exécuter les requêtes suivantes pour vérifier les journaux.

Pour commencer, essayez cette requête pour afficher les journaux d’évaluation de mise à l’échelle automatique les plus récents :

AutoscaleEvaluationsLog
| limit 50

Ou exécutez la requête suivante pour afficher les journaux des actions de mise à l’échelle les plus récents :

AutoscaleScaleActionsLog
| limit 50

Utilisez les sections suivantes pour répondre à ces questions.

Une action de mise à l’échelle que vous n’attendiez pas s’est produite

Exécutez d’abord la requête pour une action de mise à l’échelle afin de trouver l’action de mise à l’échelle qui vous intéresse. S’il s’agit de la dernière action de mise à l’échelle, utilisez la requête suivante :

AutoscaleScaleActionsLog
| take 1

Sélectionnez le champ CorrelationId dans le journal des actions de mise à l’échelle. Utilisez CorrelationId pour trouver le journal d’évaluation approprié. L’exécution de la requête suivante affiche toutes les règles et conditions qui ont été évaluées et qui ont conduit à cette action de mise à l’échelle.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId>"

Quel profil a entraîné une action de mise à l’échelle ?

Une action de mise à l’échelle s’est produite, mais vous avez des règles et des profils qui se chevauchent et vous devez effectuer le suivi de celle ou celui qui a été à l’origine de l’action.

Recherchez le CorrelationId de l’action de mise à l’échelle, comme expliqué dans l’exemple 1. Exécutez ensuite la requête sur les journaux d’évaluation pour en savoir plus sur le profil.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId_Guid>"
| where ProfileSelected == true
| project ProfileEvaluationTime, Profile, ProfileSelected, EvaluationResult

L’évaluation du profil dans son ensemble peut également être mieux comprise à l’aide de la requête suivante :

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName contains == "profileEvaluation"
| project OperationName, Profile, ProfileEvaluationTime, ProfileSelected, EvaluationResult

Aucune action de mise à l’échelle n’a eu lieu

Vous vous attendiez à une action de mise à l’échelle, mais aucune n’a eu lieu. Il se peut qu’il n’y ait pas d’événements ou de journaux d’action de mise à l’échelle.

Passez en revue les métriques de mise à l’échelle automatique si vous utilisez une règle de mise à l’échelle basée sur les métriques. Il est possible que la valeur Métrique observée ou Capacité observée soient différentes de ce à quoi vous vous attendiez et que la règle de mise à l’échelle n’ait donc pas été déclenchée. Vous pouvez toujours voir les évaluations, mais pas de règle de montée en charge. Il est également possible que le temps de recharge ait empêché une action de mise à l’échelle.

Passez en revue les journaux d’évaluation de la mise à l’échelle automatique pendant la période pendant laquelle vous vous attendiez à une action de mise à l’échelle. Examinez toutes les évaluations effectuées et pourquoi le système a décidé de ne pas déclencher une action de mise à l’échelle.

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName == "MetricEvaluation" or OperationName == "ScaleRuleEvaluation"
| project OperationName, MetricData, ObservedValue, Threshold, EstimateScaleResult

Échec de l'action de mise à l'échelle

Il peut arriver que le service de mise à l’échelle automatique ait effectué une action de mise à l’échelle, mais que le système ait décidé de ne pas mettre à l’échelle ou n’ait pas pu terminer l’action de mise à l’échelle. Utilisez cette requête pour rechercher les actions de mise à l’échelle qui ont échoué :

AutoscaleScaleActionsLog
| where ResultType == "Failed"
| project ResultDescription

Créez des règles d’alerte pour être informé des actions de mise à l’échelle automatique ou des échecs. Vous pouvez également créer des règles d’alerte pour recevoir des notifications sur les événements de mise à l’échelle automatique.

Schéma des journaux de ressources de mise à l’échelle automatique

Pour plus d’informations, consultez Journaux de ressource de mise à l’échelle automatique.

Étapes suivantes

Lisez des informations sur les Meilleures pratiques relatives à la mise à l’échelle automatique.