Journaux de diagnostic et métriques du gestionnaire du flux de travail
Remarque
Le gestionnaire du flux de travail est propulsé par Apache Airflow.
Cet article vous détaille les étapes pour :
- Activer les journaux de diagnostic et les métriques pour le gestionnaire du flux de travail dans Azure Data Factory.
- Visualiser les journaux et les métriques.
- Exécutez une requête .
- Analyser les métriques et définir le système d’alerte en cas de défaillance du graphique orienté acyclique (Directed Acyclic Graph/DAG).
Prérequis
Vous avez besoin d’un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
Activer les journaux de diagnostic et les métriques pour le gestionnaire du flux de travail
Ouvrez votre ressource Data Factory et sélectionnez Paramètres de diagnostic (Diagnostic settings) dans le volet le plus à gauche. Sélectionnez ensuite Ajouter un paramètre de diagnostic.
Renseignez le nom des Paramètres de diagnostic. Sélectionnez les catégories suivantes pour les journaux Airflow :
- Journaux d’exécution des tâches Airflow
- Journaux worker Airflow
- Journaux de traitement DAG Airflow
- Journaux du planificateur Airflow
- Journaux web Airflow
- Si vous sélectionnez AllMetrics, plusieurs métriques Data Factory sont mises à votre disposition pour surveiller vos charges de travail ou déclencher des alertes. Ces métriques incluent des métriques pour l’activité Data Factory et pour le runtime d’intégration du gestionnaire du flux de travail, comme
AirflowIntegrationRuntimeCpuUsage
etAirflowIntegrationRuntimeMemory
.
Sous Détails de la destination, cochez la case Envoyer à l’espace de travail Log Analytics.
Sélectionnez Enregistrer.
Afficher les journaux d’activité
Après avoir ajouté les paramètres de diagnostic, vous pourrez en trouver la liste dans la section Paramètres de diagnostic. Pour accéder aux journaux et les afficher, sélectionnez l’espace de travail Log Analytics que vous avez configuré.
Dans la section Optimisez votre expérience Log Analytics (Maximize your Log Analytics experience), cliquez sur Afficher les journaux (View logs).
Vous êtes dirigé vers votre espace de travail Log Analytics où vous pouvez voir que les tables que vous avez sélectionnées ont été importées automatiquement dans l’espace de travail.
Autres liens utiles pour le schéma :
- Référence des journaux Azure Monitor : ADFAirflowSchedulerLogs | Microsoft Learn
- Référence des journaux Azure Monitor : ADFAirflowTaskLogs | Microsoft Learn
- Référence des journaux Azure Monitor : ADFAirflowWebLogs | Microsoft Learn
- Référence des journaux Azure Monitor : ADFAirflowWorkerLogs | Microsoft Learn
- Référence des journaux Azure Monitor : AirflowDagProcessingLogs | Microsoft Learn
Écrivez votre requête.
Commençons par la requête la plus simple, qui retourne tous les enregistrements dans
ADFAirflowTaskLogs
. Vous pouvez double-cliquer sur le nom de la table pour l’ajouter à une fenêtre de requête. Vous pouvez également entrer le nom de la table directement dans la fenêtre.Pour affiner vos résultats de recherche, par exemple en les filtrant en fonction d’un ID de tâche spécifique, vous pouvez utiliser la requête suivante :
ADFAirflowTaskLogs | where DagId == "<your_dag_id>" and TaskId == "<your_task_id>"
De même, vous pouvez créer des requêtes personnalisées en fonction de vos besoins en utilisant toute table disponible dans LogManagement
.
Pour plus d’informations, consultez l’article suivant :
- Tutoriel Log Analytics
- Présentation du langage de requête Kusto (KQL) : Azure Data Explorer | Microsoft Learn
Mesures de surveillance
Data Factory propose des métriques complètes pour les runtimes d'intégration Airflow, ce qui vous permet d’analyser efficacement le niveau de performance de votre runtime d'intégration Airflow, puis de définir des mécanismes d’alerte en fonction de vos besoins.
Ouvrez votre ressource Data Factory.
Dans le volet le plus à gauche, sous la section Analyse (Monitoring), sélectionnez Métriques (Metrics).
Sélectionnez la Étendue>Espace de noms de métrique>Métrique que vous souhaitez analyser.
Étudiez le graphique multiligne qui visualise le Pourcentage UC du runtime d'intégration (Integration Runtime CPU Percentage) et la taille du conteneur DAG du runtime d’intégration (Integration Runtime Dag Bag Size).
Vous pouvez configurer une règle d’alerte qui se déclenche lorsque vos métriques répondent à des conditions spécifiques. Pour plus d’informations, consultez Présentation des alertes Azure Monitor.
Sélectionnez Enregistrer dans le tableau de bord (Save to dashboard) une fois votre graphique terminé, sinon celui-ci disparaît.
Métriques Airflow
Le tableau suivant répertorie les métriques disponibles pour le gestionnaire du flux de travail. Les en-têtes de tableau sont les suivants :
- Métrique : nom complet de la métrique tel qu’il apparaît dans le Portail Azure.
- Nom dans l’API REST : nom de la métrique comme appelé dans l’API REST.
- Description : description de la métrique.
- Unité : unité de mesure.
- Agrégation : type d’agrégation par défaut. Les valeurs valides sont Average, Minimum, Maximum, Total et Count.
- Dimensions: dimensions disponibles pour la métrique.
- Fragments de temps : intervalles auxquels la métrique est échantillonnée. Par exemple, PT1M indique que la métrique est échantillonné toutes les minutes, PT30M toutes les 30 minutes, PT1H toutes les heures, et ainsi de suite.
- Exportation DS : indique si la métrique est exportable vers les journaux Azure Monitor via les paramètres de diagnostic.
Mesure | Nom dans l’API REST | Description | Unité | Agrégation | Dimensions | Fragments de temps | Exportation DS |
---|---|---|---|---|---|---|---|
Erreur de délai d’expiration de la tâche Celery dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeCeleryTaskTimeoutError |
Nombre d’erreurs AirflowTaskTimeout générées lors de la publication de la tâche sur le répartiteur Celery. |
Count | Total | IntegrationRuntimeName |
PT1M | Non |
Récupération des DAG de la base de données dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeCollectDBDags |
Millisecondes prises pour extraire tous les DAG sérialisés depuis la base de données. | Millisecondes | Average | IntegrationRuntimeName |
PT1M | Non |
Pourcentage UC du runtime d’intégration Airflow | AirflowIntegrationRuntimeCpuPercentage |
Pourcentage d’utilisation du processeur du runtime d’intégration Airflow. | Pourcentage | Average | IntegrationRuntimeName , ContainerName |
PT1M | Non |
Utilisation de la mémoire dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeCpuUsage |
Milliœurs consommés par le runtime d’intégration Airflow, indiquant les ressources UC utilisées en millièmes de cœur de processeur. | Millicores | Moyenne | IntegrationRuntimeName , ContainerName |
PT1M | Oui |
Taille du conteneur DAG du runtime d’intégration Airflow | AirflowIntegrationRuntimeDagBagSize |
Nombre de DAG trouvés lorsque le planificateur a exécuté une analyse en fonction de sa configuration. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Exceptions de rappel DAG du runtime d’intégration Airflow | AirflowIntegrationRuntimeDagCallbackExceptions |
Nombre d’exceptions levées à partir de rappels DAG. Lorsque des exceptions se produisent, cela signifie que le rappel DAG ne fonctionne pas. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Erreur d’actualisation de fichiers DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGFileRefreshError |
Nombre de défaillances lors du chargement d’un fichier DAG quelconque. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Erreurs d’importation lors du traitement DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingImportErrors |
Nombre d’erreurs lors de la tentative d’analyse des fichiers DAG. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Dernière durée du traitement DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingLastDuration |
Secondes nécessaires pour charger le fichier DAG spécifique. | Millisecondes | Average | IntegrationRuntimeName , DagFile |
PT1M | Non |
Durée écoulée en secondes depuis le dernier traitement DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingLastRunSecondsAgo |
Secondes depuis que <dag_file> a été traité pour la dernière fois. | Secondes | Moyenne | IntegrationRuntimeName , DagFile |
PT1M | Non |
Blocage du gestionnaire du traitement DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingManagerStalls |
Nombre de DagFileProcessorManager bloqués. |
Count | Total | IntegrationRuntimeName |
PT1M | Non |
Processus de traitement DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingProcesses |
Nombre relatif de processus d’analyse DAG en cours d’exécution. (Par exemple, ce delta est négatif lorsque, depuis que la dernière métrique a été envoyée, les processus ont été terminés.) | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Dépassements de délai par le processeur de traitement DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingProcessorTimeouts |
Nombre de processeurs de fichier qui ont été tués parce qu’ils ont pris trop de temps. | Secondes | Moyenne | IntegrationRuntimeName |
PT1M | Non |
Temps d’analyse total du traitement des DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGProcessingTotalParseTime |
Secondes nécessaires pour analyser et importer dag_processing.file_path_queue_size fichiers DAG. |
Secondes | Moyenne | IntegrationRuntimeName |
PT1M | Non |
Contrôle des dépendances d’exécution DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGRunDependencyCheck |
Millisecondes prises pour vérifier les dépendances DAG. | Millisecondes | Average | IntegrationRuntimeName , DagId |
PT1M | Non |
Temps écoulé pour que l’exécution d’un DAG atteigne un état d’échec dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGRunDurationFailed |
Secondes nécessaires pour qu’un DagRun atteigne un état d’échec. |
Millisecondes | Average | IntegrationRuntimeName , DagId |
PT1M | Non |
Temps écoulé pour que l’exécution DAG atteigne un état de réussite dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGRunDurationSuccess |
Secondes nécessaires pour qu’un DagRun atteigne un état de réussite. |
Millisecondes | Average | IntegrationRuntimeName , DagId |
PT1M | Non |
Délai entre la planification de l’exécution DAG et la première tâche dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGRunFirstTaskSchedulingDelay |
Secondes écoulées entre la première tâche start_date et le début attendu du DagRun . |
Millisecondes | Average | IntegrationRuntimeName , DagId |
PT1M | Non |
Délai entre la planification et le démarrage de l’exécution DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeDAGRunScheduleDelay |
Secondes de délai entre la date de début planifiée du DagRun et la date de début réelle du DagRun . |
Millisecondes | Average | IntegrationRuntimeName , DagId |
PT1M | Non |
Emplacements ouverts sur l’exécuteur dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeExecutorOpenSlots |
Nombre d’emplacements ouverts sur l’exécuteur. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches mises en file d’attente sur l’exécuteur dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeExecutorQueuedTasks |
Nombre de tâches mises en file d’attente sur l’exécuteur. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches en cours d’exécution sur l’exécuteur dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeExecutorRunningTasks |
Nombre de tâches en cours d’exécution sur l’exécuteur. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Fin de travail dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeJobEnd |
Nombre de travaux <job_name> terminés, par exemple SchedulerJob et LocalTaskJob . |
Count | Total | IntegrationRuntimeName , Job |
PT1M | Non |
Défaillance de pulsation dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeJobHeartbeatFailure |
Nombre d’échecs de pulsations pour un travail <job_name>, par exemple SchedulerJob et LocalTaskJob . |
Count | Total | IntegrationRuntimeName , Job |
PT1M | Non |
Début de travail dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeJobStart |
Nombre de travaux <job_name> démarrés, par exemple SchedulerJob et LocalTaskJob . |
Count | Total | IntegrationRuntimeName , Job |
PT1M | Non |
Pourcentage mémoire dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeMemoryPercentage |
Pourcentage de mémoire utilisé par les environnements de runtime d’intégration Airflow. | Pourcentage | Average | IntegrationRuntimeName , ContainerName |
PT1M | Oui |
Nombre de nœuds du runtime d’intégration Airflow | AirflowIntegrationRuntimeNodeCount |
Count | Average | IntegrationRuntimeName , ComputeNodeSize |
PT1M | Oui | |
Défaillances opérateur dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeOperatorFailures |
Nombre total de défaillances de l’opérateur. | Count | Total | IntegrationRuntimeName , Operator |
PT1M | Non |
Réussites opérateur dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeOperatorSuccesses |
Nombre total de réussites de l’opérateur. | Count | Total | IntegrationRuntimeName , Operator |
PT1M | Non |
Emplacements ouverts dans le pool du runtime d’intégration Airflow | AirflowIntegrationRuntimePoolOpenSlots |
Nombre d’emplacements ouverts dans le pool. | Count | Total | IntegrationRuntimeName , Pool |
PT1M | Non |
Emplacements en file d’attente dans le pool du runtime d’intégration Airflow | AirflowIntegrationRuntimePoolQueuedSlots |
Nombre d’emplacements mis en file d’attente dans le pool. | Count | Total | IntegrationRuntimeName , Pool |
PT1M | Non |
Emplacements en cours d’exécution dans le pool du runtime d’intégration Airflow | AirflowIntegrationRuntimePoolRunningSlots |
Nombre d’emplacements en cours d’exécution dans le pool. | Count | Total | IntegrationRuntimeName , Pool |
PT1M | Non |
Tâches non planifiables dans le pool du runtime d’intégration Airflow | AirflowIntegrationRuntimePoolStarvingTasks |
Nombre de tâches non planifiables dans le pool. | Count | Total | IntegrationRuntimeName , Pool |
PT1M | Non |
Impossibilité pour le Scheduler de monopoliser la section critique dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerCriticalSectionBusy |
Nombre de fois où un processus de planificateur a essayé d’obtenir un verrouillage sur la section critique (nécessaire pour envoyer des tâches à l’exécuteur) et l’a trouvé verrouillée par un autre processus. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Temps passé dans la section critique par le Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerCriticalSectionDuration |
Millisecondes passées dans la section critique d’une boucle du planificateur. Seul un planificateur à la fois peut entrer dans cette boucle. | Millisecondes | Average | IntegrationRuntimeName |
PT1M | Non |
Nombre d’échecs d’e-mail SLA du Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerFailedSLAEmailAttempts |
Nombre de tentatives de notification par e-mail du contrat SLA ayant échoué. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Pulsations du Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerHeartbeat |
Pulsations du Scheduler. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches orphelines adoptées par le Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerOrphanedTasksAdopted |
Nombre de tâches orphelines adoptées par le Scheduler. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches orphelines effacées par le Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerOrphanedTasksCleared |
Nombre de tâches orphelines effacées par le Scheduler. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches exécutables par le Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerTasksExecutable |
Nombre de tâches prêtes pour l’exécution (définies sur mises en file d’attente) en ce qui concerne les limites de pool, la concurrence DAG, l’état de l’exécuteur et la priorité. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches tuées de manière externe par le Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerTasksKilledExternally |
Nombre de tâches tuées de manière externe. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches en cours d’exécution dans le Scheduler du runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerTasksRunning |
Count | Total | IntegrationRuntimeName |
PT1M | Non | |
Tâches non planifiables dans le Scheduler dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeSchedulerTasksStarving |
Nombre de tâches qui ne peuvent pas être planifiées en raison d’une absence d’emplacement ouvert dans le pool. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Instances de tâche démarrées dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeStartedTaskInstances |
Count | Total | IntegrationRuntimeName , DagId , TaskId |
PT1M | Non | |
Instances de tâche créées pour un opérateur donné dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskInstanceCreatedUsingOperator |
Nombre d’instances de tâche créées pour un opérateur spécifique. | Count | Total | IntegrationRuntimeName , Operator |
PT1M | Non |
Durée de l’instance de tâche dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskInstanceDuration |
Millisecondes | Average | IntegrationRuntimeName , DagId , TaskID |
PT1M | Non | |
Défaillances d’instance de tâche dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskInstanceFailures |
Défaillances globales des instances de tâche. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Instance de tâche terminée dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskInstanceFinished |
Instances de tâche globales terminées. | Count | Total | IntegrationRuntimeName , DagId , TaskId , State |
PT1M | Non |
Instance de tâche déjà réussie dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskInstancePreviouslySucceeded |
Nombre d’instances de tâche précédemment réussies. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Réussites d’instance de tâche dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskInstanceSuccesses |
Réussites globales d’instance de tâche. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâche supprimée du DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskRemovedFromDAG |
Nombre de tâches supprimées pour un DAG spécifique. (Autrement dit, la tâche n’existe plus dans le DAG.) | Count | Total | IntegrationRuntimeName , DagId |
PT1M | Non |
Tâche restaurée dans le DAG dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTaskRestoredToDAG |
Nombre de tâches restaurées pour un DAG spécifique. (Autrement dit, une instance de tâche qui était précédemment dans un état REMOVED dans la base de données est ajoutée à un fichier DAG.) | Count | Total | IntegrationRuntimeName , DagId |
PT1M | Non |
Déclencheurs ayant bloqué le thread principal dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTriggersBlockedMainThread |
Nombre de déclencheurs qui ont bloqué le thread principal (probablement parce qu’ils n’étaient pas entièrement asynchrones). | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Défaillances des déclencheurs dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTriggersFailed |
Nombre de déclencheurs qui ont été mis en erreur avant de pouvoir déclencher un évènement. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Déclencheurs en cours d’exécution dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTriggersRunning |
Nombre de déclencheurs en cours d’exécution pour un déclencheur (décrit par le nom d’hôte). | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Déclencheurs ayant réussi dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeTriggersSucceeded |
Nombre de déclencheurs qui ont déclenché au moins un évènement. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Tâches zombies tuées dans le runtime d’intégration Airflow | AirflowIntegrationRuntimeZombiesKilled |
Tâches zombies tuées. | Count | Total | IntegrationRuntimeName |
PT1M | Non |
Pour plus d’informations, consultez Métriques prises en charge pour Microsoft.DataFactory/factories.