Trace Step Functions fordern Daten an AWS X-Ray - 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.

Trace Step Functions fordern Daten an AWS X-Ray

Sie können AWS X-Raydamit die Komponenten Ihrer Zustandsmaschine visualisieren, Leistungsengpässe identifizieren und Anfragen, die zu einem Fehler geführt haben, beheben. Ihr State Machine sendet Trace-Daten an X-Ray, und X-Ray verarbeitet die Daten, um eine Service-Map und durchsuchbare Trace-Zusammenfassungen zu erstellen.

Wenn X-Ray für Ihren State Machine aktiviert ist, können Sie Anfragen verfolgen, während sie in Step Functions ausgeführt werden, und zwar in allen AWS Regionen, in denen X-Ray verfügbar ist. Auf diese Weise erhalten Sie einen detaillierten Überblick über eine gesamte Step Functions Functions-Anfrage. Step Functions sendet Traces zur Ausführung von State Machines an X-Ray, auch wenn keine Trace-ID von einem Upstream-Dienst übergeben wird. Sie können eine X-Ray-Servicekarte verwenden, um die Latenz einer Anfrage anzuzeigen, einschließlich aller AWS Dienste, die in X-Ray integriert sind. Sie können auch Sampling-Regeln konfigurieren, um X-Ray gemäß den von Ihnen angegebenen Kriterien mitzuteilen, welche Anfragen aufgezeichnet werden sollen und mit welchen Abtastraten.

Wenn X-Ray für Ihre Zustandsmaschine nicht aktiviert ist und ein Upstream-Dienst keine Trace-ID weitergibt, sendet Step Functions keine Traces zur Ausführung von Zustandsmaschinen an X-Ray. Wenn jedoch eine Trace-ID von einem Upstream-Dienst übergeben wird, sendet Step Functions dann Traces an X-Ray zur Ausführung von Zustandsmaschinen.

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

Kombinierte Quoten für X-Ray- und Step Functions

Sie können einem Trace Daten für bis zu sieben Tage hinzufügen und Trace-Daten abfragen, die dreißig Tage zurückreichen, also den Zeitraum, in dem X-Ray Trace-Daten speichert. Ihre Spuren unterliegen den X-Ray-Kontingenten. Zusätzlich zu anderen Kontingenten bietet X-Ray eine garantierte Mindest-Trace-Größe von 100 KB für Step Functions Functions-Zustandsmaschinen. Wenn mehr als 100 KB an Trace-Daten für X-Ray bereitgestellt werden, kann dies zu einer eingefrorenen Spur führen. Weitere Informationen zu anderen Kontingenten für X-Ray finden Sie im Abschnitt Servicequotas auf der Seite X-Ray-Endpunkte und Kontingente.

Wichtig

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

Einrichtung und Konfiguration

X-Ray-Tracing beim Erstellen einer Zustandsmaschine aktivieren

Sie können die Röntgenverfolgung aktivieren, wenn Sie eine neue Zustandsmaschine erstellen, indem Sie auf der Seite Details angeben die Option X-Ray-Tracing aktivieren auswählen.

  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie Create State Machine.

  2. Wählen Sie auf der Seite „Erstellungsmethode auswählen“ eine geeignete Option aus, um Ihre Zustandsmaschine zu erstellen. Wenn Sie Beispielprojekt ausführen wählen, können Sie die Röntgenverfolgung während der Erstellung der Zustandsmaschine nicht aktivieren. Sie müssen die Röntgenverfolgung aktivieren, nachdem Ihre Zustandsmaschine erstellt wurde. Weitere Hinweise zur Aktivierung von X-Ray in einer vorhandenen Zustandsmaschine finden Sie unterX-Ray in einer vorhandenen Zustandsmaschine aktivieren.

    Wählen Sie Weiter.

  3. Konfigurieren Sie auf der Seite „Details angeben“ Ihren Zustandsmaschine.

  4. Wählen Sie X-Ray Tracing aktivieren.

    Ihre Step Functions Functions-Zustandsmaschine sendet nun Traces zur Ausführung von Zustandsmaschinen an X-Ray.

    Anmerkung

    Wenn Sie sich dafür entscheiden, eine bestehende IAM Rolle zu verwenden, sollten Sie sicherstellen, dass X-Ray-Schreibvorgänge zulässig sind. Weitere Informationen zu den Berechtigungen, die Sie benötigen, finden Sie unter IAMRichtlinien für X-Ray.

