Logo Zéphyrnet

Améliorez la surveillance et le débogage des tâches AWS Glue à l'aide de nouvelles métriques d'observabilité des tâches, Partie 3 : Visualisation et analyse des tendances à l'aide d'Amazon QuickSight | Services Web Amazon

Date :

In Partie 2 de cette série, nous avons discuté de la manière d'activer Colle AWS métriques d'observabilité des tâches et intégrez-les à Grafana pour un suivi en temps réel. Grafana fournit de puissants tableaux de bord personnalisables pour afficher l'état du pipeline. Cependant, pour analyser les tendances au fil du temps, agréger à partir de différentes dimensions et partager des informations au sein de l'organisation, un outil de business intelligence (BI) spécialement conçu comme Amazon QuickSight peut être plus efficace pour votre entreprise. QuickSight permet aux utilisateurs professionnels de visualiser facilement les données dans des tableaux de bord et des rapports interactifs.

Dans cet article, nous explorons comment connecter QuickSight à Amazon Cloud Watch et créez des graphiques pour découvrir les tendances des métriques d'observabilité des tâches AWS Glue. L'analyse des modèles historiques vous permet d'optimiser les performances, d'identifier les problèmes de manière proactive et d'améliorer la planification. Nous passons en revue l'ingestion des métriques CloudWatch dans QuickSight à l'aide d'un flux de métriques CloudWatch et de QuickSight SPICE. Avec cette intégration, vous pouvez utiliser des graphiques linéaires, des graphiques à barres et d'autres types de graphiques pour découvrir des modèles quotidiens, hebdomadaires et mensuels. QuickSight vous permet d'effectuer des calculs agrégés sur les métriques pour une analyse plus approfondie. Vous pouvez découper les données selon différentes dimensions telles que le nom du travail, visualiser les anomalies et partager des rapports en toute sécurité au sein de votre organisation. Grâce à ces informations, les équipes disposent de la visibilité nécessaire pour rendre les pipelines d’intégration de données plus efficaces.

Vue d'ensemble de la solution

Le diagramme d'architecture suivant illustre le flux de travail pour implémenter la solution.

Le workflow comprend les étapes suivantes:

  1. Les tâches AWS Glue émettent des métriques d'observabilité vers les métriques CloudWatch.
  2. CloudWatch diffuse les données de métriques via un flux de métriques vers Amazon Data Firehose.
  3. Data Firehose utilise un AWS Lambda fonction pour transformer les données et ingérer les enregistrements transformés dans un Service de stockage simple Amazon (Amazon S3) seau.
  4. Un robot d'exploration AWS Glue analyse les données sur le compartiment S3 et remplit les métadonnées de la table sur le catalogue de données AWS Glue.
  5. QuickSight s'exécute périodiquement Amazone Athéna requêtes pour charger les résultats des requêtes dans SPICE, puis visualiser les dernières données métriques.

Toutes les ressources sont définies dans un échantillon Kit de développement AWS Cloud (AWS CDK). Vous pouvez déployer la solution de bout en bout pour visualiser et analyser les tendances des métriques d'observabilité.

Exemple de modèle AWS CDK

Cet article fournit un exemple de modèle AWS CDK pour un tableau de bord utilisant les métriques d'observabilité AWS Glue.

En règle générale, vous disposez de plusieurs comptes pour gérer et exécuter les ressources de votre pipeline de données.

Dans ce modèle, nous supposons les comptes suivants :

  • Compte de surveillance – Il héberge le compartiment S3 central, le catalogue de données central et les ressources liées à QuickSight.
  • Compte source – Celui-ci héberge les ressources de pipeline de données individuelles sur AWS Glue et les ressources permettant d'envoyer des métriques au compte de surveillance.

Le modèle fonctionne même lorsque le compte de surveillance et le compte source sont identiques.

Cet exemple de modèle se compose de quatre piles :

  • Pile Amazon S3 – Cela provisionne le compartiment S3
  • Pile de catalogue de données – Cela provisionne la base de données, la table et le robot d'exploration AWS Glue
  • Pile QuickSight – Cela provisionne la source de données, l’ensemble de données et l’analyse QuickSight
  • Pile d'expéditeur de métriques – Cela provisionne le flux de métriques CloudWatch, le flux de livraison Firehose et la fonction Lambda pour la transformation

