AWS X-Ray und Step Functions - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS X-Ray und Step Functions

Sie können verwenden, AWS X-Ray um die Komponenten Ihres Zustandsautomaten zu visualisieren, Leistungsengpässe zu identifizieren und Anforderungen zu beheben, die zu einem Fehler geführt haben. Ihr Zustandsautomat sendet Trace-Daten an X-Ray und X-Ray verarbeitet die Daten, um eine Service-Übersicht und durchsuchbare Trace-Zusammenfassungen zu generieren.

Wenn X-Ray für Ihren Zustandsautomaten aktiviert ist, können Sie Anforderungen verfolgen, während sie in Step Functions in allen AWS Regionen ausgeführt werden, in denen X-Ray verfügbar ist. Auf diese Weise erhalten Sie einen detaillierten Überblick über eine gesamte Step-Functions-Anforderung. Step Functions sendet Ablaufverfolgungen an X-Ray für Ausführungen von Zustandsautomaten, auch wenn eine Ablaufverfolgungs-ID nicht von einem Upstream-Service übergeben wird. Sie können eine X-Ray-Service-Übersicht verwenden, um die Latenz einer Anforderung anzuzeigen, einschließlich aller AWS Services, die in X-Ray integriert sind. Sie können auch Samplingregeln konfigurieren, um X-Ray mitzuteilen, welche Anforderungen gemäß den von Ihnen angegebenen Kriterien aufgezeichnet werden sollen und mit welchen Sampling-Raten.

Wenn X-Ray für Ihren Zustandsautomaten nicht aktiviert ist und ein Upstream-Service keine Ablaufverfolgungs-ID übergibt, sendet Step Functions keine Ablaufverfolgungen für die Ausführung von Zustandsautomaten an X-Ray. Wenn jedoch eine Ablaufverfolgungs-ID von einem Upstream-Service übergeben wird, sendet Step Functions Ablaufverfolgungen für Zustandsautomatenausführungen an X-Ray.

Sie können AWS X-Ray mit Step Functions in Regionen verwenden, in denen beide unterstützt werden. Informationen zur Unterstützung von Regionen für X-Ray und Step Functions finden Sie auf den Seiten Step Functions und X-Ray-Endpunkte und -Kontingente.

Kombinierte Kontingente für X-Ray und Step Functions

Sie können Daten bis zu sieben Tage lang zu einem Trace hinzufügen und Trace-Daten abfragen, die auf einunddreißig Tage zurückreichen. Dies ist die Zeitspanne, in der X-Ray Trace-Daten speichert. Ihre Ablaufverfolgungen unterliegen X-Ray-Kontingenten. Zusätzlich zu anderen Kontingenten bietet X-Ray eine garantierte Mindestverfolgungsgröße von 100KB für Step-Functions-Zustandsautomaten. Wenn X-Ray mehr als 100KB Trace-Daten zur Verfügung gestellt werden, kann dies zu einer eingefrorenen Trace führen. Weitere Informationen zu anderen Kontingenten für X-Ray finden Sie im Abschnitt Service Quotas auf der Seite X-Ray-Endpunkte und -Kontingente.

Wichtig

Step Functions unterstützt keine X-Ray-Nachverfolgung für die untergeordneten Workflow-Ausführungen, die mit einem Distributed Map-Status gestartet wurden, da es einfach ist, die Größenbeschränkung für Trace-Dokumente für solche Ausführungen zu überschreiten.

Einrichtung und Konfiguration

Aktivieren der X-Ray-Nachverfolgung beim Erstellen eines Zustandsautomaten

Sie können die X-Ray-Ablaufverfolgung aktivieren, wenn Sie einen neuen Zustandsautomaten erstellen, indem Sie auf der Seite Details angeben die Option X-Ray-Ablaufverfolgung aktivieren auswählen.

  1. Öffnen Sie die Step-Functions-Konsole und wählen Sie Zustandsautomaten erstellen aus.

  2. Wählen Sie auf der Seite Erstellungsmethode auswählen eine geeignete Option zum Erstellen Ihres Zustandsautomaten aus. Wenn Sie Beispielprojekt ausführen wählen, können Sie die X-Ray-Ablaufverfolgung während der Erstellung des Zustandsautomaten nicht aktivieren, und Sie müssen die X-Ray-Ablaufverfolgung aktivieren, nachdem Ihr Zustandsautomat erstellt wurde. Weitere Informationen zum Aktivieren von X-Ray in einem vorhandenen Zustandsautomaten finden Sie unter Aktivieren von X-Ray in einem vorhandenen Zustandsautomaten.

    Wählen Sie Weiter aus.

  3. Konfigurieren Sie auf der Seite Details angeben Ihren Zustandsautomaten.

  4. Wählen Sie X-Ray-Nachverfolgung aktivieren aus.

    
              X-Ray-Aktivierung

    Ihr Step-Functions-Zustandsautomat sendet jetzt Ablaufverfolgungen für Zustandsautomatenausführungen an X-Ray.

    Anmerkung

    Wenn Sie eine vorhandene IAM-Rolle verwenden möchten, sollten Sie sicherstellen, dass X-Ray-Schreibvorgänge zulässig sind. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter IAM-Richtlinien für X-Ray .

