REL06-BP07 Monitoraggio del tracciamento end-to-end delle richieste attraverso il sistema - Pilastro dell'affidabilità

REL06-BP07 Monitoraggio del tracciamento end-to-end delle richieste attraverso il sistema

Tieni traccia delle richieste durante l'elaborazione dei componenti del servizio in modo che i team del prodotto possano analizzare i problemi, semplificarne il debug e migliorare le prestazioni.

Risultato desiderato: i carichi di lavoro con tracciabilità completa su tutti i componenti sono caratterizzati da processi di debug più semplici, con conseguente miglioramento del tempo medio di risoluzione (MTTR) degli errori e della latenza, grazie a una più semplice individuazione della causa principale. La tracciabilità end-to-end riduce il tempo necessario per individuare i componenti interessati e approfondire in dettaglio le cause principali degli errori o della latenza.

Anti-pattern comuni:

  • Il tracciamento viene utilizzato per alcuni componenti ma non per tutti. Ad esempio, senza il tracciamento AWS Lambda, i team potrebbero non avere una chiara comprensione della latenza causata dagli avviamenti a freddo in un periodo di picco del carico di lavoro.

  • I canary Synthetics o le metriche RUM (Real-User Monitoring) non sono configurati con il tracciamento. Senza canary o metriche RUM, la telemetria delle interazioni dei clienti viene omessa dall'analisi dei tracciamenti e ciò rende incompleto il profilo delle prestazioni.

  • I carichi di lavoro ibridi includono strumenti di tracciamento cloud-native (nativi del cloud) e di terze parti, ma non sono state prese misure specifiche per selezionare e integrare completamente un'unica soluzione di tracciamento. In base alla soluzione di tracciamento scelta, gli SDK di tracciamento cloud-native (nativi del cloud) devono essere utilizzati per instrumentare i componenti non cloud-native (nativi del cloud) oppure è necessario configurare strumenti di terze parti per acquisire i dati telemetrici delle tracce nativi del cloud.

Vantaggi dell'adozione di questa best practice: quando vengono avvisati della presenza di problemi, i team di sviluppo possono visualizzare un quadro completo delle interazioni tra i componenti del sistema, inclusa la correlazione componente per componente con creazione di log, prestazioni e guasti. Poiché il tracciamento semplifica l'identificazione visiva delle cause principali, viene dedicato meno tempo all'individuazione di tali cause. I team che hanno una visione dettagliata delle interazioni tra i componenti prendono decisioni migliori e più rapide durante la fase di risoluzione dei problemi. Le decisioni, ad esempio quando richiamare il failover del ripristino di emergenza o dove implementare in modo più efficace le strategie di riparazione automatica, possono essere migliorate analizzando le tracce dei sistemi; ciò ottimizza in ultima analisi la soddisfazione dei clienti nei confronti dei servizi.

Livello di rischio associato se questa best practice non fosse adottata: medio

Guida all'implementazione

I team che gestiscono le applicazioni distribuite possono utilizzare strumenti di tracciamento per definire un identificatore di correlazione, raccogliere le tracce delle richieste e creare mappe di servizio dei componenti connessi. Tutti i componenti dell'applicazione devono essere inclusi nelle tracce delle richieste, inclusi client di servizio, gateway middleware (software intermediario) e router di eventi, componenti di elaborazione e archiviazione, tra cui gli archivi e i database dei valori chiave. Includi canary Synthetics o metriche RUM (Real-User Monitoring) nella configurazione del tracciamento end-to-end per misurare le interazioni e la latenza dei client remoti in modo da poter valutare con precisione le prestazioni dei tuoi sistemi rispetto agli accordi sul livello di servizio (SLA) e agli obiettivi corrispondenti.

Puoi utilizzare AWS X-Ray e i servizi di strumentazione del monitoraggio delle applicazioni Amazon CloudWatch per una visione completa delle richieste mentre vengono inviate alla tua applicazione. X-Ray raccoglie la telemetria delle applicazioni e consente di visualizzarla e filtrarla tra payload, funzioni, tracce, servizi, API. La telemetria può essere attivata per componenti di sistema senza codice o a uso limitato di codice. Il monitoraggio delle applicazioni CloudWatch comprende Servicelens per l'integrazione delle tracce con parametri, log e allarmi. La funzionalità Monitoraggio delle applicazioni CloudWatch include anche elementi Synthetics per monitorare gli endpoint e le API, oltre alle metriche RUM (Real-User Monitoring) per dotare di strumenti i client delle applicazioni Web.

Passaggi dell'implementazione

  • Utilizza AWS X-Ray su tutti i servizi nativi supportati, come Amazon S3, AWS Lambda e Gateway Amazon API. Questi servizi AWS consentono a X-Ray di attivare opzioni di configurazione utilizzando il modello Infrastructure as code, AWS SDK o la AWS Management Console.

  • Dota di strumenti le applicazioni AWS Distro for Open Telemetry e X-Ray o gli agenti di raccolta di terze parti.

  • Consulta la Guida per gli sviluppatori AWS X-Ray per l'implementazione specifica del linguaggio di programmazione. Queste sezioni della documentazione descrivono come instrumentare le richieste HTTP, le query SQL e altri processi specifici del linguaggio di programmazione delle applicazioni.

  • Usa il tracciamento X-Ray per i canary sintetici di Amazon CloudWatch e Amazon CloudWatch RUM al fine di analizzare il percorso delle richieste dal client dell'utente finale lungo l'infrastruttura AWS a valle.

  • Configura le metriche e gli allarmi CloudWatch in base allo stato delle risorse e alla telemetria dei canary in modo che i team siano avvisati tempestivamente in merito ai problemi e possano, quindi, analizzare in dettaglio le tracce e le mappe dei servizi con ServiceLens.

  • Abilita l'integrazione X-Ray per gli strumenti di tracciamento di terze parti come Datadog, New Relic o Dynatrace in caso di utilizzo di strumenti di terze parti per la tua soluzione di tracciamento principale.

Risorse

Best practice correlate:

Documenti correlati:

Esempi correlati:

Video correlati:

Strumenti correlati: