Superviser Azure Batch

Cet article aborde les points suivants :

  • Types de données de monitoring que vous pouvez collecter pour ce service.
  • Méthodes d’analyse de ces données.

Remarque

Si vous connaissez déjà ce service et/ou Azure Monitor et que vous voulez simplement savoir comment analyser les données de monitoring, consultez la section Analyser vers la fin de cet article.

Quand vous avez des applications critiques et des processus métier qui s’appuient sur des ressources Azure, vous devez monitorer votre système et obtenir des alertes. Le service Azure Monitor collecte et agrège les métriques et les journaux de chaque composant de votre système. Azure Monitor vous fournit une vue de la disponibilité, des performances et de la résilience, et vous avertit des problèmes. Vous pouvez utiliser le portail Azure, PowerShell, Azure CLI, l’API REST ou des bibliothèques de client pour configurer et visualiser les données de monitoring.

Types de ressource

Azure utilise le concept de types de ressources et d’ID pour identifier tout dans un abonnement. Azure Monitor organise de même manière les données de supervision de base en métriques et journaux en fonction des types de ressources, également appelés espaces de noms. Différentes métriques et journaux sont disponibles pour les différents types de ressource. Votre service peut être associé à plusieurs types de ressource.

Les types de ressource font également partie des ID de ressource pour chaque ressource exécutée dans Azure. Par exemple, le type de ressource pour une machine virtuelle peut être Microsoft.Compute/virtualMachines. Pour obtenir la liste des services et leurs types de ressource associés, consultez Fournisseurs de ressources.

Pour plus d’informations sur les types de ressources pour Batch, consultez Informations de référence sur les données de monitoring Batch.

Stockage des données

Pour Azure Monitor :

  • Les données de métriques sont stockées dans la base de données des métriques Azure Monitor.
  • Les données de journal sont stockées dans le magasin de journaux Azure Monitor. Log Analytics est un outil du portail Azure qui peut interroger ce magasin.
  • Le journal d’activité Azure est un magasin distinct avec sa propre interface dans le portail Azure.

Vous pouvez choisir d’acheminer les données des métriques et des journaux d’activité vers le magasin des journaux Azure Monitor. Vous pouvez ensuite utiliser Log Analytics pour interroger les données et les mettre en corrélation avec d’autres données de journal.

De nombreux services peuvent utiliser les paramètres de diagnostic pour envoyer les données des métriques et des journaux vers d’autres emplacements de stockage en dehors d’Azure Monitor. Par exemple, le Stockage Azure, les systèmes partenaires hébergés et les systèmes partenaires non-Azure, en utilisant Event Hubs.

Pour plus d’informations sur la façon dont Azure Monitor stocke les données, consultez Plateforme de données Azure Monitor.

Accéder aux journaux de diagnostics dans le stockage

Si vous archivez les journaux de diagnostic Batch dans un compte de stockage, un conteneur de stockage est créé dans le compte de stockage dès qu’un événement lié se produit. Les objets blob sont créés selon le modèle d’affectation de noms suivant :

insights-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/
RESOURCEGROUPS/{resource group name}/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/{Batch account name}/y={four-digit numeric year}/
m={two-digit numeric month}/d={two-digit numeric day}/
h={two-digit 24-hour clock hour}/m=00/PT1H.json

Par exemple :

insights-metrics-pt1m/resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/
RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/MYBATCHACCOUNT/y=2018/m=03/d=05/h=22/m=00/PT1H.json

Chaque fichier blob PT1H.json contient des événements au format JSON qui se sont produits pendant l’heure spécifiée dans l’URL de l’objet blob (par exemple, h=12). Pendant l’heure en cours, les événements sont ajoutés au fichier PT1H.json à mesure qu’ils se produisent. La valeur de minute (m=00) est toujours 00, étant donné que les événements du journal de diagnostic sont répartis en différents objets blob par heure. Toutes les heures sont exprimées en heure UTC.

L’exemple suivant montre une entrée PoolResizeCompleteEvent dans un fichier journal PT1H.json. L’entrée inclut des informations sur le nombre actuel et cible de nœuds dédiés et à faible priorité, ainsi que sur l’heure de début et de fin de l’opération.

{ "Tenant": "65298bc2729a4c93b11c00ad7e660501", "time": "2019-08-22T20:59:13.5698778Z", "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/BATCHACCOUNTS/MYBATCHACCOUNT/", "category": "ServiceLog", "operationName": "PoolResizeCompleteEvent", "operationVersion": "2017-06-01", "properties": {"id":"MYPOOLID","nodeDeallocationOption":"Requeue","currentDedicatedNodes":10,"targetDedicatedNodes":100,"currentLowPriorityNodes":0,"targetLowPriorityNodes":0,"enableAutoScale":false,"isAutoPool":false,"startTime":"2019-08-22 20:50:59.522","endTime":"2019-08-22 20:59:12.489","resultCode":"Success","resultMessage":"The operation succeeded"}}

Pour accéder par programme aux journaux d’activité de votre compte de stockage, utilisez les API de stockage.

Métriques de plateforme Azure Monitor

Azure Monitor fournit des métriques de plateforme pour la plupart des services. Ces mesures sont :

  • Définies individuellement pour chaque espace de noms.
  • Stockées dans la base de données de métriques de série chronologique Azure Monitor.
  • Légères et capables de prendre en charge les alertes en quasi-temps réel.
  • Utilisées pour suivre les performances d’une ressource au fil du temps.

Collecte : Azure Monitor collecte automatiquement les métriques de plateforme. Aucune configuration n'est requise.

Routage : en général, vous pouvez aussi acheminer les métriques de plateforme vers les journaux Azure Monitor/Log Analytics afin de pouvoir les interroger avec d’autres données de journal. Pour plus d’informations, consultez le paramètre de diagnostic des métriques. Pour savoir comment configurer des paramètres de diagnostic pour un service, consultez Créer des paramètres de diagnostic dans Azure Monitor.

Pour obtenir la liste de toutes les métriques qu’il est possible de collecter pour toutes les ressources dans Azure Monitor, consultez Métriques prises en charge dans Azure Monitor.

Parmi les métriques d’un compte Batch figurent par exemple : Événements de création de pool, Nombre de nœuds à priorité basse et Événements de fin de tâche. Ces métriques peuvent aider à identifier des tendances et peuvent être utilisées pour l’analyse de données.

Remarque

Les métriques émises au cours des 3 dernières minutes peuvent toujours être agrégées, par conséquent, les valeurs peuvent être sous-signalées pendant cette période. La remise de métriques n’est pas garantie et peut être affectée par la remise en désordre, la duplication ou la perte de données.

Pour obtenir la liste complète des métriques disponibles pour Batch, consultez Informations de référence sur les données de monitoring Batch.

Journaux de ressources Azure Monitor

Les journaux de ressource fournissent des insights sur les opérations effectuées par une ressource Azure. Les journaux sont générés automatiquement, mais vous devez les router vers les journaux Azure Monitor pour les enregistrer ou les interroger. Les journaux sont organisés en catégories. Un espace de noms donné peut avoir plusieurs catégories de journal de ressource.

Collecte : les journaux de ressource ne sont pas collectés ni stockés tant que vous n’avez pas créé un paramètre de diagnostic et routé les journaux vers un ou plusieurs emplacements. Lorsque vous créez un paramètre de diagnostic, vous spécifiez les catégories de journaux à collecter. Il existe plusieurs façons de créer et gérer des paramètres de diagnostic, notamment le portail Azure, programmatiquement et avec Azure Policy.

Routage : la valeur par défaut suggérée est le routage des journaux de ressource vers les journaux Azure Monitor afin de pouvoir les interroger avec d’autres données de journal. D’autres emplacements comme le Stockage Azure, Azure Event Hubs et certains partenaires de monitoring de Microsoft sont également disponibles. Pour plus d’informations, consultez Journaux de ressource Azure et Destinations des journaux de ressource.

Pour plus d’informations sur la collecte, le stockage et le routage des journaux de ressource, consultez Paramètres de diagnostic dans Azure Monitor.

Pour obtenir la liste de toutes les catégories de journal de ressource disponibles dans Azure Monitor, consultez Journaux de ressource pris en charge dans Azure Monitor.