Aktivieren von X-Ray in einem vorhandenen Zustandsautomaten

So aktivieren Sie X-Ray in einem vorhandenen Zustandsautomaten:

  1. Wählen Sie in der Step-Functions-Konsole den Zustandsautomaten aus, für den Sie die Ablaufverfolgung aktivieren möchten.

  2. Wählen Sie Bearbeiten aus.

  3. Wählen Sie X-Ray-Nachverfolgung aktivieren aus.

    
              X-Ray-Aktivierung

    Es wird eine Benachrichtigung angezeigt, in der Sie darüber informiert werden, dass Sie möglicherweise zusätzliche Änderungen vornehmen müssen.

    Anmerkung

    Wenn Sie X-Ray für einen vorhandenen Zustandsautomaten aktivieren, müssen Sie sicherstellen, dass Sie über eine IAM-Richtlinie verfügen, die X-Ray ausreichende Berechtigungen zum Ausführen von Ablaufverfolgungen gewährt. Sie können entweder manuell eine hinzufügen oder eine generieren. Weitere Informationen finden Sie im Abschnitt IAM-Richtlinie für IAM-Richtlinien für AWS X-Ray.

  4. (Optional) Generieren Sie automatisch eine neue Rolle für Ihren Zustandsautomaten, um X-Ray-Berechtigungen einzuschließen.

  5. Wählen Sie Speichern.

Konfigurieren der X-Ray-Ablaufverfolgung für Step Functions

Wenn Sie zum ersten Mal einen Zustandsautomaten mit aktivierter X-Ray-Nachverfolgung ausführen, werden die Standardkonfigurationswerte für X-Ray Tracing. AWS X-Ray does nicht für jede Anforderung erfasst, die an eine Anwendung gesendet wird. Stattdessen werden Daten für eine statistisch signifikante Anzahl von Anfragen erfasst. Standardmäßig werden die erste Anfrage pro Sekunde und fünf Prozent aller zusätzlichen Anfragen aufgezeichnet. Eine Anfrage pro Sekunde ist das Reservoir. Dadurch wird sichergestellt, dass jede Sekunde mindestens eine Ablaufverfolgung aufgezeichnet wird, solange der Dienst Anfragen verarbeitet. Fünf Prozent ist die Rate, mit der die über die Reservoirgröße hinausgehenden Anforderungen geprüft werden.

Um zu vermeiden, dass bei den ersten Schritten Servicegebühren anfallen, ist die Standard-Samplingrate konservativ. Sie können X-Ray so konfigurieren, dass die Standard-Samplingregel geändert und zusätzliche Regeln konfiguriert werden, die Sampling basierend auf den Eigenschaften des Services oder der Anforderung anwenden.

Sie können beispielsweise das Sampling deaktivieren und alle Anfragen für Anrufe verfolgen, die den Status ändern oder AWS-Konten - oder -Transaktionen verarbeiten. Bei schreibgeschützten Aufrufen mit hohem Volumen wie Hintergrundabfragen, Zustandsprüfungen oder Verbindungswartungen können Sie eine Stichprobe mit einer niedrigen Rate durchführen und dennoch genügend Daten abrufen, um auftretende Probleme zu beobachten.

So konfigurieren Sie eine Samplingregel für Ihren Zustandsautomaten:

  1. Gehen Sie zur X-Ray-Konsole .

  2. Wählen Sie Sampling aus.

  3. Um eine Regel zu erstellen, wählen Sie Create sampling rule (Samplingregel erstellen) aus.

    Um eine Regel zu bearbeiten, wählen Sie den Namen einer Regel aus.

    Um eine Regel zu löschen, wählen Sie eine Regel aus und verwenden das Menü Actions (Aktionen), um diese zu löschen.

