Zephyrnet-Logo

Verbessern Sie die Überwachung und das Debuggen für AWS Glue-Jobs mithilfe neuer Job-Beobachtbarkeitsmetriken, Teil 3: Visualisierung und Trendanalyse mit Amazon QuickSight | Amazon Web Services

Datum:

In Teil 2 In dieser Serie haben wir besprochen, wie man es aktiviert AWS-Kleber Job-Beobachtbarkeitsmetriken und integrieren Sie sie mit Grafana für eine Echtzeitüberwachung. Grafana bietet leistungsstarke, anpassbare Dashboards zur Anzeige des Pipeline-Zustands. Um jedoch Trends im Zeitverlauf zu analysieren, aus verschiedenen Dimensionen zu aggregieren und Erkenntnisse im gesamten Unternehmen zu teilen, ist ein speziell entwickeltes Business Intelligence (BI)-Tool wie z Amazon QuickSight kann für Ihr Unternehmen effektiver sein. QuickSight erleichtert Geschäftsanwendern die Visualisierung von Daten in interaktiven Dashboards und Berichten.

In diesem Beitrag erfahren Sie, wie Sie QuickSight mit verbinden Amazon CloudWatch Metriken und erstellen Sie Diagramme, um Trends in den Metriken zur Beobachtbarkeit von AWS Glue-Jobs aufzudecken. Durch die Analyse historischer Muster können Sie die Leistung optimieren, Probleme proaktiv identifizieren und die Planung verbessern. Wir gehen durch die Aufnahme von CloudWatch-Metriken in QuickSight mithilfe eines CloudWatch-Metrikstreams und QuickSight SPICE. Mit dieser Integration können Sie Liniendiagramme, Balkendiagramme und andere Diagrammtypen verwenden, um tägliche, wöchentliche und monatliche Muster aufzudecken. Mit QuickSight können Sie aggregierte Berechnungen für Metriken durchführen, um eine tiefergehende Analyse zu ermöglichen. Sie können Daten nach verschiedenen Dimensionen wie Jobnamen aufteilen, Anomalien erkennen und Berichte sicher im gesamten Unternehmen teilen. Mit diesen Erkenntnissen haben Teams die nötige Transparenz, um Datenintegrationspipelines effizienter zu gestalten.

Lösungsüberblick

Das folgende Architekturdiagramm veranschaulicht den Workflow zur Implementierung der Lösung.

Der Workflow umfasst die folgenden Schritte:

  1. AWS Glue-Jobs geben Beobachtbarkeitsmetriken an CloudWatch-Metriken aus.
  2. CloudWatch streamt Metrikdaten über einen Metrik-Stream in Amazon Data Firehose.
  3. Data Firehose verwendet eine AWS Lambda Funktion zum Transformieren von Daten und zum Aufnehmen der transformierten Datensätze in eine Amazon Simple Storage-Service (Amazon S3) Eimer.
  4. Ein AWS Glue-Crawler scannt Daten im S3-Bucket und füllt Tabellenmetadaten im AWS Glue-Datenkatalog auf.
  5. QuickSight wird regelmäßig ausgeführt Amazonas Athena Abfragen, um Abfrageergebnisse in SPICE zu laden und dann die neuesten Metrikdaten zu visualisieren.

Alle Ressourcen werden in einem Beispiel definiert AWS Cloud-Entwicklungskit (AWS CDK)-Vorlage. Sie können die End-to-End-Lösung einsetzen, um Trends der Beobachtbarkeitsmetriken zu visualisieren und zu analysieren.

Beispiel-AWS-CDK-Vorlage

Dieser Beitrag stellt eine AWS CDK-Beispielvorlage für ein Dashboard bereit, das AWS Glue-Beobachtbarkeitsmetriken verwendet.

Normalerweise verfügen Sie über mehrere Konten, um Ressourcen für Ihre Datenpipeline zu verwalten und auszuführen.

In dieser Vorlage gehen wir von folgenden Konten aus:

  • Überwachungskonto – Hier werden der zentrale S3-Bucket, der zentrale Datenkatalog und QuickSight-bezogene Ressourcen gehostet
  • Quellkonto – Hier werden einzelne Datenpipeline-Ressourcen auf AWS Glue und die Ressourcen zum Senden von Metriken an das Überwachungskonto gehostet

Die Vorlage funktioniert auch dann, wenn das Überwachungskonto und das Quellkonto identisch sind.

