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

  1. 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.

    Capture d'écran qui montre où se trouve l'onglet Journaux de diagnostic dans Data Factory.

  2. 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 et AirflowIntegrationRuntimeMemory.

    Capture d'écran qui montre les journaux à sélectionner pour l'environnement Airflow.

  3. Sous Détails de la destination, cochez la case Envoyer à l’espace de travail Log Analytics.

    Capture d'écran qui montre la sélection de l'espace de travail Log Analytics comme destination pour les journaux de diagnostic.

  4. Sélectionnez Enregistrer.

Afficher les journaux d’activité

  1. 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é.

    Capture d’écran qui montre la sélection de l’URL de l’espace de travail Log Analytics.

  2. Dans la section Optimisez votre expérience Log Analytics (Maximize your Log Analytics experience), cliquez sur Afficher les journaux (View logs).

    Capture d’écran qui montrant la sélection de l’affichage des journaux.

  3. 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.

    Capture d’écran montrant l’Espace de travail Log Analytics.

Autres liens utiles pour le schéma :

Écrivez votre requête.

  1. 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.

    Capture d'écran qui montre une requête Kusto pour récupérer tous les journaux.

  2. 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 :

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.

  1. Ouvrez votre ressource Data Factory.

  2. Dans le volet le plus à gauche, sous la section Analyse (Monitoring), sélectionnez Métriques (Metrics).

    Capture d'écran qui montre où se trouve l'onglet Métriques dans Data Factory.

  3. Sélectionnez la Étendue>Espace de noms de métrique>Métrique que vous souhaitez analyser.

    Capture d'écran qui montre les métriques à sélectionner.

  4. É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).

    Capture d'écran qui montre un graphique multiligne de métriques.

  5. 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.

  6. Sélectionnez Enregistrer dans le tableau de bord (Save to dashboard) une fois votre graphique terminé, sinon celui-ci disparaît.

    Capture d'écran qui montre Enregistrer dans le tableau de bord.

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.