Einige Teile vorhandener Samplingregeln, wie Name und Priorität, können nicht geändert werden. Fügen Sie stattdessen eine vorhandene Regel hinzu oder klonen Sie sie, nehmen Sie die gewünschten Änderungen vor und verwenden Sie dann die neue Regel.

Ausführliche Informationen zu X-Ray-Samplingregeln und zur Konfiguration der verschiedenen Parameter finden Sie unter Konfigurieren von Samplingregeln in der X-Ray-Konsole.

Integrieren von Upstream-Services

Um die Ausführung von Step-Functions-Workflows wie Express-, synchrone und Standard-Workflows in einen Upstream-Service zu integrieren, müssen Sie die festlegentraceHeader. Dies erfolgt automatisch für Sie, wenn Sie eine HTTP-API in API Gateway verwenden. Wenn Sie jedoch eine Lambda-Funktion und/oder ein -SDK verwenden, müssen Sie die traceHeader für die - StartExecution oder StartSyncExecution-API-Aufrufe selbst festlegen.

Sie müssen das traceHeader Format als angeben\p{ASCII}∗. Damit Step Functions dieselbe Ablaufverfolgungs-ID verwenden kann, müssen Sie das Format als angebenRoot={TRACE_ID};Sampled={1 or 0}. Wenn Sie eine Lambda-Funktion verwenden, ersetzen Sie durch TRACE_ID die Ablaufverfolgungs-ID in Ihrem aktuellen Segment und legen Sie das Feld Stichprobe so fest, als 1 ob Ihr Sampling-Modus wahr ist und 0 wenn Ihr Sampling-Modus falsch ist. Die Angabe der Ablaufverfolgungs-ID in diesem Format stellt sicher, dass Sie eine vollständige Ablaufverfolgung erhalten.

Im Folgenden finden Sie ein Beispiel, das in Python geschrieben wurde, um zu demonstrieren, wie die angegeben wirdtraceHeader.

state_machine = config.get_string_paramter("STATE_MACHINE_ARN") if (xray_recorder.current_subsegment() is not None and xray_recorder.current_subsegment().sampled) : trace_id = "Root={};Sampled=1".format( xray_recorder.current_subsegment().trace_id ) else: trace_id = "Root=not enabled;Sampled=0" LOGGER.info("trace %s", trace_id) # execute it response = states.start_sync_execution( stateMachineArn=state_machine, input=event['body'], name=context.aws_request_id, traceHeader=trace_id ) LOGGER.info(response)

Konzepte

Die X-Ray-Konsole

Mit der AWS X-Ray Konsole können Sie Service-Übersichten und Ablaufverfolgungen für Anforderungen anzeigen, die Ihre Anwendungen bedienen. Sie können auf die -Konsole zugreifen, um detaillierte Informationen anzuzeigen, die von X-Ray gesammelt werden, wenn es für Ihren Zustandsautomaten aktiviert ist.

Anzeigen der X-Ray-Konsole Informationen zum Zugriff auf die X-Ray-Konsole für Ihre Zustandsautomatenausführungen finden Sie unter .

Ausführliche Informationen zur X-Ray-Konsole finden Sie in der Dokumentation zur X-Ray-Konsole.

Segmente, Untersegmente und Ablaufverfolgungen

Ein Segment zeichnet Informationen zu einer Anforderung an Ihren Zustandsautomaten auf. Es enthält Informationen wie die Arbeit, die Ihr Zustandsautomat ausführt, und kann auch Untersegmente mit Informationen über nachgelagerte Aufrufe enthalten.

Ein Trace erfasst alle Segmente, die von einer einzelnen Anforderung generiert werden.

Sampling

Um eine effiziente Nachverfolgung zu gewährleisten und eine repräsentative Stichprobe der Anforderungen bereitzustellen, die Ihre Anwendung bedient, wendet X-Ray einen Sampling-Algorithmus an, um zu bestimmen, welche Anforderungen verfolgt werden. Dies kann durch Bearbeiten der Samplingregeln geändert werden.

Metriken

Für Ihren Zustandsautomaten misst X-Ray die Aufrufzeit, die Statusübergangszeit, die Gesamtausführungszeit von Step Functions und Abweichungen in dieser Ausführungszeit. Auf diese Informationen kann über die X-Ray-Konsole zugegriffen werden.

Analysen