Tous les journaux de ressource dans Azure Monitor ont les mêmes champs d’en-tête, suivis de champs propres au service. Le schéma commun est décrit dans Schéma des journaux des ressources Azure Monitor.

Pour les catégories de journaux d’activité des ressources disponibles, leurs tables Log Analytics associées et les schémas de journaux d’activité pour Batch, consultez Informations de référence sur les données de monitoring Batch.

Vous devez activer explicitement les paramètres de diagnostic pour chaque compte Batch à surveiller.

Pour le service Batch, vous pouvez collecter les journaux d’activité suivants :

La capture d’écran suivante montre un exemple de paramètre de diagnostic qui envoie allLogs et AllMetrics vers un espace de travail Log Analytics.

Capture d'écran de la page Paramètres de diagnostic montrant un exemple.

Lorsque vous créez un pool Azure Batch, vous pouvez installer l’une des extensions suivantes associées à la surveillance sur les nœuds de calcul pour collecter et analyser des données :

Pour une comparaison des différentes extensions et agents, et des données qu’ils collectent, consultez Comparer les agents.

Journal des activités Azure

Le journal d’activité contient des évènements au niveau de l’abonnement qui suivent les opérations sur chaque ressource Azure qui sont vues comme extérieures à cette ressource, par exemple, la création d’une ressource ou le démarrage d’une machine virtuelle.

Collecte : les évènements de journal d’activité sont générés et collectés automatiquement dans un magasin distinct pour leur consultation dans le portail Azure.

Routage : vous pouvez envoyer les données de journal d’activité aux journaux Azure Monitor afin de pouvoir les analyser en même temps que d’autres données de journal. D’autres emplacements comme le Stockage Azure, Azure Event Hubs et certains partenaires de monitoring de Microsoft sont également disponibles. Pour plus d’informations sur le routage du journal d’activité, consultez Vue d’ensemble du journal d’activité Azure.

Plus précisément, pour les comptes Batch, le journal d’activité collecte les événements liés à la gestion des clés et à la création ou la suppression de comptes.

Analyser les données de surveillance

Il existe de nombreux outils pour analyser les données de supervision.

Outils Azure Monitor

Azure Monitor prend en charge les outils de base suivants :

Les outils qui permettent une visualisation plus complexe sont notamment :

  • Les tableaux de bord, qui vous permettent de combiner différentes sortes de données dans un même volet du portail Azure.
  • Les workbooks, des rapports personnalisables que vous pouvez créer dans le portail Azure. Les workbooks peuvent inclure du texte, des métriques et des requêtes de journal.
  • Grafana, un outil de plateforme ouvert, parfait pour les tableaux de bord opérationnels. Vous pouvez utiliser Grafana pour créer des tableaux de bord à partir de données de plusieurs sources autres qu’Azure Monitor.
  • Power BI, un service d’analyse métier qui fournit des visualisations interactives pour diverses sources de données. Vous pouvez configurer Power BI pour importer automatiquement les données de journal à partir d’Azure Monitor afin de tirer parti de ces visualisations supplémentaires.

Lorsque vous analysez des métriques basées sur le décompte telles que le nombre de cœurs dédiés ou le nombre de nœuds à basse priorité dans Batch, utilisez l'agrégation Avg. Pour les métriques basées sur les événements, comme Événements de fin de redimensionnement de pool, utilisez l’agrégation Count. N’utilisez pas l’agrégation Sum, car elle ajoute les valeurs de tous les points de données reçus pendant la période du graphique.

Outils d’exportation Azure Monitor

Vous pouvez extraire des données d’Azure Monitor dans d’autres outils en utilisant les méthodes suivantes :

Pour bien démarrer avec l’API REST pour Azure Monitor, consultez Procédure pas à pas de l’API REST d’analyse Azure.

Requêtes Kusto

Vous pouvez analyser les données de supervision dans les journaux Azure Monitor ou le magasin Log Analytics à l’aide du langage de requête Kusto (KQL).

Important

