Automatisez l'ingestion et la visualisation des métriques personnalisées Amazon MWAA sur Amazon Managed Grafana à l'aide de Terraform - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Automatisez l'ingestion et la visualisation des métriques personnalisées Amazon MWAA sur Amazon Managed Grafana à l'aide de Terraform

Créée par Faisal Abdullah (AWS) et Satya Vajrapu (AWS)

Récapitulatif

Ce modèle explique comment utiliser Amazon Managed Grafana pour créer et surveiller des métriques personnalisées qui sont ingérées par Amazon Managed Workflows pour Apache Airflow (Amazon MWAA). Amazon MWAA sert d'orchestrateur pour les flux de travail, en utilisant des graphes acycliques dirigés (DAGs) écrits en Python. Ce modèle est centré sur la surveillance de mesures personnalisées, notamment le nombre total d'exécutions DAGs effectuées au cours de la dernière heure, le nombre de réussites et DAGs d'échecs par heure et la durée moyenne de ces processus. Cette analyse montre comment Amazon Managed Grafana s'intègre à Amazon MWAA pour permettre une surveillance complète et des informations sur l'orchestration des flux de travail au sein de cet environnement.

Conditions préalables et limitations

Prérequis

  • Un actif Compte AWS disposant des autorisations utilisateur nécessaires pour créer et gérer les éléments suivants Services AWS :

    • AWS Identity and Access Management Rôles et politiques (IAM)

    • AWS Lambda

    • Amazon Managed Grafana

    • Amazon Managed Workflows for Apache Airflow (Amazon MWAA)

    • Amazon Simple Storage Service (Amazon S3)

    • Amazon Timestream

  • Accès à un environnement shell qui peut être un terminal sur votre machine locale ou AWS CloudShell.

  • Un environnement shell avec Git installé et la dernière version de AWS Command Line Interface (AWS CLI) installée et configurée. Pour plus d'informations, consultez la section Installation ou mise à jour vers la dernière version AWS CLI de la AWS CLI documentation.

  • La version suivante de Terraform est installée : required_version = ">= 1.6.1, < 2.0.0" vous pouvez utiliser tfswitch pour basculer entre les différentes versions de Terraform.

  • Source d'identité configurée AWS IAM Identity Center pour votre Compte AWS. Pour plus d'informations, voir Confirmer vos sources d'identité dans IAM Identity Center dans la documentation d'IAM Identity Center. Vous pouvez choisir entre le répertoire Identity Center par défaut, Active Directory ou un fournisseur d'identité externe (IdP) tel qu'Okta. Pour plus d'informations, consultez la section Ressources connexes.

Limites

Versions du produit

  • Terraforme required_version = ">= 1.6.1, < 2.0.0"

  • Amazon Managed Grafana version 9.4 ou ultérieure. Ce modèle a été testé sur la version 9.4.

Architecture

Le schéma d'architecture suivant met en évidence les éléments Services AWS utilisés dans la solution.

Flux de travail pour automatiser l'ingestion des métriques personnalisées Amazon MWAA.

Le schéma précédent décrit le flux de travail suivant :

  1. Les métriques personnalisées d'Amazon MWAA proviennent de DAGs celles qui sont exécutées dans l'environnement. Les métriques sont téléchargées dans le compartiment Amazon S3 au format de fichier CSV. Les éléments suivants DAGs utilisent les fonctionnalités d'interrogation de base de données d'Amazon MWAA :

    • run-example-dag— Ce DAG contient un exemple de code Python qui définit une ou plusieurs tâches. Il fonctionne toutes les 7 minutes et affiche la date. Après l'impression de la date, le DAG inclut une tâche dont l'exécution doit être interrompue pendant une durée spécifique.

    • other-sample-dag— Ce DAG s'exécute toutes les 10 minutes et imprime la date. Après l'impression de la date, le DAG inclut une tâche dont l'exécution doit être interrompue pendant une durée spécifique.

    • data-extract— Ce DAG s'exécute toutes les heures, interroge la base de données Amazon MWAA et collecte des métriques. Une fois les métriques collectées, ce DAG les écrit dans un compartiment Amazon S3 pour un traitement et une analyse ultérieurs.

  2. Pour rationaliser le traitement des données, les fonctions Lambda s'exécutent lorsqu'elles sont déclenchées par des événements Amazon S3, ce qui facilite le chargement des métriques dans Timestream.

  3. Timestream est intégré en tant que source de données dans Amazon Managed Grafana où sont stockées toutes les métriques personnalisées d'Amazon MWAA.

  4. Les utilisateurs peuvent interroger les données et créer des tableaux de bord personnalisés pour visualiser les indicateurs de performance clés et obtenir des informations sur l'orchestration des flux de travail au sein d'Amazon MWAA.