Die AWS X-Ray Analytics-Konsole ist ein interaktives Tool zur Interpretation von Ablaufverfolgungsdaten. Sie können die aktiven Datasets mit zunehmend granularen Filtern anpassen, indem Sie auf die Diagramme und die Bereiche der Metriken und Felder klicken, die der aktuellen Ablaufverfolgungsreihe zugeordnet sind. Auf diese Weise können Sie analysieren, wie Ihr Zustandsautomat funktioniert, und Leistungsprobleme schnell finden und identifizieren.

Ausführliche Informationen zu X-Ray-Analysen finden Sie unter Interaktion mit der AWS X-Ray Analysekonsole.

Step-Functions-Serviceintegrationen und X-Ray

Einige der AWS Services, die in Step Functions integriert sind, bieten die Integration mit , AWS X-Ray indem sie Anfragen einen Nachverfolgungs-Header hinzufügen, den X-Ray-Daemon ausführen oder Sampling-Entscheidungen treffen und Ablaufverfolgungsdaten in X-Ray hochladen. Andere müssen mit dem AWS X-Ray SDK instrumentiert werden. Einige unterstützen noch keine X-Ray-Integration. Die X-Ray-Integration ist erforderlich, um vollständige Ablaufverfolgungsdaten bereitzustellen, wenn eine Serviceintegration mit Step Functions verwendet wird

Native X-Ray-Unterstützung

Zu den Serviceintegrationen mit nativer X-Ray-Unterstützung gehören:

Instrumentierung erforderlich

Serviceintegrationen, die eine X-Ray-Instrumentierung erfordern:

  • Amazon Elastic Container Service

  • AWS Batch

  • AWS Fargate

Nur clientseitige Ablaufverfolgung

Andere Service-Integrationen unterstützen keine X-Ray-Ablaufverfolgungen. Clientseitige Ablaufverfolgungen können jedoch weiterhin erfasst werden:

  • Amazon DynamoDB

  • Amazon EMR

  • Amazon SageMaker

  • AWS CodeBuild

  • AWS Glue

Anzeigen der X-Ray-Konsole

X-Ray empfängt Daten von -Services als Segmente. X-Ray gruppiert Segmente, die eine gemeinsame Anforderung haben, in Ablaufverfolgungen. X-Ray verarbeitet die Ablaufverfolgungen, um ein Servicediagramm zu generieren, das eine visuelle Darstellung Ihrer Anwendung bietet.

Nachdem Sie die Ausführung Ihres Zustandsautomaten gestartet haben, können Sie seine X-Ray-Ablaufverfolgungen anzeigen, indem Sie im Abschnitt Ausführungsdetails den Link X-Ray-Ablaufverfolgungszuordnung auswählen.


        X-Ray-Ablaufverfolgungen

Nachdem Sie X-Ray für Ihren Zustandsautomaten aktiviert haben, können Sie Ablaufverfolgungsinformationen für seine Ausführungen in der X-Ray-Konsole anzeigen.

Anzeigen von X-Ray-Ablaufverfolgungsinformationen für Step Functions

Die folgenden Schritte veranschaulichen, welche Art von Informationen Sie in der Konsole sehen können, nachdem Sie X-Ray aktiviert und eine Ausführung ausgeführt haben. X-Ray-Ablaufverfolgungen für das Beispiel für ein Rückrufmuster (Amazon SQS, Amazon SNS, Lambda) Beispielprojekt werden angezeigt.

Ablaufverfolgungen

Nachdem die Ausführung abgeschlossen ist, können Sie zur X-Ray-Konsole navigieren, auf der Sie die Seite X-Ray Traces sehen. Dadurch wird eine Übersicht über die Service-Übersicht sowie Ablaufverfolgungs- und Segmentinformationen für Ihren Zustandsautomaten angezeigt.


        X-Ray-Ablaufverfolgungen

Service-Übersicht

Die Service-Übersicht in der X-Ray-Konsole hilft Ihnen, Services zu identifizieren, bei denen Fehler auftreten, bei denen Verbindungen mit hoher Latenz bestehen oder Ablaufverfolgungen für Anfragen angezeigt werden, die nicht erfolgreich waren.


        X-Ray-Ablaufverfolgungen

In der Trace-Übersicht können Sie einen Serviceknoten auswählen, um Anforderungen für diesen Knoten anzuzeigen, oder eine Kante zwischen zwei Knoten, um Anforderungen anzuzeigen, die diese Verbindung zurückgelegt haben. Hier wurde der WaitForCallBack Knoten ausgewählt, und Sie können zusätzliche Informationen über seinen Ausführungs- und Antwortstatus anzeigen.


        X-Ray-Ablaufverfolgungen

