Zephyrnet-Logo

Verbessern Sie die Überwachung und das Debugging für AWS Glue-Jobs mithilfe neuer Job-Beobachtbarkeitsmetriken, Teil 2: Echtzeitüberwachung mit Grafana | Amazon Web Services

Datum:

Die Überwachung von Datenpipelines in Echtzeit ist entscheidend, um Probleme frühzeitig zu erkennen und Störungen zu minimieren. AWS-Kleber hat dies mit der Einführung von vereinfacht Beobachtbarkeitsmetriken für AWS Glue-Jobs, die wertvolle Einblicke in Ihre auf AWS Glue basierenden Datenintegrationspipelines bieten. Möglicherweise müssen Sie jedoch wichtige Leistungsindikatoren über mehrere Jobs hinweg verfolgen. In diesem Fall ist ein Dashboard, das dieselben Kennzahlen visualisieren kann und die Möglichkeit bietet, einzelne Probleme aufzuschlüsseln, eine effektive Lösung für die Überwachung im großen Maßstab.

In diesem Beitrag erfahren Sie, wie Sie mithilfe von AWS Glue-Job-Beobachtbarkeitsmetriken in Grafana integrieren Von Amazon verwaltetes Grafana. Wir besprechen die verfügbaren Arten von Metriken und Diagrammen, um wichtige Erkenntnisse zu gewinnen, sowie zwei Anwendungsfälle zur Überwachung von Fehlerklassen und zum Durchsatz Ihrer AWS Glue-Aufträge.

Lösungsüberblick

Grafana ist ein Open-Source-Visualisierungstool, mit dem Sie Ihre Metriken abfragen, visualisieren, alarmieren und verstehen können, unabhängig davon, wo sie gespeichert sind. Mit Grafana können Sie visuell ansprechende, datengesteuerte Dashboards erstellen, erkunden und teilen. Die neuen AWS Glue-Auftragsbeobachtbarkeitsmetriken können zur Echtzeitüberwachung mühelos in Grafana integriert werden. Metriken wie Worker-Auslastung, Schiefe, I/O-Rate und Fehler werden erfasst und in leicht lesbaren Grafana-Dashboards visualisiert. Die Integration mit Grafana bietet eine flexible Möglichkeit, benutzerdefinierte Ansichten des Pipeline-Zustands zu erstellen, die auf Ihre Bedürfnisse zugeschnitten sind. Beobachtbarkeitsmetriken eröffnen Überwachungsmöglichkeiten, die für AWS Glue zuvor nicht möglich waren. Unternehmen, die sich bei kritischen Datenintegrationspipelines auf AWS Glue verlassen, können sich darauf verlassen, dass ihre Pipelines effizient laufen.

AWS Glue-Job-Beobachtbarkeitsmetriken werden ausgegeben als Amazon CloudWatch Metriken. Sie können Amazon Managed Grafana bereitstellen und verwalten und das CloudWatch-Plugin für die angegebenen Metriken konfigurieren. Das folgende Diagramm veranschaulicht die Lösungsarchitektur.

Implementieren Sie die Lösung

Führen Sie die folgenden Schritte aus, um die Lösung einzurichten:

  1. Richten Sie ein Von Amazon verwalteter Grafana-Arbeitsbereich.
  2. Melden Sie sich bei Ihrem Arbeitsbereich an.
  3. Auswählen Verwaltung.
  4. Auswählen Neue Datenquelle hinzufügen.
  5. Auswählen Cloudwatch.
  6. Aussichten für Standardregion, wählen Sie Ihre bevorzugte AWS-Region aus.
  7. Aussichten für Namespaces benutzerdefinierter Metriken, geben Sie Kleber ein.
  8. Auswählen Speichern und testen.

Jetzt wurde die CloudWatch-Datenquelle registriert.

  1. Kopieren Sie die Datenquellen-ID aus der URL https://g-XXXXXXXXXX.grafana-workspace.<region>.amazonaws.com/datasources/edit/<data-source-ID>/.

Der nächste Schritt besteht darin, die JSON-Vorlagendatei vorzubereiten.

  1. Laden Sie die Grafana-Vorlage herunter.
  2. Ersetzen <data-source-id> in der JSON-Datei mit Ihrer Grafana-Datenquellen-ID.

Konfigurieren Sie abschließend das Dashboard.

  1. Wählen Sie auf der Grafana-Konsole Armaturenbretter.
  2. Auswählen Import auf die Neu Menü.
  3. Laden Sie Ihre JSON-Datei hoch und wählen Sie Import.

Das Grafana-Dashboard visualisiert die Beobachtbarkeitsmetriken von AWS Glue, wie in den folgenden Screenshots dargestellt.