Quand vous sélectionnez Journaux dans le menu du service dans le portail, Log Analytics s’ouvre avec l’étendue de requête définie sur le service actuel. Cette étendue signifie que les requêtes de journal ont seulement des données de ce type de ressource. Si vous voulez exécuter une requête qui comprend des données d’autres services Azure, sélectionnez Journaux dans le menu Azure Monitor. Pour plus d’informations, consultez Étendue de requête de journal et intervalle de temps dans la fonctionnalité Log Analytics d’Azure Monitor.

Pour obtenir la liste des requêtes courantes pour n’importe quel service, consultez l’Interface de requêtes Log Analytics.

Exemples de requêtes

Voici quelques exemples de requêtes de journal pour Batch :

Redimensionnements de pools : répertorie les temps de redimensionnement par pool et le code de résultat (succès ou échec) :

AzureDiagnostics
| where OperationName=="PoolResizeCompleteEvent"
| summarize operationTimes=make_list(startTime_s) by poolName=id_s, resultCode=resultCode_s

Durées des tâches : donne le temps écoulé des tâches en secondes, du début à la fin de la tâche.

AzureDiagnostics
| where OperationName=="TaskCompleteEvent"
| extend taskId=id_s, ElapsedTime=datetime_diff('second', executionInfo_endTime_t, executionInfo_startTime_t) // For longer running tasks, consider changing 'second' to 'minute' or 'hour'
| summarize taskList=make_list(taskId) by ElapsedTime

Tâches ayant échoué par travail : répertorie les tâches ayant échoué par travail parent.

AzureDiagnostics
| where OperationName=="TaskFailEvent"
| summarize failedTaskList=make_list(id_s) by jobId=jobId_s, ResourceId

Alertes

Azure Monitor vous alerte de façon proactive quand des conditions spécifiques sont détectées dans vos données de monitoring. Les alertes permettent d’identifier et de résoudre les problèmes affectant votre système avant que vos clients ne les remarquent. Pour plus d’informations, consultez Alertes Azure Monitor.

Il existe de nombreuses sources d’alertes courantes pour les ressources Azure. Pour obtenir des exemples d’alertes courantes pour les ressources Azure, consultez Exemples de requêtes d’alerte de journal. Le site Azure Monitor Baseline Alerts (AMBA) fournit une méthode semi-automatisée de mise en œuvre des alertes, des tableaux de bord et des recommandations concernant les métriques de plateforme. Le site s’applique à un sous-ensemble des services Azure en constante expansion, y compris tous les services qui font partie de la zone d’atterrissage Azure (ALZ).

Le schéma d’alerte commun standardise la consommation de notifications d'alerte pour Azure Monitor. Pour plus d’informations, consultez Schéma d’alerte courant.

Types d'alertes

Vous pouvez définir une alerte sur n’importe quelle source de données de métrique ou de journal dans la plateforme de données Azure Monitor. Il existe de nombreux types d’alertes différents en fonction des services que vous monitorez et des données de monitoring que vous collectez. Les différents types d’alertes ont divers avantages et inconvénients. Pour plus d’informations, consultez Choisir le bon type d’alerte de monitoring.

La liste suivante décrit les types d’alertes Azure Monitor que vous pouvez créer :

  • Les alertes de métrique évaluent les métriques de ressource à intervalles réguliers. Les métriques peuvent être des métriques de plateforme, des métriques personnalisées, des journaux provenant d’Azure Monitor convertis en métriques ou des métriques Application Insights. Les alertes de métriques peuvent également appliquer plusieurs conditions et seuils dynamiques.
  • Les alertes de journal permettent aux utilisateurs d’utiliser une requête Log Analytics pour évaluer les journaux de ressource à une fréquence prédéfinie.
  • Les alertes de journal d’activité sont déclenchées quand un nouvel événement de journal d’activité correspond à des conditions définies. Les alertes Resource Health et les alertes Service Health sont des alertes de journal d’activité qui concernent l’intégrité de votre service et de vos ressources.

Certains services Azure prennent également en charge les alertes de détection intelligente, les alertes Prometheus ou les règles d’alerte recommandées.

Pour certains services, vous pouvez opérer une surveillance à grande échelle en appliquant la même règle d’alerte de métrique à plusieurs ressources du même type qui existent dans la même région Azure. Les notifications individuelles sont envoyées pour chaque ressource supervisée. Pour connaître les services et clouds Azure pris en charge, consultez Monitorer plusieurs ressources avec une seule règle d’alerte.

