- Strumenti per sviluppatori›
- AWS X-Ray›
- Domande frequenti
Domande frequenti su AWS X-Ray
Argomenti della pagina
Domande generaliDomande generali
Cos'è AWS X-Ray?
AWS X-Ray aiuta gli sviluppatori ad analizzare ed eseguire il debug della produzione e delle applicazioni distribuite come quelle create con un'architettura di microservizi. Con X-Ray puoi identificare le prestazioni della tua applicazione e dei relativi servizi per individuare e risolvere la causa di origine di problemi ed errori di performance. X-Ray fornisce una panoramica completa delle richieste durante il passaggio nella tua applicazione e mostra una mappa dei componenti utilizzati da essa. Puoi utilizzare X-Ray per analizzare le applicazioni sia nella fase di sviluppo sia in produzione, da semplici applicazioni a tre livelli a complesse applicazioni di microservizi composte da migliaia di servizi.
Qual è il vantaggio di utilizzare X-Ray?
Al momento, se costruisci ed esegui ambienti distribuiti, devi affidarti a un processo specifico per il servizio o per la risorsa per monitorare le richieste durante il passaggio tra i diversi componenti che formano l’applicazione. Questo problema è ulteriormente complicato dalla varietà dei formati di log e dei supporti di archiviazione per i vari canoni, servizi e risorse che la tua applicazione utilizza o sui quali viene eseguita. Ciò rende difficile la correlazione tra le varie informazioni e la creazione di un quadro end-to-end di una richiesta dal momento in cui essa ha origine presso l’utente finale o il servizio a quando l’applicazione restituisce una risposta. X-Ray fornisce un modello incentrato sull’utente, anziché sul servizio o sulla risorsa, al fine di raccogliere dati relativi alle richieste inviate alla tua applicazione. Questo modello consente di creare un quadro della richiesta incentrato sull’utente durante il passaggio tra i vari servizi e risorse. Collegando e aggregando i dati per tuo conto, X-Ray ti consente di focalizzarti sul miglioramento dell’esperienza per gli utenti finali della tua applicazione.
Cosa è possibile fare con X-Ray?
Con X-Ray sarà più semplice:
- Creazione di una mappa dei servizi – Tenendo traccia delle richieste effettuate alla tua applicazioni, X-Ray può creare una mappa dei servizi utilizzati da essa. In questo modo potrai ottenere una visuale complessiva delle connessioni tra i servizi nell’applicazione, creare un albero delle dipendenze, rilevare latenze ed errori durante il lavoro nelle regioni o nelle zone di disponibilità di AWS, concentrarti sui servizi che non funzionano come previsto, e altro ancora.
- Identificazione di errori e bug – X-Ray è in grado di evidenziare automaticamente i bug e gli errori nell’applicazione analizzando il codice di risposta per ciascuna delle richieste inviate all’applicazione. Ciò semplifica l’esecuzione del debug del codice dell’applicazione senza la necessità di riprodurre il bug o l’errore.
- Costruzione di applicazioni di analisi e visualizzazione personalizzate – X-Ray mette a disposizione una serie di API di query che consentono di costruire app di analisi e visualizzazione personalizzate che utilizzano i dati registrati da X-Ray.
Concetti fondamentali
Cos'è una traccia?
Una traccia X-Ray è una set di punti di dati che condividono lo stesso ID della traccia. Ad esempio, quando un cliente effettua una richiesta all’applicazione, viene assegnato un ID traccia univoco. Man mano che la richiesta segue il suo iter tra i servizi dell’applicazione, questi ultimi restituiscono a X-Ray le informazioni riguardanti la richiesta utilizzando questo ID traccia univoco. L’informazione restituita da ciascun servizio dell’applicazione a X-Ray è un segmento e una traccia è un insieme di segmenti.
Cos'è un segmento?
Un segmento X-Ray incapsula tutti i punti di dati per un singolo componente (ad esempio, un servizio di autorizzazione) dell’applicazione distribuita. I segmenti includono dati definiti dal sistema e definiti dall’utente sotto forma di annotazioni e sono composti da uno o più sotto-segmenti che rappresentano le chiamate da remoto effettuate dal servizio. Ad esempio, quando un’applicazione effettua una chiamata a un database in risposta a una richiesta, viene creato un segmento per quella richiesta con un sotto-segmento che rappresenta la chiamata al database e il relativo risultato. Il sotto-segmento può contenere dati come la query, la tabella utilizzata, il timestamp e lo stato di errore.
Cos'è un’annotazione?
Un’annotazione di X-Ray corrisponde ai dati definiti dal sistema o dall’utente associati a un segmento. Un segmento può contenere più annotazioni. Le annotazioni definite dal sistema possono includere i dati aggiunti al segmento da servizi AWS, mentre le annotazioni definite dall’utente sono metadati aggiunti a un segmento da uno sviluppatore. Per esempio, i dati sulla regione per chiamate associate a un servizio AWS verranno inseriti automaticamente in un segmento creato da una tua applicazione, mentre sarà tua facoltà scegliere se aggiungere al segmento i dati sulla regione per chiamate verso servizi non AWS.
Che cosa sono gli errori?
Gli errori di X-Ray sono annotazioni di sistema associate a un segmento per una chiamata a cui segue una risposta di errore. L’errore include il messaggio di errore, la traccia dello stack e qualsiasi informazione aggiuntiva (ad esempio, versione o ID impegno) che associ l’errore con un file di origine.
Che cos’è il campionamento?
Per garantire un’esperienza performante e a costi ridotti, X-Ray non raccoglie dati per ogni richiesta inviata a un’applicazione. Raccoglie invece dati per un numero statisticamente significativo di richieste. X-Ray non deve essere utilizzato come strumento di controllo o di verifica della conformità in quanto non è in grado di garantire la completezza dei dati.
Che cos’è il daemon di X-Ray?
Il daemon di X-Ray raccoglie le tracce e le invia al servizio X-Ray per l'aggregazione, l'analisi e l'archiviazione. Il daemon semplifica l'invio di dati al servizio X-Ray, anziché utilizzare direttamente le API.
Uso di AWS X-Ray
Come si inizia a usare X-Ray?
Puoi iniziare a usare X-Ray inserendo nella tua applicazione l’SDK del linguaggio di X-Ray e istallando il daemon X-Ray. Per ulteriori informazioni, consulta la Guida per l'utente di X-Ray.
Quali tipi di applicazione è possibile utilizzare con X-Ray?
X-Ray può essere utilizzato con applicazioni distribuite di qualsiasi dimensione per tracciare ed eseguire il debug sia di richieste sincrone che di eventi asincroni. Per esempio, X-Ray può essere utilizzato per tracciare le richieste Web inviate a un’applicazione Web o eventi asincroni che utilizzano le code di Amazon SQS.
Con quali servizi AWS posso utilizzare X-Ray?
X-Ray può essere utilizzato con applicazioni in esecuzione su EC2, ECS, Lambda, Amazon SQS, Amazon SNS ed Elastic Beanstalk. Inoltre, l’SDK di X-Ray acquisisce automaticamente metadati per le chiamate API effettuate verso servizi AWS che utilizzano l’SDK AWS. L’SDK di AWS offre anche add-on per MySQL e driver PostgreSQL.
Quali modifiche devo apportare al mio codice per consentire alla mia applicazione di utilizzare X-Ray?
Se stai utilizzando Elastic Beanstalk, sarà necessario includere le librerie di X-Ray specifiche per il linguaggio nel tuo codice applicazione. Per applicazioni in esecuzione su altri servizi AWS, come EC2 o ECS, occorrerà installare il daemon di X-Ray e dotare di strumentazione il tuo codice applicazione.
X-Ray fornisce un’API?
Sì, X-Ray offre un set di API per l’acquisizione dei dati della richiesta, l’esecuzione delle query delle tracce e la configurazione del servizio. È possibile utilizzare l’API di X-Ray per creare applicazioni di analisi e visualizzazione in aggiunta a quelle fornite da X-Ray.
AWS X-Ray registra gli eventi del log su AWS CloudTrail?
Sì. X-Ray registra tutte le chiamate API come eventi di gestione. Inoltre, registra le chiamate sulle tracce come eventi di dati, tra cui su PutTraceSegments e getTimeServiceStatistics tra le altre API. Per impostazione predefinita, gli eventi relativi ai dati non vengono registrati. Per registrare gli eventi relativi ai dati, devi configurare il percorso o il data store degli eventi di CloudTrail per raccoglierli.
Regioni
In quali regioni è disponibile X-Ray?
Per maggiori informazioni, vedi Prodotti e servizi regionali.
Posso utilizzare X-Ray per tracciare le richieste da applicazioni o servizi distribuite in diverse regioni?
Sì, X-Ray può essere utilizzato per tracciare richieste che coinvolgono più richieste o servizi in varie regioni. I dati di X-Ray vengono memorizzati a livello locale nella regione in cui avviene l’elaborazione, ma con informazioni sufficienti per consentire ad applicazioni client di combinare i dati e offrire una vista globale delle tracce. L’annotazione relativa alla regione per i servizi AWS verrà aggiunta automaticamente, tuttavia i clienti dovranno instrumentare servizi personalizzati per aggiungere l’annotazione regionale che garantisce il supporto in più regioni.
Gestione dei dati
Dopo quanto tempo sono disponibili i dati di tracciamento in X-Ray?
I dati di tracciamento inviati a X-Ray diventano disponibili per il recupero e il filtraggio entro 30 secondi da quando il servizio li riceve.
Fino a quanto indietro nel tempo è possibile interrogare i dati di tracciamento? Per quanto tempo X-Ray conserva i dati di tracciamento?
X-Ray conserva i dati di tracciamento degli ultimi 30 giorni. Ciò consente di riferire le query sui dati di tracciamento ai 30 giorni precedenti.
Perché talvolta vengono visualizzate tracce parziali?
X-Ray fa il possibile per presentare informazioni di tracciamento complete. Tuttavia, in alcune circostanze (problemi di connettività, ritardo nella ricezione dei segmenti, ecc.) è possibile che le informazioni di tracciamento fornite dalle API di X-Ray siano parziali. In queste situazioni, X-Ray utilizza appositi tag per contrassegnare le tracce come incomplete o parziali.
I componenti della mia applicazione vengono eseguiti nei rispettivi account AWS. Posso utilizzare X-Ray per raccogliere dati dei diversi account AWS?
Sì, il daemon X-Ray può assumere un ruolo che gli consente di pubblicare dati in un account diverso da quello nel quale è attualmente in esecuzione. Ciò ti consente di pubblicare dati da diversi componenti della tua applicazione in un account centrale.