View a markdown version of this page

Dati della richiesta Trace Step Functions in AWS X-Ray - AWS Step Functions

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Dati della richiesta Trace Step Functions in AWS X-Ray

È possibile utilizzarlo AWS X-Rayper visualizzare i componenti della macchina a stati, identificare i punti deboli nelle prestazioni e risolvere le richieste che hanno provocato un errore. La macchina a stati invia i dati di traccia e li X-Ray elabora per X-Ray generare una mappa dei servizi e riepiloghi delle tracce ricercabili.

X-Ray Se abilitato per la tua macchina a stati, puoi tracciare le richieste man mano che vengono eseguite in Step Functions, in tutte le AWS regioni in cui X-Ray è disponibile. Questo offre una panoramica dettagliata di un'intera richiesta Step Functions. Step Functions invierà tracce X-Ray per l'esecuzione di macchine a stati, anche quando un ID di traccia non viene passato da un servizio upstream. È possibile utilizzare una mappa dei X-Ray servizi per visualizzare la latenza di una richiesta, inclusi tutti AWS i servizi integrati con. X-Ray È inoltre possibile configurare le regole di campionamento per indicare X-Ray quali richieste registrare e a quali frequenze di campionamento, in base ai criteri specificati.

Se non X-Ray è abilitato per la tua macchina a stati e un servizio upstream non trasmette un ID di traccia, Step Functions non invierà tracce a X-Ray per le esecuzioni di macchine a stati. Tuttavia, se un trace ID viene passato da un servizio upstream, Step Functions invierà quindi tracce a X-Ray per l'esecuzione di macchine a stati.

È possibile utilizzare AWS X-Ray con Step Functions nelle regioni in cui entrambi sono supportati. Consulta le pagine Step Functions e gli X-Rayendpoint e le quote per informazioni sul supporto regionale per X-Ray e Step Functions.

X-Ray e quote combinate Step Functions

È possibile aggiungere dati a una traccia per un massimo di sette giorni e interrogare i dati di traccia risalenti a trenta giorni, il periodo di tempo in cui vengono X-Ray archiviati i dati di traccia. Le tue tracce saranno soggette a X-Ray quote. Oltre ad altre quote, X-Ray fornisce una dimensione di traccia minima garantita di 100 KB per le macchine a stati Step Functions. Se vengono forniti più di 100 KB di dati di traccia X-Ray, è possibile che la traccia venga congelata. Per ulteriori informazioni su altre quote per, consulta la sezione Service Quotas della pagina X-Ray Endpoint and Quotas. X-Ray

Importante

Step Functions non supporta il X-Ray tracciamento per le esecuzioni di workflow secondarie avviate da uno stato di Distributed Map perché è facile superare il limite di dimensione del documento Trace per tali esecuzioni.

Installazione e configurazione

Abilita il X-Ray tracciamento durante la creazione di una macchina a stati

È possibile abilitare il X-Ray tracciamento durante la creazione di una nuova macchina a stati selezionando Abilita il X-Ray tracciamento nella pagina Specificare i dettagli.

  1. Apri la console Step Functions e scegli Crea macchina a stati.

  2. Nella pagina Scegli il metodo di creazione, scegli l'opzione appropriata per creare la tua macchina a stati. Se si sceglie Esegui un progetto di esempio, non è possibile abilitare il X-Ray tracciamento durante la creazione della macchina a stati e sarà necessario abilitare il X-Ray tracciamento dopo la creazione della macchina a stati. Per ulteriori informazioni sull'attivazione X-Ray in una macchina a stati esistente, vedere. Abilita X-Ray in una macchina a stati esistente

    Scegli Next (Successivo).

  3. Nella pagina Specificare i dettagli, configura la tua macchina a stati.

  4. Scegli Abilita X-Ray tracciamento.

    La macchina a stati Step Functions ora invierà tracce X-Ray per le esecuzioni delle macchine a stati.

    Nota

    Se scegli di utilizzare un ruolo IAM esistente, devi assicurarti che le X-Ray scritture siano consentite. Per ulteriori informazioni sulle autorizzazioni necessarie, consulta il seguente argomento.

Politiche IAM che utilizzano AWS X-Ray in Step Functions

Per abilitare il X-Ray tracciamento, avrai bisogno di una policy IAM con autorizzazioni adeguate per consentire la traccia. Se la tua macchina a stati utilizza altri servizi integrati, potresti aver bisogno di politiche IAM aggiuntive. Consulta le politiche IAM per le integrazioni di servizi specifiche.