Diese Beispielvorlage besteht aus vier Stapeln:

  • Amazon S3-Stack – Dadurch wird der S3-Bucket bereitgestellt
  • Datenkatalog-Stapel – Dadurch werden die AWS Glue-Datenbank, -Tabelle und der Crawler bereitgestellt
  • QuickSight-Stack – Dadurch werden die QuickSight-Datenquelle, der Datensatz und die Analyse bereitgestellt
  • Metrik-Sender-Stack – Dadurch werden der CloudWatch-Metrikstrom, der Firehose-Bereitstellungsstrom und die Lambda-Funktion für die Transformation bereitgestellt

Voraussetzungen:

Folgende Voraussetzungen sollten Sie mitbringen:

  • Python 3.9 oder höher
  • AWS-Konten für das Überwachungskonto und das Quellkonto
  • An Von AWS benanntes Profil für das Überwachungskonto und das Quellkonto
  • Das AWS CDK-Toolkit 2.87.0 oder höher

Initialisieren Sie das CDK-Projekt

Um das Projekt zu initialisieren, führen Sie die folgenden Schritte aus:

  1. Klonen Sie die CDK-Vorlage zu Ihrem Arbeitsplatz:
    $ git clone git@github.com:aws-samples/aws-glue-cdk-baseline.git 
    
    $ cd aws-glue-cdk-baseline.git

  2. Erstellen Sie eine Python virtuelle Umgebung spezifisch für das Projekt auf dem Client-Rechner:
    $ python3 -m venv .venv

Wir verwenden eine virtuelle Umgebung, um die Python-Umgebung für dieses Projekt zu isolieren und Software nicht global zu installieren.

  1. Aktivieren Sie die virtuelle Umgebung entsprechend Ihrem Betriebssystem:
    • Verwenden Sie unter MacOS und Linux den folgenden Code:
      $ source .venv/bin/activate

    • Verwenden Sie auf einer Windows-Plattform den folgenden Code:
      % .venvScriptsactivate.bat

Nach diesem Schritt werden die nachfolgenden Schritte innerhalb der Grenzen der virtuellen Umgebung auf dem Clientcomputer ausgeführt und interagieren nach Bedarf mit dem AWS-Konto.

  1. Installieren Sie die erforderlichen Abhängigkeiten, die in beschrieben sind requirements.txt zur virtuellen Umgebung:
    $ pip install -r requirements.txt

  2. Bearbeiten Sie die Konfigurationsdatei default-config.yaml basierend auf Ihren Umgebungen (ersetzen Sie jede Konto-ID durch Ihre eigene).
    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 Ihrer AWS-Umgebungen

Führen Sie die folgenden Befehle aus, um Ihre AWS-Umgebungen zu booten:

  1. Geben Sie im Überwachungskonto Ihre Überwachungskontonummer, AWS-Region und Ihr Überwachungsprofil an:
    $ cdk bootstrap aws://<MONITORING-ACCOUNT-NUMBER>/<REGION> --profile <MONITORING-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

  2. Geben Sie im Quellkonto Ihre Quellkontonummer, Ihre Region und Ihr Quellprofil an:x
    $ cdk bootstrap aws://<SOURCE-ACCOUNT-NUMBER>/<REGION> --profile <SOURCE-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

Wenn Sie nur ein Konto für alle Umgebungen verwenden, können Sie einfach das ausführencdk bootstrapBefehl einmal.

Stellen Sie Ihre AWS-Ressourcen bereit

Führen Sie die folgenden Befehle aus, um Ihre AWS-Ressourcen bereitzustellen:

  1. Führen Sie den folgenden Befehl mit dem Überwachungskonto aus, um in der AWS CDK-Vorlage definierte Ressourcen bereitzustellen:
    $ cdk deploy '*' --profile <MONITORING-PROFILE>

  2. Führen Sie den folgenden Befehl mit dem Quellkonto aus, um in der AWS CDK-Vorlage definierte Ressourcen bereitzustellen:
    $ cdk deploy MetricSenderStack --profile <SOURCE-PROFILE>

Konfigurieren Sie QuickSight-Berechtigungen

Zunächst sind die neuen QuickSight-Ressourcen, einschließlich des von der AWS CDK-Vorlage erstellten Datensatzes und der Analyse, für Sie nicht sichtbar, da noch keine QuickSight-Berechtigungen konfiguriert sind.