Das Beispiel-Dashboard enthält die folgenden Diagramme:

  • [Zuverlässigkeit] Aufschlüsselung der Jobausführungsfehler
  • [Durchsatz] Bytes lesen und schreiben
  • [Durchsatz] Zeichnet Lese- und Schreibvorgänge auf
  • [Ressourcenauslastung] Arbeiterauslastung
  • [Arbeitsleistung] Schiefe
  • [Ressourcenauslastung] Verwendete Festplatte (%)
  • [Ressourcennutzung] Verfügbarer Speicherplatz (GB)
  • [Executor OOM] OOM-Fehleranzahl
  • [Executor OOM] Verwendeter Heap-Speicher (%)
  • [Treiber-OOM] OOM-Fehleranzahl
  • [Treiber-OOM] Verwendeter Heap-Speicher (%)

Analysieren Sie die Ursachen für Arbeitsausfälle

Versuchen wir, die Ursachen für fehlgeschlagene Jobausführungen des Jobs zu analysieren iot_data_processing.

Schauen Sie sich zunächst das Kreisdiagramm [Zuverlässigkeit] Aufschlüsselung der Auftragsausführungsfehler an. Anhand dieses Kreisdiagramms können Sie schnell erkennen, welche Fehler am häufigsten auftreten.

Filtern Sie dann nach dem Jobnamen iot_data_processing um die häufigsten Fehler für diesen Job zu sehen.

Wir können beobachten, dass die Mehrheit (75 %) der Ausfälle darauf zurückzuführen sind glue.error.DISK_NO_SPACE_ERROR.

Sehen Sie sich als Nächstes das Liniendiagramm [Ressourcenauslastung] Verwendeter Speicherplatz (%) an, um den vom Treiber während der Jobausführung verwendeten Speicherplatz zu verstehen. Für diesen Job zeigt die grüne Linie die Festplattennutzung des Treibers und die gelbe Linie die durchschnittliche Festplattennutzung der Ausführenden.

Wir können beobachten, dass dreimal 100 % der Festplatte in Executoren genutzt wurden.

Schauen Sie sich als Nächstes das Liniendiagramm [Durchsatz] erfasst Lese- und Schreibvorgänge an, um zu sehen, ob sich das Datenvolumen geändert hat und ob sich dies auf die Festplattennutzung ausgewirkt hat.

Die Grafik zeigt, dass am Anfang dieses Bereichs rund vier Milliarden Datensätze gelesen wurden; Allerdings wurden in der Spitze rund 63 Milliarden Datensätze gelesen. Dies bedeutet, dass das eingehende Datenvolumen erheblich zugenommen hat und zu einem Mangel an lokalem Speicherplatz auf den Worker-Knoten geführt hat. In solchen Fällen können Sie die Anzahl der Worker erhöhen, die automatische Skalierung aktivieren oder größere Worker-Typen auswählen.

Nachdem wir diese Vorschläge umgesetzt haben, können wir eine geringere Festplattennutzung und eine erfolgreiche Auftragsausführung feststellen.

(Optional) Konfigurieren Sie die kontoübergreifende Einrichtung

Optional können wir eine kontoübergreifende Einrichtung konfigurieren. Kontoübergreifende Kennzahlen hängen davon ab Kontoübergreifende Beobachtbarkeit von CloudWatch. In diesem Setup erwarten wir die folgende Umgebung:

  • AWS-Konten werden nicht in verwaltet AWS-Organisationen
  • Sie haben zwei Konten: Ein Konto wird als Überwachungskonto verwendet, in dem sich Grafana befindet, ein anderes Konto wird als Quellkonto verwendet, in dem sich die AWS Glue-basierte Datenintegrationspipeline befindet

Um eine kontoübergreifende Einrichtung für diese Umgebung zu konfigurieren, führen Sie die folgenden Schritte für jedes Konto aus.

Überwachungskonto

Führen Sie die folgenden Schritte aus, um Ihr Überwachungskonto zu konfigurieren:

  1. Melden Sie sich bei der an AWS-Managementkonsole Verwenden Sie das Konto, das Sie für die Überwachung verwenden.
  2. Wählen Sie in der CloudWatch-Konsole aus Einstellungen im Navigationsbereich.
  3. Der Überwachung der Kontokonfiguration, wählen Einrichtung.
  4. Aussichten für Wählen Sie Daten aus, wählen Metrik.
  5. Aussichten für Quellkonten auflistenGeben Sie die AWS-Konto-ID des Quellkontos ein, das dieses Überwachungskonto anzeigen soll.
  6. Aussichten für Definieren Sie eine Bezeichnung, um Ihr Quellkonto zu identifizieren, wählen Kontobezeichnung.
  7. Auswählen Einrichtung.

Jetzt ist das Konto erfolgreich als Überwachungskonto konfiguriert.

  1. Der Überwachung der Kontokonfiguration, wählen Ressourcen zum Verknüpfen von Konten.
  2. Auswählen Jedes Konto um eine URL zum Einrichten einzelner Konten als Quellkonten zu erhalten.
  3. Auswählen URL kopieren.