Se abiliti il X-Ray tracciamento per una macchina a stati esistente, devi assicurarti di aggiungere una policy con autorizzazioni sufficienti per abilitare le tracce. X-Ray

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] } ] }

Abilita X-Ray in una macchina a stati esistente

Per abilitare X-Ray in una macchina a stati esistente:

  1. Nella console Step Functions, seleziona la macchina a stati per la quale desideri abilitare il tracciamento.

  2. Scegli Modifica.

  3. Scegliete Abilita X-Ray tracciamento.

    Riceverai una notifica che ti informa che potresti dover apportare ulteriori modifiche.

    Nota

    Quando X-Ray abiliti una macchina a stati esistente, devi assicurarti di disporre di una policy IAM che conceda autorizzazioni sufficienti per X-Ray eseguire le tracce. Puoi aggiungerne una manualmente o generarne una. Per ulteriori informazioni, consulta la sezione sulla politica IAM perPolitiche IAM che utilizzano AWS X-Ray in Step Functions.

  4. (Facoltativo) Auto-generate un nuovo ruolo per la tua macchina a stati che includa X-Ray le autorizzazioni.

  5. Scegli Save (Salva).

Configurare il X-Ray tracciamento per Step Functions

Quando esegui per la prima volta una macchina a stati con il X-Ray tracciamento abilitato, utilizzerà i valori di configurazione predefiniti per X-Ray la traccia. AWS X-Ray non raccoglie dati per ogni richiesta inviata a un'applicazione. Raccoglie invece dati per un numero statisticamente significativo di richieste. L'impostazione predefinita prevede la registrazione della prima richiesta ogni secondo e del cinque percento di eventuali richieste aggiuntive. Una richiesta al secondo è la riserva. In questo modo viene registrata almeno una traccia al secondo, purché il servizio soddisfi le richieste. Cinque percento è la percentuale di richieste aggiuntive oltre la dimensione della riserva che vengono campionate.

Per evitare di incorrere in costi del servizio durante l'acquisizione delle nozioni di base, il tasso di campionamento di default è conservativo. È possibile configurare X-Ray per modificare la regola di campionamento predefinita e configurare regole aggiuntive che applicano il campionamento in base alle proprietà del servizio o della richiesta.

Ad esempio, potresti voler disabilitare il campionamento e tracciare tutte le richieste di chiamate che modificano lo stato o la gestione Account AWS delle transazioni. Per le chiamate di sola lettura ad alto volume, come il polling in background, i controlli di integrità o la manutenzione della connessione, è possibile campionare a una frequenza bassa e ottenere comunque dati sufficienti per osservare i problemi che si verificano.

Per configurare una regola di campionamento per la tua macchina a stati:

  1. Accedere alla console X-Ray .

  2. Scegli Campionamento.

  3. Per creare una regola, scegliere Create sampling rule (Crea regola di campionamento).

    Per modificare una regola, scegliere il nome di una regola.

    Per eliminare una regola, sceglierne una e utilizzare il menu Actions (Operazioni) per eliminarla.

Alcune parti delle regole di campionamento esistenti, come il nome e la priorità, non possono essere modificate. Invece, aggiungi o clona una regola esistente, apporta le modifiche desiderate, quindi usa la nuova regola.

Per informazioni dettagliate sulle regole di X-Ray campionamento e su come configurare i vari parametri, consulta Configurazione delle regole di campionamento nella console. X-Ray

Integra i servizi upstream

Per integrare l'esecuzione dei flussi di lavoro Step Functions, come i flussi di lavoro Express, Synchronous e Standard, con un servizio upstream è necessario impostare il. traceHeader Questa operazione viene eseguita automaticamente se si utilizza un'API HTTP in API Gateway. Tuttavia, se utilizzi una funzione Lambda ( and/or un SDK), devi impostare tu stesso le chiamate traceHeader on the StartExecutiono StartSyncExecutionAPI.

È necessario specificare il traceHeader formato come. \p{ASCII}∗ Inoltre, per consentire a Step Functions di utilizzare lo stesso ID di traccia, è necessario specificare il formato diRoot={TRACE_ID};Sampled={1 or 0}. Se utilizzi una funzione Lambda, sostituisci l'TRACE_IDID di traccia nel segmento corrente e imposta il campo Sampled come 1 se la modalità di campionamento fosse vera e 0 se la modalità di campionamento fosse falsa. Fornendo l'ID di traccia in questo formato, otterrai una traccia completa.

Di seguito è riportato un esempio scritto in Python per mostrare come specificare il. traceHeader

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)
X-Ray traccia nell'intestazione o nel payload

