Zephyrnet-logo

Verbeter de monitoring en foutopsporing voor AWS Glue-taken met behulp van nieuwe statistieken voor taakwaarneming, deel 3: Visualisatie en trendanalyse met Amazon QuickSight | Amazon-webservices

Datum:

In Deel 2 van deze serie hebben we besproken hoe u dit kunt inschakelen AWS lijm statistieken voor de observatie van taken en integreer deze met Grafana voor realtime monitoring. Grafana biedt krachtige aanpasbare dashboards om de gezondheid van pijpleidingen te bekijken. Om echter trends in de loop van de tijd te analyseren, vanuit verschillende dimensies te verzamelen en inzichten binnen de hele organisatie te delen, is een speciaal gebouwde business intelligence (BI)-tool zoals Amazon QuickSight kan effectiever zijn voor uw bedrijf. QuickSight maakt het voor zakelijke gebruikers eenvoudig om gegevens te visualiseren in interactieve dashboards en rapporten.

In dit bericht onderzoeken we hoe u QuickSight kunt verbinden met Amazon Cloud Watch statistieken en bouw grafieken om trends in de observatiestatistieken van AWS Glue-taken bloot te leggen. Door historische patronen te analyseren, kunt u de prestaties optimaliseren, problemen proactief identificeren en de planning verbeteren. We doorlopen de opname van CloudWatch-statistieken in QuickSight met behulp van een CloudWatch-statistiekenstream en QuickSight SPICE. Met deze integratie kunt u lijndiagrammen, staafdiagrammen en andere grafiektypen gebruiken om dagelijkse, wekelijkse en maandelijkse patronen bloot te leggen. Met QuickSight kunt u geaggregeerde berekeningen uitvoeren op statistieken voor een diepere analyse. U kunt gegevens opdelen op basis van verschillende dimensies, zoals de functienaam, afwijkingen bekijken en rapporten veilig delen binnen uw organisatie. Met deze inzichten hebben teams het inzicht om data-integratiepijplijnen efficiënter te maken.

Overzicht oplossingen

Het volgende architectuurdiagram illustreert de workflow voor het implementeren van de oplossing.

De workflow omvat de volgende stappen:

  1. AWS Glue-taken zenden observatiestatistieken uit naar CloudWatch-statistieken.
  2. CloudWatch streamt metrische gegevens via een metrische stroom naar Amazon Data-brandslang.
  3. Data Firehose maakt gebruik van een AWS Lambda functie om gegevens te transformeren en de getransformeerde records op te nemen in een Amazon eenvoudige opslagservice (Amazon S3) emmer.
  4. Een AWS Glue-crawler scant gegevens op de S3-bucket en vult tabelmetagegevens in de AWS Glue-gegevenscatalogus in.
  5. QuickSight wordt periodiek uitgevoerd Amazone Athene queries om queryresultaten naar SPICE te laden en vervolgens de nieuwste metrische gegevens te visualiseren.

Alle resources zijn gedefinieerd in een voorbeeld AWS Cloud-ontwikkelingskit (AWS CDK)-sjabloon. U kunt de end-to-end-oplossing inzetten om trends in de observatiestatistieken te visualiseren en analyseren.

Voorbeeld van een AWS CDK-sjabloon

Dit bericht biedt een voorbeeld van een AWS CDK-sjabloon voor een dashboard met behulp van AWS Glue-waarnemingsstatistieken.

Normaal gesproken hebt u meerdere accounts om resources voor uw gegevenspijplijn te beheren en uit te voeren.

In deze sjabloon gaan we uit van de volgende accounts:

  • Controlerekening – Hier worden de centrale S3-bucket, centrale Data Catalog en QuickSight-gerelateerde bronnen gehost
  • Bronaccount – Dit host individuele datapijplijnbronnen op AWS Glue en de bronnen om statistieken naar het monitoringaccount te sturen

De sjabloon werkt zelfs als het monitoringaccount en het bronaccount hetzelfde zijn.