Um den Datensatz und die Analyse für Sie sichtbar zu machen, führen Sie die folgenden Schritte aus:

  1. Navigieren Sie auf der QuickSight-Konsole zum Benutzermenü und wählen Sie aus QuickSight verwalten.
  2. Wählen Sie im Navigationsbereich Assets verwalten.
  3. Der Durchsuchen Sie Assets, wählen Analyse.
  4. Suchen Sie nach GlueObservabilityAnalysis und wählen Sie es aus.
  5. Auswählen TEILEN.
  6. Aussichten für Benutzer oder Gruppe, wählen Sie Ihren Benutzer aus und wählen Sie dann TEILEN (1).
  7. Warten Sie, bis die Freigabe abgeschlossen ist, und wählen Sie dann aus DONE.
  8. Auf dem Assets verwalten Seite wählen Datensätze.
  9. Suchen Sie nach observability_demo.metrics_data und wählen Sie es aus.
  10. Auswählen TEILEN.
  11. Aussichten für Benutzer oder Gruppe, wählen Sie Ihren Benutzer aus und wählen Sie dann TEILEN (1).
  12. Warten Sie, bis die Freigabe abgeschlossen ist, und wählen Sie dann aus DONE.

Entdecken Sie die standardmäßige QuickSight-Analyse

Jetzt sind Ihre QuickSight-Analyse und Ihr Datensatz für Sie sichtbar. Sie können zur QuickSight-Konsole zurückkehren und unter „GlueObservabilityAnalysis“ auswählen Analyse. Der folgende Screenshot zeigt Ihr Dashboard.