Per X-Ray le tracce, tutti i AWS servizi utilizzano l'X-Amzn-Trace-Idintestazione della richiesta HTTP. L'uso dell'intestazione è il meccanismo preferito per identificare una traccia. StartExecutione le operazioni StartSyncExecution API possono essere utilizzate anche traceHeader dal corpo del payload della richiesta. Se vengono fornite entrambe le fonti, Step Functions utilizzerà il valore dell'intestazione (preferito) rispetto al valore nel corpo della richiesta.

Concetti

La console X-Ray

Nella AWS X-Ray console, è possibile visualizzare le mappe e le tracce dei servizi per le richieste inviate dalle applicazioni quando X-Ray è abilitata per la macchina a stati.

Vedi Visualizzazione della X-Ray console per informazioni su come accedere alla X-Ray console per le esecuzioni delle tue macchine a stati.

Per informazioni dettagliate sulla X-Ray console, consulta la documentazione della X-Ray console.

Segmenti, sottosegmenti e tracce

Un segmento registra le informazioni relative a una richiesta inviata alla macchina a stati. Contiene informazioni come il lavoro svolto dalla macchina a stati e può contenere anche sottosegmenti con informazioni sulle chiamate downstream.

Una traccia raccoglie tutti i segmenti generati da una singola richiesta.

Campionamento

Per garantire un tracciamento efficiente e fornire un campione rappresentativo delle richieste servite dall'applicazione, X-Ray applica un algoritmo di campionamento per determinare quali richieste vengono tracciate. Questo può essere modificato modificando le regole di campionamento.

Metriche

Per la tua macchina a stati, X-Ray misurerà il tempo di invocazione, il tempo di transizione dello stato, il tempo di esecuzione complessivo di Step Functions e le variazioni in questo tempo di esecuzione. È possibile accedere a queste informazioni tramite la console. X-Ray

Analisi

La console AWS X-Ray Analytics è uno strumento interattivo per l'interpretazione dei dati di traccia. È possibile definire il set di dati attivo con filtri sempre più granulari facendo clic sui grafici e i pannelli di parametri e campi associati con il set di tracciamenti corrente. È possibile analizzare le prestazioni della macchina a stati per individuare e identificare i problemi di prestazioni.

Per informazioni dettagliate sull' X-Ray analisi, consulta Interagire con la console AWS X-Ray Analytics

Integrazioni dei servizi Step Functions e X-Ray

Alcuni dei AWS servizi che si integrano con Step Functions forniscono l'integrazione AWS X-Ray aggiungendo un'intestazione di tracciamento alle richieste, eseguendo il X-Ray demone o prendendo decisioni di campionamento e caricando i dati di traccia su. X-Ray Altri devono essere strumentati utilizzando l'SDK. AWS X-Ray Alcuni non supportano X-Ray ancora l'integrazione. X-Ray l'integrazione è necessaria per fornire dati di traccia completi quando si utilizza un'integrazione di servizi con Step Functions

X-Ray Supporto nativo

Le integrazioni di servizi con X-Ray supporto nativo includono:

Strumentazione richiesta

Integrazioni di servizi che richiedono strumentazione: X-Ray

  • Amazon Elastic Container Service

  • AWS Batch

  • AWS Fargate

Client-side solo trace

Altre integrazioni di servizi non supportano le X-Ray tracce. Tuttavia, le tracce lato client possono ancora essere raccolte:

  • Amazon DynamoDB

  • Amazon EMR

  • Amazon SageMaker AI

  • AWS CodeBuild

  • AWS Glue

Visualizzazione della X-Ray console

X-Ray riceve i dati dai servizi come segmenti. X-Ray raggruppa i segmenti che hanno una richiesta comune in tracce. X-Ray elabora le tracce per generare un grafico di servizio che fornisce una rappresentazione visiva dell'applicazione.

Dopo aver avviato l'esecuzione della macchina a stati, è possibile visualizzarne X-Ray le tracce selezionando il collegamento alla mappa di X-Ray traccia nella sezione Dettagli di esecuzione.

Dopo aver abilitato X-Ray la tua macchina a stati, puoi visualizzare le informazioni di tracciamento per le sue esecuzioni nella X-Ray console.

Visualizzazione delle informazioni X-Ray di tracciamento per Step Functions

I passaggi seguenti illustrano il tipo di informazioni che è possibile visualizzare nella console dopo aver abilitato X-Ray ed eseguito un'esecuzione. X-Ray vengono mostrate le tracce Crea un esempio di pattern di callback con Amazon SQS, Amazon SNS e Lambda del progetto di esempio.

