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 in AWS X-Ray
Sie können verwenden AWS X-Rayum die Komponenten Ihrer Zustandsmaschine zu visualisieren, Leistungsengpässe zu identifizieren und Anfragen zu beheben, die zu einem Fehler geführt haben. 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 Ihre Zustandsmaschine aktiviert ist, können Sie Anfragen verfolgen, während sie in Step Functions ausgeführt werden, in allen AWS Regionen, in denen X-Ray verfügbar ist. Dadurch 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 Folgendes verwenden … AWS X-Ray mit Step Functions in Regionen, 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 Servicekontingente 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.
Themen
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.
-
Öffnen Sie die Step Functions Functions-Konsole
und wählen Sie Create State Machine. -
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.
-
Konfigurieren Sie auf der Seite „Details angeben“ Ihren Zustandsmaschine.
-
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 im folgenden Thema.
IAMRichtlinien verwenden AWS X-Ray In-Step-Funktionen
Um die Röntgenverfolgung zu aktivieren, benötigen Sie eine IAM Richtlinie mit geeigneten Berechtigungen, um die Ablaufverfolgung zu ermöglichen. Wenn Ihr Zustandsmaschine andere integrierte Dienste verwendet, benötigen Sie möglicherweise zusätzliche IAM Richtlinien. Sehen Sie sich die IAM Richtlinien für Ihre spezifischen Serviceintegrationen an.
Wenn Sie X-Ray Tracing für einen vorhandenen State Machine aktivieren, müssen Sie sicherstellen, dass Sie eine Richtlinie mit ausreichenden Berechtigungen hinzufügen, um X-Ray Traces zu aktivieren.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"xray:PutTraceSegments",
"xray:PutTelemetryRecords",
"xray:GetSamplingRules",
"xray:GetSamplingTargets"
],
"Resource": [
"*"
]
}
]
}
X-Ray in einer vorhandenen Zustandsmaschine aktivieren
Um X-Ray in einer vorhandenen Zustandsmaschine zu aktivieren:
-
Wählen Sie in der Step Functions Functions-Konsole
den Zustandsmaschine aus, für den Sie die Ablaufverfolgung aktivieren möchten. -
Wählen Sie Edit (Bearbeiten) aus.
-
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 verwenden AWS X-Ray In-Step-Funktionen.
-
(Optional) Generieren Sie automatisch eine neue Rolle für Ihre Zustandsmaschine, die X-Ray-Berechtigungen enthält.
-
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 ändern AWS-Konten oder Transaktionen. Bei Anrufen mit hohem Volumen, die nur lesbar sind, wie z. B. Hintergrundabfragen, Zustandsprüfungen oder Verbindungswartung, können Sie mit einer niedrigen Rate abfragen und trotzdem genügend Daten abrufen, um auftretende Probleme zu beobachten.
So konfigurieren Sie eine Stichprobenregel für Ihren State Machine:
-
Gehe zur X-Ray-Konsole
. -
Wählen Sie Sampling aus.
-
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 der Name und die 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
StartSyncExecution
APIOn-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
Im AWS X-Ray In der Konsole können Sie Service-Maps und Traces für Anfragen anzeigen, die Ihre Anwendungen bearbeiten, wenn X-Ray für Ihre Zustandsmaschine 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
Das Tool AWS X-Ray Die 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. Sie können die Leistung Ihres State Machine analysieren, um Leistungsprobleme zu lokalisieren und zu identifizieren.
Ausführliche Informationen zur Röntgenanalytik finden Sie unter Interaktion mit dem AWS X-Ray Analytics-Konsole
Step Functions Serviceintegrationen und X-Ray
Einige der AWS Dienste, die in Step Functions integriert sind, bieten Integration mit AWS X-Ray indem Sie Anfragen einen Tracing-Header hinzufügen, den X-Ray-Daemon ausführen oder Stichprobenentscheidungen 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:
-
AWS Step Functions
Instrumentierung erforderlich
Serviceintegrationen, die Röntgeninstrumente erfordern:
-
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.
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.
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.
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.
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.
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 Anruf bei einem enthalten AWS Dienst, eine externe HTTP API Datenbank oder eine SQL Datenbank.
Analysen
Das Tool AWS X-Ray Die Analytics-Konsole ist ein interaktives Tool zur Interpretation von Trace-Daten. Sie können dies verwenden, um leichter zu verstehen, wie Ihre Zustandsmaschine funktioniert. Mithilfe interaktiver Reaktionszeit- und Zeitreihendiagramme können Sie Traces untersuchen, analysieren und visualisieren, um Leistungs- und Latenzprobleme 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 Spuren und ruhende Daten verschlüsselt, oder Sie können bei Bedarf einen KMS Schlüssel auswählen. Standard-AWS KMSIm letzteren Fall fallen Gebü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 zu einer kurzen Verzögerung kommen 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 AWS Security Token Service ist für die gewünschte Region aktiviert. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren AWS STS in einem AWS-Region im IAM-Benutzerhandbuch.