Deze voorbeeldsjabloon bestaat uit vier stapels:

  • Amazon S3-stack – Dit betreft de S3-bak
  • Gegevenscatalogusstapel – Hiermee worden de AWS Glue-database, -tabel en -crawler ingericht
  • QuickSight-stapel – Hiermee worden de QuickSight-gegevensbron, dataset en analyse ingericht
  • Statistieken afzenderstapel – Hiermee worden de metrische stroom CloudWatch, de Firehose-leveringsstroom en de Lambda-functie ingericht voor transformatie

Voorwaarden

U moet de volgende vereisten hebben:

  • Python 3.9 of hoger
  • AWS-accounts voor het monitoringaccount en het bronaccount
  • An AWS-profiel met naam voor de monitoringrekening en de bronrekening
  • De AWS CDK-toolkit 2.87.0 of hoger

Initialiseer het CDK-project

Voer de volgende stappen uit om het project te initialiseren:

  1. Kloon het cdk-sjabloon naar je werkplek:
    $ git clone git@github.com:aws-samples/aws-glue-cdk-baseline.git 
    
    $ cd aws-glue-cdk-baseline.git

  2. Maak een python virtuele omgeving specifiek voor het project op de clientcomputer:
    $ python3 -m venv .venv

We gebruiken een virtuele omgeving om de Python-omgeving voor dit project te isoleren en niet wereldwijd software te installeren.

  1. Activeer de virtuele omgeving volgens uw besturingssysteem:
    • Gebruik op MacOS en Linux de volgende code:
      $ source .venv/bin/activate

    • Gebruik op een Windows-platform de volgende code:
      % .venvScriptsactivate.bat

Na deze stap worden de volgende stappen uitgevoerd binnen de grenzen van de virtuele omgeving op de clientcomputer en communiceren ze indien nodig met het AWS-account.

  1. Installeer de vereiste afhankelijkheden beschreven in requirements.txt naar de virtuele omgeving:
    $ pip install -r requirements.txt

  2. Bewerk het configuratiebestand default-config.yaml op basis van uw omgevingen (vervang elke account-ID door uw eigen ID).
    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

Bootstrap uw AWS-omgevingen

Voer de volgende opdrachten uit om uw AWS-omgevingen op te starten:

  1. Geef in het monitoringaccount uw monitoringaccountnummer, AWS-regio en monitoringprofiel op:
    $ cdk bootstrap aws://<MONITORING-ACCOUNT-NUMBER>/<REGION> --profile <MONITORING-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

  2. Geef in het bronaccount uw bronaccountnummer, regio en bronprofiel op:x
    $ cdk bootstrap aws://<SOURCE-ACCOUNT-NUMBER>/<REGION> --profile <SOURCE-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

Wanneer u slechts één account voor alle omgevingen gebruikt, kunt u gewoon hetcdk bootstrapopdracht een keer.

Implementeer uw AWS-bronnen

Voer de volgende opdrachten uit om uw AWS-bronnen te implementeren:

  1. Voer de volgende opdracht uit met behulp van het monitoringaccount om bronnen te implementeren die zijn gedefinieerd in de AWS CDK-sjabloon:
    $ cdk deploy '*' --profile <MONITORING-PROFILE>

  2. Voer de volgende opdracht uit met behulp van het bronaccount om bronnen te implementeren die zijn gedefinieerd in de AWS CDK-sjabloon:
    $ cdk deploy MetricSenderStack --profile <SOURCE-PROFILE>

Configureer QuickSight-machtigingen

In eerste instantie zijn de nieuwe QuickSight-bronnen, inclusief de dataset en analyse gemaakt door de AWS CDK-sjabloon, niet zichtbaar voor u omdat er nog geen QuickSight-machtigingen zijn geconfigureerd.