Sie können sehen, wie die X-Ray-Servicekarte mit dem Zustandsautomaten korreliert. Es gibt einen Service-Map-Knoten für jede Service-Integration, die von Step Functions aufgerufen wird, sofern er X-Ray unterstützt.


        X-Ray-Ablaufverfolgungen

Segmente und Untersegmente

Ein Trace ist eine Sammlung von Segmenten, die von einer einzelnen Anforderung generiert werden. Jedes Segment stellt den Namen der Ressource, Details zur Anforderung und Details zu den ausgeführten Aufgaben bereit. Auf der Seite Ablaufverfolgungen können Sie die Segmente und, falls erweitert, die entsprechenden Untersegmente sehen. Sie können ein Segment oder Untersegment auswählen, um detaillierte Informationen darüber anzuzeigen.

Wählen Sie jede Registerkarte aus, um zu sehen, wie Informationen für Segmente und Untersegmente angezeigt werden.

Overview of Segments

Eine Übersicht über Segmente und Untersegmente für diesen Zustandsautomaten. Für jeden Knoten auf der Service-Übersicht gibt es ein anderes Segment.


              Segmente
View segment detail

Wenn Sie ein Segment auswählen, werden der Name der Ressource, Details zur Anforderung und Details zu den ausgeführten Aufgaben bereitgestellt.


              Segmentdetails
View subsegment detail

Ein Segment kann die Daten zu der geleisteten Arbeit in Untersegmente unterteilen. Durch die Auswahl eines Untersegments können Sie detailliertere Zeitinformationen und Details anzeigen. Ein Untersegment kann zusätzliche Details zu einem Aufruf an einen - AWS Service, eine externe HTTP-API oder eine SQL-Datenbank enthalten.


              Details zum Untersegment

Analysen

Die AWS X-Ray Analytics-Konsole ist ein interaktives Tool zur Interpretation von Ablaufverfolgungsdaten. Sie können dies verwenden, um leichter zu verstehen, wie Ihr Zustandsautomat funktioniert. Die Konsole ermöglicht Ihnen das Erkunden, Analysieren und Visualisieren von Ablaufverfolgungen durch interaktive Reaktionszeit und Zeitreihen-Diagramme. Auf diese Weise können Sie Leistungs- und Latenzprobleme schnell finden.

Sie können die aktiven Datasets mit zunehmend granularen Filtern anpassen, indem Sie auf die Diagramme und die Bereiche der Metriken und Felder klicken, die der aktuellen Ablaufverfolgungsreihe zugeordnet sind.


        Analysen

Konfiguration

Sie können Sampling- und Verschlüsselungsoptionen über die X-Ray-Konsole konfigurieren.

Sampling

Wählen Sie Sampling, um Details zur Abtastrate und Konfiguration anzuzeigen. Sie können die Samplingregeln ändern, um die Menge der von Ihnen aufgezeichneten Daten zu steuern, und das Sampling-Verhalten an Ihre spezifischen Anforderungen anpassen.


              Sampling
Encryption

Wählen Sie Verschlüsselung, um die Verschlüsselungseinstellungen zu ändern. Sie können die Standardeinstellung verwenden, bei der X-Ray Ablaufverfolgungen und das Datum im Ruhezustand verschlüsselt, oder bei Bedarf einen Kundenmasterschlüssel auswählen. Im letzteren Fall fallen AWS KMS Standardgebühren an.


              Verschlüsselungseinstellungen

Was ist, wenn die Ablaufverfolgungs- oder Service-Übersicht keine Daten enthält?

Wenn Sie X-Ray aktiviert haben, aber keine Daten in der X-Ray-Konsole sehen können, überprüfen Sie Folgendes:

  • Ihre IAM-Rollen sind korrekt eingerichtet, um das Schreiben in X-Ray zu ermöglichen.

  • Samplingregeln ermöglichen das Sampling von Daten.

  • Da es zu einer kurzen Verzögerung kommen kann, bevor neu erstellte oder geänderte IAM-Rollen angewendet werden, überprüfen Sie die Ablaufverfolgung oder Service-Übersichten nach einigen Minuten erneut.

  • Wenn im Bereich X-Ray Traces Daten nicht gefunden angezeigt werden, überprüfen Sie Ihre IAM-Kontoeinstellungen und stellen Sie sicher, dass für die gewünschte Region aktiviert AWS Security Token Service ist. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von AWS STS in einer AWS-Region im IAM-Benutzerhandbuch.