Remarque

Si vous créez ou exécutez une application qui s’exécute sur votre service, il est possible qu’Azure Monitor Application Insights vous propose d’autres types d’alertes.

Autres règles d’alerte

Étant donné que la remise des métriques peut être sujette à des incohérences, telles que la remise en désordre, la perte de données ou la duplication, nous vous recommandons d’éviter les alertes qui se déclenchent sur un point de données unique. Utilisez plutôt des seuils pour tenir compte de ces incohérences sur une période donnée.

Par exemple, vous souhaiterez peut-être configurer une alerte de métrique lorsque votre nombre de cœurs en basse priorité descend à un certain niveau. Vous pouvez ensuite utiliser cette alerte pour ajuster la composition de vos pools. Pour obtenir de meilleurs résultats, définissez une période de 10 minutes ou plus, pendant laquelle des alertes se déclenchent si le nombre moyen de cœurs en basse priorité se situe sous la valeur du seuil pendant toute cette période. Cela permet de disposer de plus de temps pour l’agrégation des métriques afin d’obtenir des résultats plus précis.

Le tableau suivant répertorie certains déclencheurs de règle d’alerte pour Batch. Ces règles d'alerte ne sont que des exemples. Vous pouvez définir des alertes une métrique, une entrée de journal ou une entrée de journal d’activité répertoriée dans Informations de référence sur les données de monitoring Batch.

Type d’alerte Condition Description
Mesure Nombre de nœuds inutilisables Chaque fois que le nombre de nœuds inutilisable est supérieur à 0
Mesure Événements d’échec de tâches Chaque fois que le nombre total d’événements d’échec de tâche est supérieur au seuil dynamique

Recommandations d’Advisor

Pour certains services, si des conditions critiques ou des changements imminents se produisent pendant des opérations de ressources, une alerte s’affiche dans la page Vue d’ensemble du service concerné dans le portail. Des informations supplémentaires et les correctifs recommandés pour l’alerte sont disponibles dans les Recommandations Advisor sous Surveillance dans le menu de gauche. Pendant les opérations normales, aucune recommandation Advisor ne s’affiche.

Pour plus d’informations sur Azure Advisor, consultez Vue d’ensemble d’Azure Advisor.

Autres options de monitoring Batch

Batch Explorer est un outil client autonome gratuit, doté de nombreuses fonctionnalités aidant à créer, déboguer et surveiller les applications Azure Batch. Vous pouvez utiliser Azure Batch Insights avec Batch Explorer pour obtenir des statistiques système pour vos nœuds Batch, comme les compteurs de performances de machine virtuelle.

Dans vos applications Batch, vous pouvez utiliser la bibliothèque .NET Batch pour surveiller ou interroger l’état de vos ressources, notamment les travaux, les tâches, les nœuds et les pools. Par exemple :

Vous pouvez utiliser les API Batch pour créer des requêtes de liste pour les travaux, les tâches Batch, les nœuds de calcul et d’autres ressources. Pour plus d’informations sur le filtrage des requêtes de liste, consultez Créer des requêtes pour répertorier les ressources Batch efficacement.

Ou, au lieu d’utiliser des requêtes de liste potentiellement chronophages qui renvoient des informations détaillées sur de grandes collections de tâches ou de nœuds, vous pouvez utiliser les opérations Obtenir le nombre de tâches et Répertorier le nombre de nœuds de pool pour obtenir des décomptes des tâches Batch et des nœuds de calcul. Pour plus d’informations, consultez Surveiller les solutions Batch en comptant les tâches et les nœuds par état.

Vous pouvez intégrer Application Insights à vos applications Azure Batch pour instrumenter votre code avec des métriques et un suivi personnalisés. Pour obtenir une procédure détaillée sur la manière d'ajouter Application Insights à une solution .NET Batch, d'instrumenter le code de l'application, de surveiller l'application dans le portail Azure et de créer des tableaux de bord personnalisés, consultez Surveiller et déboguer une application .NET Azure Batch avec Application Insights et l’exemple de code associé.