Outils

Services AWS

  • AWS IAM Identity Centervous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à toutes vos applications Comptes AWS et à celles du cloud.

  • AWS Lambda est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez. Dans ce modèle, AWS Lambda exécute le code Python en réponse aux événements Amazon S3 et gère automatiquement les ressources de calcul.

  • Amazon Managed Grafana est un service de visualisation de données entièrement géré que vous pouvez utiliser pour interroger, corréler, visualiser et émettre des alertes sur vos métriques, journaux et traces. Ce modèle utilise Amazon Managed Grafana pour créer un tableau de bord pour la visualisation des métriques et les alertes.

  • Amazon Managed Workflows for Apache Airflow (Amazon MWAA) est un service d'orchestration géré pour Apache Airflow que vous pouvez utiliser pour configurer et exploiter des pipelines de données dans le cloud à grande échelle. Apache Airflow est un outil open source utilisé pour créer, planifier et surveiller par programmation des séquences de processus et de tâches appelées flux de travail. Dans ce modèle, un échantillon DAGs et un extracteur de métriques DAG sont déployés dans Amazon MWAA.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données. Dans ce modèle, Amazon S3 est utilisé pour stocker DAGs des scripts et des métriques personnalisées au format CSV.

  • Amazon Timestream LiveAnalytics for is est une base de données de séries chronologiques rapide, évolutive, entièrement gérée et spécialement conçue qui facilite le stockage et l'analyse de milliards de points de données de séries chronologiques par jour. Timestream for s'intègre LiveAnalytics également aux services couramment utilisés pour la collecte de données, la visualisation et l'apprentissage automatique. Dans ce modèle, il est utilisé pour ingérer les métriques personnalisées Amazon MWAA générées.

Autres outils

  • HashiCorp Terraform est un outil d'infrastructure open source sous forme de code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. Ce modèle utilise un module Terraform pour automatiser le provisionnement de l'infrastructure dans. AWS

Référentiel de code

Le code de ce modèle est disponible GitHub dans le dépôt visualize-amazon-mwaa-custom-metrics-grafana. Le stacks/Infra dossier contient les éléments suivants :

  • Fichiers de configuration Terraform pour toutes les ressources AWS

  • Fichier .json du tableau de bord Grafana dans le dossier grafana

  • Amazon Managed Workflows pour Apache Airflow DAGs dans le dossier mwaa/dags

  • Code Lambda pour analyser le fichier .csv et stocker les métriques dans le dossier de la base de données Timestream src

  • Fichiers .json de politique IAM dans le dossier templates

Bonnes pratiques

Terraform doit stocker l'état de votre infrastructure et de votre configuration gérées afin de pouvoir mapper les ressources du monde réel à votre configuration. Par défaut, Terraform stocke l'état localement dans un fichier nommé. terraform.tfstate Il est essentiel de garantir la sécurité et l'intégrité de votre fichier d'état Terraform, car il maintient l'état actuel de votre infrastructure. Pour plus d'informations, consultez Remote State dans la documentation Terraform.

Épopées

TâcheDescriptionCompétences requises

Déployez l'infrastructure.

Pour déployer l'infrastructure de la solution, procédez comme suit :

  1. Ouvrez un terminal ou une invite de commande sur votre ordinateur local ou en utilisant AWS CloudShell.

  2. Accédez au répertoire dans lequel vous souhaitez cloner le référentiel.

  3. Pour cloner le dépôt, exécutez la commande suivante :

    git clone https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana
  4. Une fois le processus de clonage terminé, exécutez la commande suivante pour accéder au répertoire du référentiel cloné :

    cd visualize-amazon-mwaa-custom-metrics-grafana/stacks/infra
  5. Pour télécharger et initialiser les fournisseurs requis, exécutez la commande suivante :

    terraform init
  6. Pour obtenir une vue complète de toutes les ressources que Terraform créera, exécutez la commande suivante :

    terraform plan

    Terraform fournit les ressources suivantes :

    • Amazon Virtual Private Cloud (Amazon VPC) et composants réseau associés

    • Ressources Amazon S3

    • AWS Lambda fonctions

    • Ressources Amazon Managed Grafana (espace de travail, tableaux de bord, source de données)

    • Soutenir les ressources IAM (rôles et politiques)

  7. Pour créer les AWS ressources à partir de la sortie du plan, exécutez la commande suivante :

    terraform apply -auto-approve

    Le provisionnement de l'infrastructure est terminé en 20 minutes environ.

  8. Pour créer les AWS ressources spécifiées conformément à la configuration définie dans vos fichiers Terraform, exécutez la commande suivante :

    terraform apply