Tracce

Al termine dell'esecuzione, puoi accedere alla X-Ray console, dove vedrai la pagina X-Ray Traces. Viene visualizzata una panoramica della mappa dei servizi e informazioni di traccia e segmento per la macchina a stati.

Schermata illustrativa delle X-Ray tracce per una macchina a stati.

Mappa servizio

La mappa dei servizi nella X-Ray console consente di identificare i servizi in cui si verificano errori, in cui sono presenti connessioni con latenza elevata o a visualizzare le tracce delle richieste non riuscite.

Schermata illustrativa incentrata sulla mappa dei servizi in Traces. X-Ray

Sulla mappa di traccia, puoi scegliere un nodo di servizio per visualizzare le richieste per quel nodo o un edge tra due nodi per visualizzare le richieste che hanno percorso quella connessione. Qui, il WaitForCallBack nodo è stato selezionato ed è possibile visualizzare informazioni aggiuntive sul suo stato di esecuzione e risposta.

Dettagli di esempio per un nodo di X-Ray traccia.

Puoi vedere come la mappa dei X-Ray servizi è correlata alla macchina a stati. Esiste un nodo della mappa dei servizi per ogni integrazione di servizi chiamato da Step Functions, a condizione che supporti X-Ray.

Esempio di rappresentazione grafica della macchina a stati tracciata.

Segmenti e sottosegmenti

Una traccia è una raccolta di segmenti generati da una singola richiesta. Ogni segmento fornisce il nome della risorsa, dettagli sulla richiesta e dettagli sul lavoro svolto. Nella pagina Traces, puoi vedere i segmenti e, se espansi, i relativi sottosegmenti corrispondenti. È possibile scegliere un segmento o un sottosegmento per visualizzare informazioni dettagliate su di esso.

Sarai un segmento diverso per ogni nodo sulla mappa dei servizi.

Schermata di esempio di segmenti e sottosegmenti per una macchina a stati.

La scelta di un segmento fornisce il nome della risorsa, i dettagli sulla richiesta e i dettagli sul lavoro svolto.

Un segmento può suddividere i dati sull'attività eseguita in sottosegmenti. La scelta di un sottosegmento mostra informazioni e dettagli granulari sulla tempistica. Un sottosegmento può contenere dettagli aggiuntivi su una chiamata a un AWS servizio, un'API HTTP esterna o un database SQL.

Analisi

La console AWS X-Ray Analytics è uno strumento interattivo per l'interpretazione dei dati di traccia. Puoi usarlo per comprendere più facilmente le prestazioni della tua macchina a stati. È possibile esplorare, analizzare e visualizzare le tracce tramite grafici interattivi del tempo di risposta e delle serie temporali per individuare problemi di prestazioni e latenza.

È possibile definire il set di dati attivo con filtri sempre più granulari facendo clic sui grafici e i pannelli di parametri e campi associati con il set di tracciamenti corrente.

Configurazione

È possibile configurare le opzioni di campionamento e crittografia dalla console. X-Ray

  • Scegliete Campionamento per visualizzare i dettagli sulla frequenza di campionamento e sulla configurazione.

    È possibile modificare le regole di campionamento per controllare la quantità di dati registrati e modificare il comportamento di campionamento in base alle proprie esigenze specifiche.

  • Scegliete Crittografia per modificare le impostazioni di crittografia.

    Puoi utilizzare l'impostazione predefinita, in cui X-Ray crittografa le tracce e i dati inattivi oppure, se necessario, puoi scegliere una chiave KMS. In quest'ultimo caso si applicano le AWS KMStariffe standard.

Cosa succede se non ci sono dati nella mappa di traccia o nella mappa dei servizi?

Se hai abilitato X-Ray, ma non riesci a visualizzare alcun dato nella X-Ray console, verifica che:

  • I tuoi ruoli IAM sono configurati correttamente per consentire la scrittura su X-Ray.

  • Le regole di campionamento consentono il campionamento dei dati.

  • Poiché può esserci un breve ritardo prima che vengano applicati i ruoli IAM appena creati o modificati, ricontrolla la traccia o le mappe dei servizi dopo alcuni minuti.

  • Se vedi Data non trovata nel pannello X-Ray Traces, controlla le impostazioni del tuo account IAM e assicurati che Servizio di token di sicurezza AWS sia abilitato per la regione desiderata. Per ulteriori informazioni, consulta Attivazione e disattivazione AWS STSRegione AWS in una delle guide per l'utente di IAM.