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à.
Strumentazione del codice Go in AWS Lambda
Lambda si integra con AWS X-Ray per aiutarti a tracciare, eseguire il debug e ottimizzare le applicazioni Lambda. Puoi utilizzare X-Ray per tracciare una richiesta mentre attraversa le risorse nell'applicazione, che possono includere funzioni Lambda e altri servizi AWS .
Per inviare dati di tracciamento a X-Ray, è possibile utilizzare una delle due librerie SDK:
-
AWS Distro for OpenTelemetry (ADOT)
: una distribuzione sicura, pronta per la produzione e supportata dell'SDK (Otel AWS). OpenTelemetry -
AWS X-Ray SDK for Go: un SDK per la generazione e l'invio di dati di traccia a X-Ray.
Ciascun SDK offre dei modi per inviare i dati di telemetria al servizio X-Ray. Puoi quindi utilizzare X-Ray per visualizzare, filtrare e analizzare le metriche delle prestazioni dell'applicazione per identificare i problemi e le opportunità di ottimizzazione.
Importante
X-Ray e Powertools for AWS Lambda SDK fanno parte di una soluzione di strumentazione strettamente integrata offerta da. AWS I livelli Lambda ADOT fanno parte di uno standard di settore per la strumentazione di tracciamento che in generale raccoglie più dati, ma potrebbero non essere adatti a tutti i casi d'uso. È possibile implementare il end-to-end tracciamento in X-Ray utilizzando entrambe le soluzioni. Per ulteriori informazioni sulla scelta più adatta, consulta Scegliere tra le AWS Distro per OpenTelemetry e SDK X-Ray.
Sections
Utilizzo di ADOT per strumentare le funzioni Go
ADOT fornisce livelli Lambda completamente gestiti che mettono insieme tutto il necessario per raccogliere i dati di telemetria utilizzando l'SDK OTel. Usando questo livello, è possibile strumentare le funzioni Lambda senza dover modificare alcun codice funzione. È inoltre possibile configurare il livello per eseguire l'inizializzazione personalizzata di OTel. Per ulteriori informazioni, consulta la sezione relativa alla configurazione personalizzata per ADOT Collector su Lambda
Per i runtime Go, puoi aggiungere il livello Lambda gestito da AWS per ADOT Go per strumentare automaticamente le tue funzioni. Per istruzioni dettagliate su come aggiungere questo layer, consulta AWS Distro for OpenTelemetry Lambda Support for
Utilizzo dell'SDK X-Ray per strumentare le funzioni Go
Per registrare i dettagli sulle chiamate che la funzione Lambda effettua ad altre risorse dell'applicazione, puoi anche utilizzare l' AWS X-Ray SDK for Go. Per scaricare l'SDK, scarica l'SDK dal suo repository con: GitHub go get
go get github.com/aws/aws-xray-sdk-go
Per utilizzare i client AWS SDK di Instrument, passate il client al metodo. xray.AWS()
Quindi potrai tracciare le chiamate utilizzando la versione WithContext
del metodo.
svc := s3.New(session.New()) xray.AWS(svc.Client) ... svc.ListBucketsWithContext(ctx aws.Context, input *ListBucketsInput)
Dopo aver aggiunto le dipendenze corrette e aver apportato le modifiche necessarie al codice, attivare il tracciamento nella configurazione della funzione tramite la console Lambda o l'API.
Attivazione del tracciamento con la console Lambda
Per attivare il tracciamento attivo sulla funzione Lambda con la console, attenersi alla seguente procedura:
Per attivare il tracciamento attivo
Aprire la pagina Funzioni
della console Lambda. -
Scegliere una funzione.
Scegliere Configuration (Configurazione) e quindi Monitoring and operations tools (Strumenti di monitoraggio e operazioni).
Scegli Modifica.
-
In X-Ray, attivare Active tracing (Tracciamento attivo).
-
Selezionare Salva.
Attivazione del tracciamento con l'API Lambda
Configura il tracciamento sulla tua funzione Lambda con AWS o SDK, utilizza AWS CLI le seguenti operazioni API:
Il AWS CLI comando di esempio seguente abilita il tracciamento attivo su una funzione denominata my-function.
aws lambda update-function-configuration \ --function-name my-function \ --tracing-config Mode=Active
La modalità di tracciamento fa parte della configurazione specifica della versione quando si pubblica una versione della funzione. Non è possibile modificare la modalità di tracciamento in una versione pubblicata.
Attivazione del tracciamento con AWS CloudFormation
Per attivare il tracciamento su una AWS::Lambda::Function
risorsa in un AWS CloudFormation modello, utilizzate la proprietà. TracingConfig
Esempio function-inline.yml – Configurazione del tracciamento
Resources: function: Type: AWS::Lambda::Function Properties:
TracingConfig: Mode: Active
...
Per una AWS::Serverless::Function
risorsa AWS Serverless Application Model (AWS SAM), utilizzate la Tracing
proprietà.
Esempio template.yml – Configurazione del tracciamento
Resources: function: Type: AWS::Serverless::Function Properties:
Tracing: Active
...
Interpretazione di una traccia X-Ray
La funzione ha bisogno dell'autorizzazione per caricare i dati di traccia su X-Ray. Quando si attiva il tracciamento nella console Lambda, Lambda aggiunge le autorizzazioni necessarie al ruolo di esecuzione della funzione. Altrimenti, aggiungete la AWSXRayDaemonWriteAccess
Dopo aver configurato il tracciamento attivo, è possibile osservare richieste specifiche tramite l'applicazione. Il grafico dei servizi X-Ray mostra informazioni sull'applicazione e tutti i suoi componenti. L'immagine seguente mostra un'applicazione con due funzioni. La funzione principale elabora gli eventi e talvolta restituisce errori. La seconda funzione in alto elabora gli errori che compaiono nel gruppo di log della prima e utilizza l' AWS SDK per chiamare X-Ray, Amazon Simple Storage Service (Amazon S3) e Amazon Logs. CloudWatch
![Diagramma che mostra due applicazioni separate e le rispettive mappe di servizio in X-Ray](images/sample-errorprocessor-servicemap.png)
X-Ray non traccia tutte le richieste nell'applicazione. X-Ray applica un algoritmo di campionamento per garantire che il tracciamento avvenga in modo efficiente, continuando allo stesso tempo a fornire un campione rappresentativo di tutte le richieste. La frequenza di campionamento è di una richiesta al secondo e del 5% delle altre richieste.
Nota
La frequenza di campionamento di X-Ray non può essere configurata per le funzioni.
In X-Ray, una traccia registra informazioni su una richiesta elaborata da uno o più servizi. Lambda registra 2 segmenti per traccia, il che crea due nodi sul grafico del servizio. L'immagine seguente evidenzia questi due nodi:
![Una mappa del servizio X-Ray con una sola funzione.](images/xray-servicemap-function.png)
Il primo nodo a sinistra rappresenta il servizio Lambda che riceve la richiesta di chiamata. Il secondo nodo rappresenta la specifica funzione Lambda. L'esempio seguente mostra una traccia con questi 2 segmenti. Entrambi sono denominati my-function, ma uno ha un'origine di AWS::Lambda
e l'altro ha un'origine di. AWS::Lambda::Function
Se il AWS::Lambda
segmento mostra un errore, il servizio Lambda presentava un problema. Se il AWS::Lambda::Function
segmento mostra un errore, la funzione presentava un problema.
![Una traccia X-Ray che mostra la latenza su ogni sottosegmento di una specifica chiamata Lambda.](images/nodejs-xray-timeline.png)
Questo esempio espande il AWS::Lambda::Function
segmento per mostrarne i tre sottosegmenti:
-
Inizializzazione – Rappresenta il tempo trascorso a caricare la funzione e ad eseguire il codice di inizializzazione. Questo sottosegmento viene visualizzato solo per il primo evento che viene elaborato da ogni istanza della funzione.
-
Chiamata: rappresenta il tempo impiegato per eseguire il codice del gestore.
-
Overhead: rappresenta il tempo impiegato dal runtime Lambda per prepararsi a gestire l'evento successivo.
È inoltre possibile strumentare i client HTTP, registrare query SQL e creare segmenti secondari personalizzati con annotazioni e metadati. Per ulteriori informazioni, consulta SDK AWS X-Ray per Go nella Guida per gli sviluppatori di AWS X-Ray .
Prezzi
Puoi utilizzare il tracciamento X-Ray gratuitamente ogni mese fino a un determinato limite come parte del AWS piano gratuito. Oltre la soglia, X-Ray addebita lo storage di traccia e il recupero. Per ulteriori informazioni, consultare Prezzi di AWS X-Ray