Die Probenanalyse verfügt über zwei Registerkarten: Netzwerk Performance und Blog. Standardmäßig ist der Netzwerk Performance Die Registerkarte enthält die folgenden Diagramme:

  • [Zuverlässigkeit] Aufschlüsselung der Jobausführungsfehler
  • [Zuverlässigkeit] Jobausführungsfehler (Gesamt)
  • [Leistung] Skewness-Job
  • [Leistung] Schiefe Job pro Job

  • [Ressourcenauslastung] Arbeiterauslastung
  • [Ressourcenauslastung] Arbeiterauslastung pro Job
  • [Durchsatz] BytesRead, RecordsRead, FilesRead, PartitionRead (Durchschn.)
  • [Durchsatz] BytesWritten, RecordsWritten, FilesWritten (Durchschnitt)

  • [Ressourcenauslastung verfügbarer Datenträger in GB (Min.)“
  • [Ressourcenauslastung Max. genutzter Datenträger % (Max)

  • [Treiber-OOM] OOM-Fehleranzahl
  • [Treiber-OOM] Max. genutzter Heap-Speicher % (Max)
  • [Executor OOM] OOM-Fehleranzahl
  • [Executor OOM] Maximal genutzter Heap-Speicher % (Max)

Standardmäßig ist die Blog Die Registerkarte bietet folgende Erkenntnisse:

  • Arbeitskräfteauslastung auf der untersten Stufe
  • Bestbewerteter Skewness-Job

  • Prognose der Arbeitskräfteauslastung
  • Top Mover readBytes

Sie können mithilfe der Beobachtbarkeitsmetriken basierend auf Ihren Anforderungen beliebige neue Diagramme oder Erkenntnisse hinzufügen.

Veröffentlichen Sie das QuickSight-Dashboard

Wenn die Analyse fertig ist, führen Sie die folgenden Schritte aus, um das Dashboard zu veröffentlichen:

  1. Auswählen VERÖFFENTLICHEN.
  2. Auswählen Neues Dashboard veröffentlichen alsund gib ein GlueObservabilityDashboard.
  3. Auswählen Dashboard veröffentlichen.

Anschließend können Sie das Dashboard anzeigen und teilen.

Visualisieren und analysieren Sie mit AWS Glue Job-Beobachtbarkeitsmetriken

Nutzen wir das Dashboard, um die Nutzung von AWS Glue leistungsfähiger zu machen.

Mit Blick auf die Schiefe Job pro Job Visualisierung gab es am 1. November 2023 einen Anstieg. Die Skewness-Metriken der Job-Multistage-Demo zeigten 9.53, was deutlich höher ist als bei anderen.

Schauen wir uns die Details genauer an. Du kannst wählen Steuergriffeund ändern Sie die Filterbedingungen basierend auf Datum und Uhrzeit, Region, AWS-Konto-ID, AWS Glue-Auftragsname, Auftragsausführungs-ID sowie Quelle und Senke der Datenspeicher. Lassen Sie uns zunächst nach dem Jobnamen „multistage-demo“ filtern.

Die gefiltert Arbeitskräfteauslastung pro Job Die Visualisierung zeigt 0.5 und der Mindestwert betrug 0.16. Es scheint, als gäbe es Raum für Verbesserungen bei der Ressourcennutzung. Diese Beobachtung hilft Ihnen, die automatische Skalierung für diesen Job zu aktivieren, um die Worker-Auslastung zu erhöhen.

Aufräumen

Führen Sie die folgenden Befehle aus, um Ihre AWS-Ressourcen zu bereinigen:

  1. Führen Sie den folgenden Befehl mit dem Überwachungskonto aus, um Ressourcen zu bereinigen:
    $ cdk destroy '*' --profile <MONITORING-PROFILE>

    Führen Sie den folgenden Befehl mit dem Quellkonto aus, um Ressourcen zu bereinigen:

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

Überlegungen

Die QuickSight-Integration ist auf Analyse und bessere Flexibilität ausgelegt. Sie können Metriken basierend auf beliebigen Feldern aggregieren. Wenn Sie viele Aufträge gleichzeitig bearbeiten, helfen Ihnen die QuickSight-Einblicke dabei, problematische Aufträge zu identifizieren.

Die QuickSight-Integration wird mit mehr Ressourcen in Ihren Umgebungen erreicht. Das Überwachungskonto benötigt eine AWS Glue-Datenbank, eine Tabelle, einen Crawler und einen S3-Bucket sowie die Möglichkeit, Athena-Abfragen auszuführen, um Metriken in QuickSight zu visualisieren. Jedes Quellkonto muss über einen Metrik-Stream und einen Firehose-Bereitstellungs-Stream verfügen. Dadurch können zusätzliche Kosten entstehen.

Alle erforderlichen Ressourcen werden im AWS CDK als Vorlage bereitgestellt.

Zusammenfassung

In diesem Beitrag haben wir untersucht, wie man AWS Glue-Auftragsbeobachtbarkeitsmetriken auf QuickSight mithilfe von CloudWatch-Metrikstreams und SPICE visualisiert und analysiert. Durch die Verbindung der neuen Observability-Metriken mit interaktiven QuickSight-Dashboards können Sie tägliche, wöchentliche und monatliche Muster erkennen, um die Nutzung von AWS Glue-Jobs zu optimieren. Mit den umfangreichen Visualisierungsfunktionen von QuickSight können Sie Trends bei Metriken wie Mitarbeiterauslastung, Fehlerkategorien, Durchsatz und mehr analysieren. Das Aggregieren von Metriken und das Aufteilen der Daten nach verschiedenen Dimensionen, wie z. B. dem Jobnamen, kann tiefere Erkenntnisse liefern.

Das Beispiel-Dashboard zeigte Metriken im Zeitverlauf, Top-Fehler und vergleichende Jobanalysen. Diese Visualisierungen und Berichte können sicher mit Teams im gesamten Unternehmen geteilt werden. Mit datengesteuerten Einblicken in die AWS Glue-Beobachtbarkeitsmetriken erhalten Sie tiefere Einblicke in Leistungsengpässe, häufige Fehler und mehr.


Über die Autoren

Noritaka Sekiyama ist Principal Big Data Architect im AWS Glue-Team. Er ist verantwortlich für die Erstellung von Softwareartefakten zur Unterstützung von Kunden. In seiner Freizeit fährt er gerne Rad mit seinem neuen Rennrad.

Chuhan LiuChuhan Liu ist Softwareentwicklungsingenieur im AWS Glue-Team. Seine Leidenschaft gilt dem Aufbau skalierbarer verteilter Systeme für die Verarbeitung, Analyse und Verwaltung großer Datenmengen. In seiner Freizeit spielt er gerne Tennis.

XiaoRun Yu ist Softwareentwicklungsingenieur im AWS Glue-Team. Er arbeitet an der Entwicklung neuer Funktionen für AWS Glue, um Kunden zu helfen. Außerhalb der Arbeit erkundet Xiaorun gerne neue Orte in der Bay Area.

Sean Ma ist Hauptproduktmanager im AWS Glue-Team. Er verfügt über eine Erfolgsgeschichte von mehr als 18 Jahren in der Innovation und Bereitstellung von Unternehmensprodukten, die Benutzern das Potenzial von Daten erschließen. Außerhalb der Arbeit liebt Sean Tauchen und College-Football.

Mohit Saxena ist Senior Software Development Manager im AWS Glue-Team. Sein Team konzentriert sich auf den Aufbau verteilter Systeme, um Kunden mit interaktiven und einfach zu bedienenden Schnittstellen die effiziente Verwaltung und nahtlose Transformation von Petabytes an Daten über Data Lakes auf Amazon S3, Datenbanken und Data Warehouses in der Cloud zu ermöglichen.

spot_img

Neueste Intelligenz

spot_img