AWS DevOps
TâcheDescriptionCompétences requises

Validez l'environnement Amazon MWAA.

Pour valider l'environnement Amazon MWAA, procédez comme suit :

  1. Connectez-vous au AWS Management Console, accédez à la console du tableau de bord Amazon MWAA et sélectionnez Open Airflow UI.

  2. Vous devriez voir les trois éléments suivants DAGs dans le statut Actif :

    • extrait de données

    • run-example-dag

    • other-sample-dag

  3. Si un DAG n'est pas actif, vous pouvez l'activer en activant le commutateur situé à côté du nom du DAG.

AWS DevOps, ingénieur de données

Vérifiez les horaires du DAG.

Pour consulter le calendrier de chaque DAG, accédez à l'onglet Planification de l'interface utilisateur d'Airflow.

Chacun des programmes suivants DAGs possède un calendrier préconfiguré, qui s'exécute dans l'environnement Amazon MWAA et génère des métriques personnalisées :

  • run-example-dag- Fonctionne toutes les 7 minutes

  • other-sample-dag- Fonctionne toutes les 10 minutes

  • data-extract - Fonctionne toutes les heures

Vous pouvez également voir les exécutions réussies de chaque DAG dans la colonne Exécutions.

Ingénieur de données, AWS DevOps
TâcheDescriptionCompétences requises

Configurez l'accès à l'espace de travail Amazon Managed Grafana.

Les scripts Terraform ont créé l'espace de travail, les tableaux de bord et la page de statistiques Amazon Managed Grafana requis. Pour configurer l'accès afin de pouvoir les consulter, procédez comme suit :

  1. Ouvrez la console Amazon Managed Grafana.

  2. Dans Workspaces, sélectionnez l'espace de travail grafana-ws-dev et accédez à l'onglet Authentification dans le volet inférieur.

  3. Cliquez sur le bouton Attribuer un nouvel utilisateur ou un nouveau groupe.

  4. Ajoutez votre groupe dans l'onglet Groupes ou un utilisateur dans l'onglet Utilisateurs, puis cliquez sur le bouton Attribuer un utilisateur et des groupes.

  5. Une fois l'utilisateur (ou le groupe) ajouté, faites de cet utilisateur (ou de ce groupe) un administrateur. Sélectionnez l'utilisateur dans Utilisateurs assignés ou groupe dans l'onglet Groupe d'utilisateurs assignés et choisissez Make admin dans le menu déroulant. Pour plus d'informations, consultez Utiliser AWS IAM Identity Center avec votre espace de travail Amazon Managed Grafana dans la documentation Amazon Managed Grafana.

  6. Accédez à Workspaces, puis choisissez l'URL de l'espace de travail Grafana. Pour vous connecter à Amazon Managed Grafana en tant qu'administrateur, choisissez Se connecter avec. AWS IAM Identity Center

AWS DevOps

Installez le plugin Amazon Timestream.

Les métriques personnalisées Amazon MWAA sont chargées dans la base de données Timestream. Vous utilisez le plugin Timestream pour visualiser les métriques avec les tableaux de bord Amazon Managed Grafana.

Pour installer le plugin Timestream, procédez comme suit :

  1. Dans la console Amazon Managed Grafana, développez le menu dans le volet de navigation de gauche et accédez à Administration, Plugins.

  2. Recherchez puis installez la dernière version du plugin Amazon Timestream.

  3. Une fois le plugin installé, allez dans Administration, Sources de données pour voir la source de données Timestream. Si la source de données n'est pas répertoriée, actualisez la page.

Pour plus d'informations, consultez la section Étendez votre espace de travail avec des plug-ins dans la documentation Amazon Managed Grafana.

AWS DevOps, DevOps ingénieur
TâcheDescriptionCompétences requises

Consultez le tableau de bord Amazon Managed Grafana.

Pour consulter les statistiques qui ont été ingérées dans l'espace de travail Amazon Managed Grafana, procédez comme suit :

  1. Dans la console Amazon Managed Grafana, choisissez Dashboards dans le volet de navigation de gauche.

  2. Pour afficher les métriques, choisissez les tableaux de bord des événements MWAA, puis sélectionnez mwaa_metrics.

La page des statistiques du tableau de bord affiche les informations suivantes :

  • Nombre total de DAG exécutés au cours de la dernière heure

  • Nombre total d'exécutions DAG réussies, échouées et en cours d'exécution au cours de la dernière heure

  • Durée moyenne de toutes les exécutions DAG réussies et échouées