X-Ray in einer vorhandenen Zustandsmaschine aktivieren

Um X-Ray in einer vorhandenen Zustandsmaschine zu aktivieren:

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

  2. Wählen Sie Edit (Bearbeiten) aus.

  3. Wählen Sie X-Ray Tracing aktivieren.

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

    Anmerkung

    Wenn Sie X-Ray für eine bestehende Zustandsmaschine aktivieren, müssen Sie sicherstellen, dass Sie über eine IAM Richtlinie verfügen, die X-Ray ausreichende Berechtigungen zur Durchführung von Traces gewährt. Sie können entweder manuell eine hinzufügen oder eine generieren. Weitere Informationen finden Sie im IAM Richtlinienabschnitt fürIAMRichtlinien für AWS X-Ray Aufrufe in Step Functions.

  4. (Optional) Generieren Sie automatisch eine neue Rolle für Ihre Zustandsmaschine, die X-Ray-Berechtigungen enthält.

  5. Wählen Sie Save (Speichern) aus.

X-Ray Tracing für Step Functions konfigurieren

Wenn Sie einen State Machine mit aktiviertem X-Ray Tracing zum ersten Mal ausführen, verwendet er die Standardkonfigurationswerte für X-Ray Tracing. AWS X-Ray sammelt nicht Daten für jede Anfrage, die an eine Anwendung gesendet wird. Stattdessen sammelt es Daten für eine statistisch signifikante Anzahl von Anfragen. Standardmäßig werden die erste Anfrage jede Sekunde und fünf Prozent aller weiteren 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 standardmäßige Stichprobenregel geändert und zusätzliche Regeln konfiguriert werden, die das Sampling auf der Grundlage der Eigenschaften des Dienstes oder der Anfrage anwenden.

Möglicherweise möchten Sie das Sampling deaktivieren und alle Anfragen für Aufrufe verfolgen, die den Status oder die Bearbeitung AWS-Konten von Transaktionen ändern. Bei Anrufen mit hohem Volumen, die nur lesbar sind, wie z. B. Hintergrundabfragen, Integritätsprüfungen oder Verbindungswartung, können Sie Samplingraten verwenden und trotzdem genügend Daten abrufen, um auftretende Probleme zu beobachten.

So konfigurieren Sie eine Stichprobenregel für Ihren State Machine:

  1. Gehe 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 der bestehenden Sampling-Regeln, wie Name und Priorität, können nicht geändert werden. Fügen Sie stattdessen eine bestehende Regel hinzu oder klonen Sie sie, nehmen Sie die gewünschten Änderungen vor und verwenden Sie dann die neue Regel.

Ausführliche Informationen zu den Regeln für die Röntgenabtastung und zur Konfiguration der verschiedenen Parameter finden Sie unter Konfiguration von Probenahmeregeln in der X-Ray-Konsole.

Integrieren Sie vorgelagerte Dienste

Um die Ausführung von Step Functions Functions-Workflows wie Express-, Synchronous- und Standard-Workflows in einen Upstream-Service zu integrieren, müssen Sie den traceHeader einrichten. Dies wird automatisch für Sie erledigt, wenn Sie ein HTTP API integriertes API Gateway verwenden. Wenn Sie jedoch eine Lambda-Funktion und/oder eine verwendenSDK, müssen Sie die traceHeader StartSyncExecutionAPIOn-der-Aufrufe selbst festlegen. StartExecution

Sie müssen das traceHeader Format als \p{ASCII}∗ angeben. Damit Step Functions dieselbe Trace-ID verwenden kann, müssen Sie außerdem das Format als angebenRoot={TRACE_ID};Sampled={1 or 0}. Wenn Sie eine Lambda-Funktion verwenden, ersetzen Sie die durch die TRACE_ID Trace-ID in Ihrem aktuellen Segment und legen Sie das Feld Sampled so fest, als 1 ob Ihr Sampling-Modus wahr und Ihr Sampling-Modus falsch 0 wäre. Wenn Sie die Trace-ID in diesem Format angeben, wird sichergestellt, dass Sie eine vollständige Ablaufverfolgung erhalten.

Das Folgende ist ein in Python geschriebenes Beispiel, um zu zeigen, wie man die spezifizierttraceHeader.

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