Pré-requis

Vous devez avoir les prérequis suivants :

  • Python 3.9 ou version ultérieure
  • Comptes AWS pour le compte de surveillance et le compte source
  • An Profil nommé AWS pour le compte de suivi et le compte source
  • La Boîte à outils AWS CDK 2.87.0 ou plus tard

Initialiser le projet CDK

Pour initialiser le projet, procédez comme suit :

  1. Cloner le modèle de CDK à votre lieu de travail :
    $ git clone git@github.com:aws-samples/aws-glue-cdk-baseline.git 
    
    $ cd aws-glue-cdk-baseline.git

  2. Créer un Python environnement virtuel spécifique au projet sur le poste client :
    $ python3 -m venv .venv

Nous utilisons un environnement virtuel afin d'isoler l'environnement Python pour ce projet et de ne pas installer le logiciel globalement.

  1. Activez l'environnement virtuel selon votre OS :
    • Sur MacOS et Linux, utilisez le code suivant :
      $ source .venv/bin/activate

    • Sur une plate-forme Windows, utilisez le code suivant :
      % .venvScriptsactivate.bat

Après cette étape, les étapes suivantes s'exécutent dans les limites de l'environnement virtuel sur la machine cliente et interagissent avec le compte AWS selon les besoins.

  1. Installez les dépendances requises décrites dans conditions.txt à l'environnement virtuel :
    $ pip install -r requirements.txt

  2. Modifier le fichier de configuration default-config.yaml en fonction de vos environnements (remplacez chaque identifiant de compte par le vôtre.
    create_s3_stack: false
    create_metrics_sender_stack: false
    create_catalog_stack: false
    create_quicksight_stack: true
    
    s3_bucket_name: glue-observability-demo-dashboard
    
    firehose_log_group_name: /aws/kinesisfirehose/observability-demo-metric-stream
    firehose_lambda_buffer_size_mb: 2
    firehose_lambda_buffer_interval_seconds: 60
    firehose_s3_buffer_size_mb: 128
    firehose_s3_buffer_interval_seconds: 300
    
    glue_database_name: observability_demo_db
    glue_table_name: metric_data
    glue_crawler_name: observability_demo_crawler
    glue_crawler_cron_schedule: "cron(42 * * * ? *)"
    
    athena_workgroup_name: primary

Amorcez vos environnements AWS

Exécutez les commandes suivantes pour amorcer vos environnements AWS :

  1. Dans le compte de surveillance, indiquez votre numéro de compte de surveillance, votre région AWS et votre profil de surveillance :
    $ cdk bootstrap aws://<MONITORING-ACCOUNT-NUMBER>/<REGION> --profile <MONITORING-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

  2. Dans le compte source, indiquez votre numéro de compte source, votre région et votre profil source :x
    $ cdk bootstrap aws://<SOURCE-ACCOUNT-NUMBER>/<REGION> --profile <SOURCE-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

Lorsque vous utilisez un seul compte pour tous les environnements, vous pouvez simplement exécuter lecdk bootstrapcommande une fois.

Déployez vos ressources AWS

Exécutez les commandes suivantes pour déployer vos ressources AWS :

  1. Exécutez la commande suivante à l'aide du compte de surveillance pour déployer les ressources définies dans le modèle AWS CDK :
    $ cdk deploy '*' --profile <MONITORING-PROFILE>

  2. Exécutez la commande suivante à l'aide du compte source pour déployer les ressources définies dans le modèle AWS CDK :
    $ cdk deploy MetricSenderStack --profile <SOURCE-PROFILE>

Configurer les autorisations QuickSight

Initialement, les nouvelles ressources QuickSight, y compris l'ensemble de données et l'analyse créées par le modèle AWS CDK, ne sont pas visibles car aucune autorisation QuickSight n'est encore configurée.

Pour rendre l'ensemble de données et l'analyse visibles, procédez comme suit :

  1. Sur la console QuickSight, accédez au menu utilisateur et choisissez Gérer QuickSight.
  2. Dans le volet de navigation, choisissez Gérer les actifs.
  3. Sous Parcourir les ressources, choisissez .
  4. Recherchez GlueObservabilityAnalysis et sélectionnez-le.
  5. Selectionnez PARTAGER.
  6. Pour Utilisateur ou groupe, sélectionnez votre utilisateur, puis choisissez PARTAGER (1).
  7. Attendez que le partage soit terminé, puis choisissez TERMINÉ.
  8. Sur le Gérer les actifs page, choisissez Jeux de données.
  9. Recherchez observability_demo.metrics_data et sélectionnez-le.
  10. Selectionnez PARTAGER.
  11. Pour Utilisateur ou groupe, sélectionnez votre utilisateur, puis choisissez PARTAGER (1).
  12. Attendez que le partage soit terminé, puis choisissez TERMINÉ.

Explorez l'analyse QuickSight par défaut

Votre analyse QuickSight et votre ensemble de données vous sont désormais visibles. Vous pouvez revenir à la console QuickSight et choisir GlueObservabilityAnalysis sous . La capture d'écran suivante montre votre tableau de bord.

L'analyse de l'échantillon comporte deux onglets : Le Monitoring ainsi que ACTUALITES. Par défaut, le Le Monitoring L'onglet contient les graphiques suivants :

  • [Fiabilité] Répartition des erreurs d'exécution des tâches
  • [Fiabilité] Erreurs d'exécution de tâche (total)
  • [Performance] Travail d'asymétrie
  • [Performance] Asymétrie tâche par tâche

  • [Utilisation des ressources] Utilisation des travailleurs
  • [Utilisation des ressources] Utilisation des travailleurs par tâche
  • [Débit] BytesRead, RecordsRead, FilesRead, PartitionRead (Moy.)
  • [Débit] Octets écrits, Enregistrements écrits, Fichiers écrits (Moy.)

  • [Utilisation des ressources Disque disponible Go (min)
  • [Utilisation des ressources Disque maximum utilisé % (Max)

  • [Pilote MOO] Nombre d'erreurs MOO
  • [Pilote MOO] Mémoire maximale du tas utilisée % (Max)
  • [Exécuteur MOO] Nombre d'erreurs MOO
  • [Executor MOO] Mémoire de tas maximale utilisée % (Max)

Par défaut, le ACTUALITES L'onglet contient les informations suivantes :

  • Utilisation des travailleurs les moins bien classés
  • Emploi d'asymétrie le mieux classé

  • Prévision de l'utilisation des travailleurs
  • Octets de lecture du moteur supérieur

Vous pouvez ajouter de nouveaux graphiques ou informations à l'aide des métriques d'observabilité en fonction de vos besoins.

Publier le tableau de bord QuickSight

Lorsque l'analyse est prête, procédez comme suit pour publier le tableau de bord :

  1. Selectionnez PUBLIER.
  2. Sélectionnez Publier le nouveau tableau de bord en tant queet entrez GlueObservabilityDashboard.
  3. Selectionnez Publier le tableau de bord.

Ensuite, vous pouvez afficher et partager le tableau de bord.

Visualisez et analysez avec les métriques d'observabilité des tâches AWS Glue

Utilisons le tableau de bord pour rendre l'utilisation d'AWS Glue plus performante.

En regardant le Asymétrie tâche par tâche visualisation, il y a eu un pic le 1er novembre 2023. Les mesures d'asymétrie de la démonstration en plusieurs étapes du travail ont montré 9.53, ce qui est nettement plus élevé que les autres.

Entrons dans les détails. Tu peux choisir Contrôleset modifiez les conditions de filtrage en fonction de la date et de l'heure, de la région, de l'ID de compte AWS, du nom de la tâche AWS Glue, de l'ID d'exécution de la tâche, ainsi que de la source et du récepteur des magasins de données. Pour l'instant, filtrons avec le nom du travail multistage-demo.

Le filtré Utilisation des travailleurs par emploi la visualisation montre 0.5 et sa valeur minimale était de 0.16. Il semble qu’il y ait une marge d’amélioration dans l’utilisation des ressources. Cette observation vous guide pour activer la mise à l’échelle automatique pour cette tâche afin d’augmenter l’utilisation des travailleurs.

Nettoyer

Exécutez les commandes suivantes pour nettoyer vos ressources AWS :

  1. Exécutez la commande suivante à l'aide du compte de surveillance pour nettoyer les ressources :
    $ cdk destroy '*' --profile <MONITORING-PROFILE>

    Exécutez la commande suivante à l'aide du compte source pour nettoyer les ressources :

    $ cdk destroy MetricSenderStack --profile <SOURCE-PROFILE>

Considérations

L'intégration QuickSight est conçue pour l'analyse et une meilleure flexibilité. Vous pouvez regrouper des métriques en fonction de n'importe quel champ. Lorsque vous traitez plusieurs tâches à la fois, les informations QuickSight vous aident à identifier les tâches problématiques.

L'intégration de QuickSight est réalisée avec plus de ressources dans vos environnements. Le compte de surveillance a besoin d'une base de données AWS Glue, d'une table, d'un robot d'exploration et d'un compartiment S3, ainsi que de la possibilité d'exécuter des requêtes Athena pour visualiser les métriques dans QuickSight. Chaque compte source doit disposer d'un flux de métriques et d'un flux de diffusion Firehose. Cela peut entraîner des coûts supplémentaires.

Toutes les ressources requises sont modélisées dans AWS CDK.

Conclusion

Dans cet article, nous avons exploré comment visualiser et analyser les métriques d'observabilité des tâches AWS Glue sur QuickSight à l'aide des flux de métriques CloudWatch et SPICE. En connectant les nouvelles métriques d'observabilité aux tableaux de bord interactifs QuickSight, vous pouvez découvrir des modèles quotidiens, hebdomadaires et mensuels pour optimiser l'utilisation des tâches AWS Glue. Les riches capacités de visualisation de QuickSight vous permettent d'analyser les tendances des mesures telles que l'utilisation des travailleurs, les catégories d'erreurs, le débit, etc. L'agrégation des métriques et le découpage des données selon différentes dimensions telles que le nom du travail peuvent fournir des informations plus approfondies.

L'exemple de tableau de bord présentait des mesures au fil du temps, les principales erreurs et des analyses comparatives des tâches. Ces visualisations et rapports peuvent être partagés en toute sécurité avec les équipes de toute l'organisation. Grâce aux informations basées sur les données sur les métriques d'observabilité d'AWS Glue, vous pouvez obtenir des informations plus approfondies sur les goulots d'étranglement des performances, les erreurs courantes, et bien plus encore.


À propos des auteurs

Noritaka Sekiyama est architecte Big Data principal au sein de l'équipe AWS Glue. Il est responsable de la création d'artefacts logiciels pour aider les clients. Dans ses temps libres, il aime faire du vélo avec son nouveau vélo de route.

Chuhan LiuChuhan Liu est ingénieur en développement logiciel au sein de l'équipe AWS Glue. Il est passionné par la création de systèmes distribués évolutifs pour le traitement, l'analyse et la gestion de données volumineuses. Dans ses temps libres, il aime jouer au tennis.

XiaoRun Yu est ingénieur en développement logiciel au sein de l'équipe AWS Glue. Il travaille à la création de nouvelles fonctionnalités pour AWS Glue afin d'aider les clients. En dehors du travail, Xiaorun aime explorer de nouveaux endroits dans la Bay Area.

Sean Maman est chef de produit principal au sein de l'équipe AWS Glue. Il a une expérience de plus de 18 ans dans l’innovation et la fourniture de produits d’entreprise qui libèrent la puissance des données pour les utilisateurs. En dehors de son travail, Sean aime la plongée sous-marine et le football universitaire.

Mohit Saxena est responsable principal du développement logiciel au sein de l'équipe AWS Glue. Son équipe se concentre sur la création de systèmes distribués pour permettre aux clients, dotés d'interfaces interactives et simples à utiliser, de gérer et de transformer efficacement et de manière transparente des pétaoctets de données à travers des lacs de données sur Amazon S3, des bases de données et des entrepôts de données sur le cloud.

spot_img

Dernières informations

spot_img