AWS DevOps

Personnalisez le tableau de bord Amazon Managed Grafana.

Pour personnaliser les tableaux de bord en vue de futures améliorations, procédez comme suit :

  1. Sur la mwaa_metrics page du tableau de bord Amazon Managed Grafana, choisissez l'icône des paramètres du tableau de bord.

  2. Pour afficher la structure de données qui définit le tableau de bord, choisissez le modèle JSON. Vous pouvez personnaliser le tableau de bord en modifiant ce modèle JSON directement dans la console.

Le code source de ce tableau de bord est également disponible dans le dashboard.json fichier du stacks/infra/grafana dossier du GitHub référentiel.

AWS DevOps
TâcheDescriptionCompétences requises

Suspendez les exécutions du DAG Amazon MWAA.

Pour suspendre les exécutions du DAG, procédez comme suit :

  1. Dans la console Amazon MWAA, accédez aux environnements Airflow et choisissez Open Airflow UI.

  2. Pour suspendre le DAG, utilisez le commutateur situé à côté de chaque DAG.

  3. Actualisez la page d'interface utilisateur Airflow, qui devrait en répertorier trois DAGs dans la section Suspendu.

AWS DevOps, ingénieur de données

Supprimez les objets dans les compartiments Amazon S3.

Pour supprimer les compartiments Amazon S3 mwaa-events-bucket-* et mwaa-metrics-bucket-*, suivez les instructions d'utilisation de la console Amazon S3 dans Supprimer un compartiment dans la documentation Amazon S3.

AWS DevOps

Détruisez les ressources créées par Terraform.

Pour détruire les ressources créées par Terraform et le fichier d'état local Terraform associé, procédez comme suit :

  1. (Facultatif) Avant de supprimer les ressources, vous pouvez prévisualiser les modifications que Terraform apportera. Pour générer un plan, exécutez la commande suivante :

    terraform plan -destroy

    Le résultat de la destroy commande indique que la commande supprimera toutes les AWS ressources créées précédemment.

  2. terraform destroy -auto-approve

    Cette commande prend environ 20 minutes pour détruire l'infrastructure.

    Note

    Pour détruire toutes les ressources gérées par Terraform, exécutez la commande suivante. : Le -auto-approve tag n'attend pas la confirmation de l'utilisateur pour commencer à détruire les ressources.

  3. Pour supprimer le fichier d'état Terraform local, exécutez les commandes suivantes :

    rm .terraform.lock.hcl rm -rf .terraform rm terraform.tfstate*
AWS DevOps

Résolution des problèmes

ProblèmeSolution

null_resource.plugin_mgmt (local-exec): aws: error: argument operation: Invalid choice, valid choices are:

Passez AWS CLI à la dernière version.

Erreur lors du chargement des sources de données -

Fetch error: 404 Not Found Instantiating…

L'erreur est intermittente. Patientez quelques minutes, puis actualisez vos sources de données pour afficher la source de données Timestream répertoriée.

Ressources connexes

AWS documentation

AWS vidéos

https://www.youtube-nocookie.com/embed/XX2Xcz-Ps9U ? contrôles = 0

https://www.youtube-nocookie.com/embed/A4 Oh JHxl2xp ? contrôles = 0

Informations supplémentaires

Vous pouvez créer une solution complète de surveillance et d'alerte pour votre environnement Amazon MWAA, permettant une gestion proactive et une réponse rapide aux problèmes ou anomalies potentiels. Amazon Managed Grafana inclut les fonctionnalités suivantes :

Alertes — Vous pouvez configurer des alertes dans Amazon Managed Grafana en fonction de seuils ou de conditions prédéfinis. Configurez des notifications par e-mail pour avertir les parties prenantes concernées lorsque certains indicateurs dépassent ou tombent en dessous des seuils spécifiés. Pour plus d'informations, consultez la section Alertes Grafana dans la documentation Amazon Managed Grafana.

Intégration — Vous pouvez intégrer Amazon Managed Grafana à divers outils tiers tels que OpsGenie PagerDuty, ou Slack pour des fonctionnalités de notification améliorées. Par exemple, vous pouvez configurer des webhooks ou les intégrer APIs pour déclencher des incidents et des notifications sur ces plateformes en fonction des alertes générées dans Amazon Managed Grafana. De plus, ce modèle fournit un GitHub référentiel pour créer des AWS ressources. Vous pouvez intégrer davantage ce code aux flux de travail de déploiement de votre infrastructure.