In der AWS X-Ray Konsole können Sie Service-Maps und Traces für Anfragen anzeigen, die Ihre Anwendungen bearbeiten. Sie können auf die Konsole zugreifen, um detaillierte Informationen anzuzeigen, die von X-Ray gesammelt wurden, wenn es für Ihren State Machine aktiviert ist.

Informationen Ansicht der X-Ray-Konsole zum Zugriff auf die X-Ray-Konsole für Ihre State-Machine-Ausführungen finden Sie unter.

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

Segmente, Untersegmente und Spuren

Ein Segment zeichnet Informationen über eine Anfrage an Ihren State Machine auf. Es enthält Informationen wie die Arbeit, die Ihr State Machine ausführt, und kann auch Untersegmente mit Informationen zu Downstream-Aufrufen enthalten.

Ein Trace sammelt alle Segmente, die durch eine einzelne Anfrage generiert wurden.

Sampling

Um ein effizientes Tracing zu gewährleisten und eine repräsentative Stichprobe der Anfragen bereitzustellen, die Ihre Anwendung bearbeitet, wendet X-Ray einen Sampling-Algorithmus an, um zu bestimmen, welche Anfragen nachverfolgt werden. Dies kann durch Bearbeiten der Stichprobenregeln geändert werden.

Metriken

Für Ihre Zustandsmaschine misst X-Ray die Aufrufzeit, die Zustandsü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 Trace-Daten. 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 die Leistung Ihres State Machine analysieren und Leistungsprobleme schnell lokalisieren und identifizieren.

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

Step Functions Serviceintegrationen und X-Ray

Einige der AWS Dienste, die in Step Functions integriert sind, ermöglichen die Integration, AWS X-Ray indem sie Anfragen einen Tracing-Header hinzufügen, den X-Ray-Daemon ausführen oder Sampling-Entscheidungen treffen und Trace-Daten auf X-Ray hochladen. Andere müssen mit dem instrumentiert werden. AWS X-Ray SDK Einige unterstützen die X-Ray-Integration noch nicht. Bei Verwendung einer Serviceintegration mit Step Functions ist eine X-Ray-Integration erforderlich, um vollständige Trace-Daten bereitzustellen

Native X-Ray-Unterstützung

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

Instrumentierung erforderlich

Serviceintegrationen, für die Röntgeninstrumente erforderlich sind:

  • Amazon Elastic Container Service

  • AWS Batch

  • AWS Fargate

Nur clientseitige Ablaufverfolgung

Andere Serviceintegrationen unterstützen keine X-Ray-Traces. Client-seitige Traces können jedoch weiterhin erfasst werden:

  • Amazon-DynamoDB

  • Amazon EMR

  • Amazon SageMaker

  • AWS CodeBuild

  • AWS Glue

Ansicht der X-Ray-Konsole

X-Ray empfängt Daten von Diensten als Segmente. X-Ray gruppiert Segmente, die eine gemeinsame Anforderung haben, in Traces. X-Ray verarbeitet die Traces, um ein Service-Diagramm zu erstellen, das eine visuelle Darstellung Ihrer Anwendung bietet.

Nachdem Sie die Ausführung Ihrer Zustandsmaschine gestartet haben, können Sie deren X-Ray-Traces anzeigen, indem Sie im Abschnitt Ausführungsdetails auf den Link X-Ray-Trace-Map klicken.

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

Röntgenverfolgungsinformationen für Step Functions anzeigen

Die folgenden Schritte veranschaulichen, welche Informationen Sie in der Konsole sehen können, nachdem Sie X-Ray aktiviert und eine Ausführung ausgeführt haben. Röntgenspuren für das Erstellen Sie ein Beispiel für ein Callback-Muster mit Amazon SQSSNS, Amazon und Lambda Beispielprojekt werden angezeigt.

Ablaufverfolgungen

Nachdem die Ausführung abgeschlossen ist, können Sie zur X-Ray-Konsole navigieren, wo Sie die Seite X-Ray Traces sehen. Auf dieser Seite werden eine Übersicht über die Service-Map sowie Trace- und Segmentinformationen für Ihren State Machine angezeigt.

Illustrativer Screenshot von Röntgenspuren für eine Zustandsmaschine.

Service-Übersicht

Die Service-Map in der X-Ray-Konsole hilft Ihnen dabei, Dienste zu identifizieren, bei denen Fehler auftreten, bei denen Verbindungen mit hoher Latenz bestehen, oder Traces für Anfragen zu sehen, die nicht erfolgreich waren.