In den nächsten Schritten verwenden Sie die kopierte URL aus dem Quellkonto.

Quellkonto

Führen Sie die folgenden Schritte aus, um Ihr Quellkonto zu konfigurieren:

  1. Melden Sie sich mit Ihrem Quellkonto bei der Konsole an.
  2. Geben Sie die URL ein, die Sie aus dem Überwachungskonto kopiert haben.

Sie können die CloudWatch-Einstellungsseite sehen, auf der einige Informationen ausgefüllt sind.

  1. Aussichten für Wählen Sie Daten aus, wählen Metrik.
  2. Ändern Sie den ARN nicht Geben Sie den Konfigurations-ARN für das Überwachungskonto ein.
  3. Das Definieren Sie eine Bezeichnung, um Ihr Quellkonto zu identifizieren Der Abschnitt ist mit der Beschriftungsauswahl aus dem Überwachungskonto vorab ausgefüllt. Wählen Sie optional Bearbeiten zu ändern.
  4. Auswählen Link.
  5. Enter Confirm in das Feld ein und wählen Sie Schichtannahme.

Jetzt wurde Ihr Quellkonto für die Verknüpfung mit dem Überwachungskonto konfiguriert. Die im Quellkonto ausgegebenen Metriken werden im Grafana-Dashboard im Überwachungskonto angezeigt.

Weitere Informationen finden Sie unter Kontoübergreifende Beobachtbarkeit von CloudWatch.

Überlegungen

Im Folgenden finden Sie einige Überlegungen zur Verwendung dieser Lösung:

  • Die Grafana-Integration ist für die Echtzeitüberwachung definiert. Wenn Sie über grundlegende Kenntnisse Ihrer Aufgaben verfügen, können Sie Leistung, Fehler und mehr problemlos im Grafana-Dashboard überwachen.
  • Amazon Managed Grafana hängt davon ab AWS IAM Identify Center. Das bedeutet, dass Sie Single-Sign-On-Benutzer (SSO) separat und nicht nur verwalten müssen AWS Identity and Access Management and (IAM)-Benutzer und -Rollen. Außerdem ist ein weiterer Anmeldeschritt über die AWS-Konsole erforderlich. Das Amazon Managed Grafana-Preismodell basiert auf einer aktiven Benutzerlizenz pro Arbeitsbereich. Mehr Benutzer können höhere Gebühren verursachen.
  • Diagrammlinien werden pro Job visualisiert. Wenn Sie die Linien über alle Jobs hinweg sehen möchten, können Sie auswählen ALLER in der Steuerung.

Zusammenfassung

AWS Glue-Job-Beobachtbarkeitsmetriken bieten eine leistungsstarke neue Funktion zur Überwachung der Datenpipeline-Leistung in Echtzeit. Durch das Streamen wichtiger Kennzahlen an CloudWatch und deren Visualisierung in Grafana erhalten Sie eine detailliertere Sichtbarkeit, die zuvor nicht möglich war. Dieser Beitrag zeigte, wie einfach es ist, Beobachtbarkeitsmetriken zu aktivieren und die Daten mithilfe von Amazon Managed Grafana in Grafana zu integrieren. Wir haben die verschiedenen verfügbaren Metriken untersucht und untersucht, wie man benutzerdefinierte Grafana-Dashboards erstellt, um umsetzbare Erkenntnisse zu gewinnen.

Beobachtbarkeit ist heute ein wesentlicher Bestandteil einer robusten Datenorchestrierung auf AWS. Mit der Möglichkeit, Datenintegrationstrends in Echtzeit zu überwachen, können Sie Kosten, Leistung und Zuverlässigkeit optimieren.


Ü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.

Xiaoxi Liu ist Softwareentwicklungsingenieur im AWS Glue-Team. Ihre Leidenschaft ist der Aufbau skalierbarer verteilter Systeme für die effiziente Verwaltung großer Datenmengen in der Cloud. Ihre Schwerpunkte liegen auf verteilten Systemen, Big Data und Cloud Computing.

Akira Ajisaka ist Senior Software Development Engineer im AWS Glue-Team. Er mag Open-Source-Software und verteilte Systeme. In seiner Freizeit spielt er gerne Arcade-Spiele.

Shenoda Guirguis ist Senior Software Development Engineer im AWS Glue-Team. Seine Leidenschaft gilt dem Aufbau skalierbarer und verteilter Dateninfrastrukturen und -verarbeitungssysteme. Wenn er die Gelegenheit dazu bekommt, liest Shenoda gerne und spielt Fußball.

Sean Ma ist Hauptproduktmanager im AWS Glue-Team. Er verfügt über eine 18-jährige Erfolgsgeschichte in der Innovation und Bereitstellung von Unternehmensprodukten, die den 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