Intégrer des journaux d’activité Airflow à Azure Monitor
Dans cet article, apprenez à collecter des journaux d’activité Airflow pour vos instances Microsoft Azure Data Manager for Energy dans Azure Monitor. Cette fonctionnalité d’intégration vous permet de déboguer les échecs d’exécution d’Airflow DAG (Directed Acyclic Graph).
Prérequis
Un espace de travail Log Analytics existant. Cet espace de travail sera utilisé pour interroger les journaux d’activité Airflow à l’aide de l’éditeur de requête Langage de requête Kusto (KQL) dans l’espace de travail Log Analytics. Ressource utile : Créer un espace de travail Log Analytics dans le Portail Azure.
Un compte de stockage existant : il sera utilisé pour stocker les vidages JSON des journaux d’activité Airflow. Il n’est pas nécessaire que le compte de stockage figure dans le même abonnement que votre espace de travail Log Analytics.
Activation des paramètres de diagnostic pour collecter les journaux d’activité dans un compte de stockage
Chaque instance Azure Data Manager for Energy est fournie avec une instance du gestionnaire du flux de travail Azure Data Factory (avec Apache Airflow) intégrée. Nous collectons les journaux d’activité Airflow à des fins de résolution des problèmes et de débogage internes. Les journaux d’activité Airflow peuvent être intégrés à Azure Monitor de la manière suivante :
- Compte de stockage
- Espace de travail Log Analytics
Pour accéder aux journaux d’activité via l’une des deux options ci-dessus, vous devez créer un paramètre de diagnostic. Chaque paramètre de diagnostic comporte trois parties :
Élément | Description |
---|---|
Nom | Il s’agit du nom du journal de diagnostic. Vérifiez qu’un nom unique est défini pour chaque journal. |
Catégories | La catégorie des journaux à envoyer à chacune des destinations. L’ensemble des catégories varie en fonction de chaque service Azure. Consultez : Catégories de journaux de ressources prises en charge |
Destinations | Une ou plusieurs destinations auxquelles envoyer les journaux. Tous les services Azure partagent le même ensemble de destinations possibles. Chaque paramètre de diagnostic peut définir une ou plusieurs destinations, mais pas plus d’une destination d’un type spécifique. Il doit s’agir d’un compte de stockage, d’un espace de noms Event Hubs ou d’un hub d’événements. |
Suivez les étapes ci-après pour configurer les paramètres de diagnostic :
Ouvrez la page Vue d’ensemble de Microsoft Azure Data Manager for Energy
Sélectionnez Paramètres de diagnostic dans le volet gauche.
Sélectionnez Ajouter un paramètre de diagnostic.
Sélectionnez Journaux d’activité des tâches Airflow sous Journaux d’activité
Cochez Archiver dans un compte de stockage
Vérifiez l’abonnement et le compte de stockage dans lesquels vous souhaitez archiver les journaux d’activité.
Accédez au compte de stockage pour télécharger les journaux d’activité Airflow
Une fois qu’un paramètre de diagnostic est créé pour l’archivage des journaux d’activité des tâches Airflow dans un compte de stockage, vous pouvez accéder à la page vue d’ensemble du compte de stockage. Vous pouvez ensuite utiliser le « Navigateur de stockage » dans le volet gauche pour rechercher le fichier JSON approprié que vous souhaitez examiner. La navigation dans différents répertoires est intuitive lorsque vous passez d’un an à un mois puis à un jour.
Parcourez les conteneurs, disponibles dans le volet gauche.
Ouvrez le volet d’informations à droite. Il contient un bouton « télécharger » pour enregistrer le fichier journal localement.
Les journaux d’activité téléchargés peuvent être analysés dans n’importe quel éditeur.
Activation des paramètres de diagnostic pour intégrer des journaux d’activité à l’espace de travail Log Analytics
Vous pouvez intégrer des journaux d’activité Airflow à l’espace de travail Log Analytics à l’aide des Paramètres de diagnostic sous le volet gauche de la page de vue d’ensemble de votre instance Microsoft Azure Data Manager for Energy.
Utilisation des journaux d’activité Airflow intégrés dans l’espace de travail Log Analytics
Utilisez le langage de requête Kusto (KQL) pour récupérer les données souhaitées sur les journaux Airflow collectés à partir de votre espace de travail Log Analytics. Vous pouvez charger les exemples de requêtes prédéfinis dans votre espace de travail Log Analytics ou créer vos propres requêtes.
Chargement de requêtes prédéfinies : sélectionnez Journaux dans le menu de votre ressource. Log Analytics s’ouvre avec la fenêtre Requêtes qui contient des requêtes prégénérées pour votre type de ressource. Parcourez les requêtes disponibles. Identifiez celle à exécuter, puis sélectionnez Exécuter. La requête est ajoutée à la fenêtre de requête et les résultats sont retournés.
Écrire des requêtes dans l’Éditeur de requête : vous pouvez copier, coller et modifier les requêtes suivantes ou écrire vos propres requêtes en KQL dans l’Éditeur de requête de votre espace de travail Log Analytics.
Exemples de requêtes
Cette requête retourne tous les journaux Airflow de niveau ERROR. Vous pouvez filtrer les résultats en ajoutant (sans commentaire) une clause where pour le nom de l’instance Azure Data Manager for Energy et l’ID de corrélation pour vos exécutions DAG.
OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>" // to filter on resourceName replace <...> and uncomment line
// | where CorrelationId == "<DAG run's runId>" // to filter on correlationID replace <...> with correlationId (same as runId) - we have created a duplicate for to maintain consistency of column name across all services
| where LogLevel == "ERROR"
| project TimeGenerated, DagName, LogLevel, DagTaskName, CodePath, Content
Cette requête répertorie toutes les exécutions DAG et leurs ID de corrélation correspondants dans la ressource Azure Data Manager for Energy mentionnée.
OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>" // to filter on resourceName replace <...> and uncomment line
| distinct DagName, CorrelationId // correlationId is same as runId - we have created a duplicate for consistency in search across logs of all services
| sort by DagName asc
Nous avons ajouté un document pour vous aider à résoudre les problèmes avec votre processus d’ingestion de manifeste à l’aide des journaux Airflow collectés dans votre espace de travail Log Analytics.
Étapes suivantes
Maintenant que vous collectez des journaux de ressource, créez une alerte de requête de journal pour être averti de manière proactive quand des données intéressantes sont identifiées dans vos données de journal.