Illustrativer Screenshot, der sich auf die Servicekarte in X-Ray Traces konzentriert.

Auf der Trace-Map können Sie einen Dienstknoten auswählen, um Anfragen für diesen Knoten anzuzeigen, oder eine Kante zwischen zwei Knoten, um Anfragen anzuzeigen, die diese Verbindung zurückgelegt haben. Hier wurde der WaitForCallBack Knoten ausgewählt, und Sie können zusätzliche Informationen zu seinem Ausführungs- und Antwortstatus anzeigen.

Beispieldetails für einen X-Ray-Trace-Knoten.

Sie können sehen, wie die X-Ray-Servicekarte mit der State Machine korreliert. Für jede Serviceintegration, die von Step Functions aufgerufen wird, gibt es einen Service Map-Knoten, sofern sie X-Ray unterstützt.

Grafische Beispieldarstellung der Zustandsmaschine, die verfolgt wird.

Segmente und Untersegmente

Ein Trace ist eine Sammlung von Segmenten, die durch eine einzelne Anfrage generiert werden. Jedes Segment enthält den Namen der Ressource, Details zur Anfrage und Details zur geleisteten Arbeit. Auf der Seite Traces können Sie die Segmente und, falls sie erweitert sind, die entsprechenden Untersegmente sehen. Sie können ein Segment oder Untersegment auswählen, um detaillierte Informationen dazu anzuzeigen.

Sie werden für jeden Knoten auf der Service-Map ein anderes Segment sein.

Beispiel-Screenshot von Segmenten und Untersegmenten für eine State Machine.

Wenn Sie ein Segment auswählen, erhalten Sie den Namen der Ressource, Details zur Anfrage und Details zur geleisteten Arbeit.

Ein Segment kann die Daten zu der geleisteten Arbeit in Untersegmente unterteilen. Wenn Sie ein Untersegment auswählen, werden detaillierte Zeitinformationen und Details angezeigt. Ein Untersegment kann zusätzliche Details zu einem Aufruf eines AWS Dienstes, eines externen Dienstes oder einer Datenbank HTTP API enthalten. SQL

Analysen

Die AWS X-Ray Analytics-Konsole ist ein interaktives Tool zur Interpretation von Trace-Daten. Sie können dies verwenden, um leichter zu verstehen, wie Ihre Zustandsmaschine abschneidet. Die Konsole ermöglicht Ihnen das Erkunden, Analysieren und Visualisieren von Ablaufverfolgungen durch interaktive Reaktionszeit und Zeitreihen-Diagramme. Dies kann Ihnen helfen, Leistungs- und Latenzprobleme schnell zu lokalisieren.

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.

Konfiguration

Sie können Sampling- und Verschlüsselungsoptionen von der X-Ray-Konsole aus konfigurieren.

  • Wählen Sie Sampling, um Details zur Sampling-Rate und Konfiguration anzuzeigen.

    Sie können die Stichprobenregeln ändern, um die Menge der aufzuzeichnenden Daten zu kontrollieren, und das Sampling-Verhalten an Ihre spezifischen Anforderungen anpassen.

  • Wählen Sie Verschlüsselung, um die Verschlüsselungseinstellungen zu ändern.

    Sie können die Standardeinstellung verwenden, bei der X-Ray Traces und Speicherdaten verschlüsselt, oder Sie können bei Bedarf einen KMS Schlüssel auswählen. Im letzteren Fall AWS KMSfallen Standardgebühren an.

Was ist, wenn die Trace Map oder Service Map 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.

  • Stichprobenregeln ermöglichen die Stichprobenerhebung von Daten.

  • Da es eine kurze Verzögerung geben kann, bis neu erstellte oder geänderte IAM Rollen angewendet werden, sollten Sie die Trace- oder Servicezuordnungen nach einigen Minuten erneut überprüfen.

  • Wenn im Bereich X-Ray Traces die Option Daten nicht gefunden angezeigt wird, überprüfen Sie Ihre IAMKontoeinstellungen und stellen Sie sicher, dass diese Option für die gewünschte Region aktiviert AWS Security Token Service ist. Weitere Informationen finden Sie unter Aktivierung und Deaktivierung AWS STSAWS-Region im IAM Benutzerhandbuch.