Om de dataset en analyse voor u zichtbaar te maken, voert u de volgende stappen uit:

  1. Navigeer op de QuickSight-console naar het gebruikersmenu en kies Beheer QuickSight.
  2. Kies in het navigatievenster Beheer activa.
  3. Onder Blader door activa, kiezen Analyse.
  4. Zoek naar GlueObservabilityAnalysis en selecteer deze.
  5. Kies SHARE.
  6. Voor Gebruiker of Groep, selecteer uw gebruiker en kies vervolgens DEEL (1).
  7. Wacht tot het delen is voltooid en kies vervolgens DONE.
  8. Op de Beheer activa pagina, kies datasets.
  9. Zoek naar observability_demo.metrics_data en selecteer deze.
  10. Kies SHARE.
  11. Voor Gebruiker of Groep, selecteer uw gebruiker en kies vervolgens DEEL (1).
  12. Wacht tot het delen is voltooid en kies vervolgens DONE.

Ontdek de standaard QuickSight-analyse

Nu zijn uw QuickSight-analyse en dataset voor u zichtbaar. U kunt terugkeren naar de QuickSight-console en onder GlueObservabilityAnalysis kiezen Analyse. De volgende schermafbeelding toont uw dashboard.

De monsteranalyse heeft twee tabbladen: Monitoren en Insights. Standaard is de Monitoren tabblad bevat de volgende grafieken:

  • [Betrouwbaarheid] Uitsplitsing van taakuitvoeringsfouten
  • [Betrouwbaarheid] Taakuitvoeringsfouten (totaal)
  • [Prestaties] Scheefheidstaak
  • [Prestaties] Scheefheid Taak per taak

  • [Gebruik van hulpbronnen] Gebruik van werknemers
  • [Resourcegebruik] Personeelsgebruik per taak
  • [Doorvoer] BytesRead, RecordsRead, FilesRead, PartitionRead (Gem.)
  • [Doorvoer] BytesWritten, RecordsWritten, FilesWritten (Gem.)

  • [Bronnengebruik Schijf beschikbaar GB (min.)
  • [Bronnengebruik Max. schijfgebruikt % (Max.)

  • [Stuurprogramma OOM] Aantal OOM-fouten
  • [Driver OOM] Max. Heap-geheugen gebruikt % (Max.)
  • [Uitvoerder OOM] Aantal OOM-fouten
  • [Executor OOM] Max. gebruikt heapgeheugen % (max.)

Standaard is de Insights tabblad heeft de volgende inzichten:

  • Laagst gerangschikte inzet van werknemers
  • Best beoordeelde scheefheidstaak

  • Voorspelling van het personeelsgebruik
  • Top Mover readBytes

U kunt nieuwe grafiekdiagrammen of inzichten toevoegen met behulp van de observatiestatistieken op basis van uw vereisten.

Publiceer het QuickSight-dashboard

Wanneer de analyse gereed is, voert u de volgende stappen uit om het dashboard te publiceren:

  1. Kies PUBLICEREN.
  2. kies Publiceer een nieuw dashboard alsen ga naar binnen GlueObservabilityDashboard.
  3. Kies Publiceer dashboard.

Vervolgens kunt u het dashboard bekijken en delen.

Visualiseer en analyseer met AWS Glue-statistieken voor de observatie van taken

Laten we het dashboard gebruiken om het gebruik van AWS Glue beter te laten presteren.

Kijkend naar de Scheefheidstaak per taak Volgens de visualisatie was er een piek op 1 november 2023. De scheefheidsstatistieken van de meertrapsdemo voor banen lieten een waarde van 9.53 zien, wat aanzienlijk hoger is dan andere.

Laten we dieper ingaan op de details. Je kan kiezen Controlsen wijzig de filtervoorwaarden op basis van datum/tijd, regio, AWS-account-ID, AWS Glue-taaknaam, taakuitvoerings-ID en de bron en sink van de gegevensarchieven. Laten we voorlopig filteren met de taaknaam multistage-demo.

De gefilterde Werknemersinzet per taak de visualisatie toont 0.5 en de minimumwaarde was 0.16. Het lijkt erop dat er ruimte is voor verbetering in het gebruik van hulpbronnen. Deze observatie begeleidt u bij het inschakelen van automatisch schalen voor deze taak om de bezettingsgraad van werknemers te vergroten.

Opruimen

Voer de volgende opdrachten uit om uw AWS-bronnen op te schonen:

  1. Voer de volgende opdracht uit met behulp van het monitoringaccount om bronnen op te schonen:
    $ cdk destroy '*' --profile <MONITORING-PROFILE>

    Voer de volgende opdracht uit met het bronaccount om bronnen op te schonen:

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

Overwegingen

QuickSight-integratie is ontworpen voor analyse en betere flexibiliteit. U kunt statistieken aggregeren op basis van elk veld. Wanneer u met veel opdrachten tegelijk te maken heeft, helpen QuickSight-inzichten u bij het identificeren van problematische opdrachten.

QuickSight-integratie wordt bereikt met meer bronnen in uw omgevingen. Het monitoringaccount heeft een AWS Glue-database, tabel, crawler en S3-bucket nodig, en de mogelijkheid om Athena-query's uit te voeren om statistieken in QuickSight te visualiseren. Elk bronaccount moet één metrische stream en één Firehose-leveringsstream hebben. Dit kan extra kosten met zich meebrengen.

Alle benodigde bronnen zijn in AWS CDK in sjablonen opgenomen.

Conclusie

In dit bericht hebben we onderzocht hoe u de observatiestatistieken van AWS Glue-taken op QuickSight kunt visualiseren en analyseren met behulp van metrische streams van CloudWatch en SPICE. Door de nieuwe observatiestatistieken te koppelen aan interactieve QuickSight-dashboards, kunt u dagelijkse, wekelijkse en maandelijkse patronen ontdekken om het gebruik van AWS Glue-taken te optimaliseren. Met de rijke visualisatiemogelijkheden van QuickSight kunt u trends in statistieken analyseren, zoals de inzet van medewerkers, foutcategorieën, doorvoer en meer. Het aggregeren van statistieken en het opsplitsen van gegevens op verschillende dimensies, zoals de functienaam, kan diepere inzichten opleveren.

Het voorbeelddashboard toonde statistieken in de loop van de tijd, topfouten en vergelijkende functieanalyses. Deze visualisaties en rapporten kunnen veilig worden gedeeld met teams in de hele organisatie. Met datagestuurde inzichten in de observatiestatistieken van AWS Glue krijgt u dieper inzicht in prestatieknelpunten, veelvoorkomende fouten en meer.


Over de auteurs

Noritaka Sekiyama is een Principal Big Data Architect in het AWS Glue-team. Hij is verantwoordelijk voor het bouwen van software-artefacten om klanten te helpen. In zijn vrije tijd fietst hij graag met zijn nieuwe racefiets.

Chuhan LiuChuhan Liu is een Software Development Engineer in het AWS Glue-team. Hij heeft een passie voor het bouwen van schaalbare gedistribueerde systemen voor de verwerking, analyse en beheer van big data. In zijn vrije tijd speelt hij graag tennis.

XiaoRun Yu is een Software Development Engineer in het AWS Glue-team. Hij werkt aan het bouwen van nieuwe functies voor AWS Glue om klanten te helpen. Buiten zijn werk verkent Xiaorun graag nieuwe plekken in de Bay Area.

Sean Ma is een hoofdproductmanager van het AWS Glue-team. Hij heeft een trackrecord van meer dan 18 jaar in het innoveren en leveren van bedrijfsproducten die de kracht van data voor gebruikers ontsluiten. Buiten zijn werk houdt Sean van duiken en universiteitsvoetbal.

Mohit Saxena is een Senior Software Development Manager bij het AWS Glue-team. Zijn team richt zich op het bouwen van gedistribueerde systemen om klanten met interactieve en eenvoudig te gebruiken interfaces in staat te stellen petabytes aan gegevens efficiënt te beheren en naadloos te transformeren over datameren op Amazon S3, databases en datawarehouses in de cloud.

spot_img

Laatste intelligentie

spot_img