0Pricing
React Academy · Lezione

Correlazione delle trace frontend e backend

Propaghi il contesto della trace attraverso le richieste fetch, così gli span backend compaiono nella stessa trace dell’azione UI che li ha avviati.

Correlazione delle trace frontend e backend è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Obiettivo della traccia distribuita

L'obiettivo ultimo dell'osservabilità frontend è ottenere un'unica traccia che colleghi il clic dell'utente in React alla rete, ai gestori API, alle chiamate ai servizi e infine alla query del database che ha causato una risposta lenta. Questa traccia end-to-end rende immediata l'analisi della causa principale.

Standard W3C TraceContext

La specifica W3C TraceContext definisce il formato dell'header traceparent: version-traceId-parentSpanId-flags. Un valore di esempio è: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01. Il trace ID è condiviso nell'intera traccia distribuita, mentre il parent span ID cambia a ogni passaggio.

Iniezione automatica degli header

La strumentazione fetch di OTel inietta automaticamente l'header traceparent in ogni richiesta fetch in uscita. L'header contiene il trace ID corrente e lo span ID dello span fetch frontend come parent, consentendo al backend di creare uno span figlio collegato allo span frontend.

Continuazione della traccia nel backend

Sul server, la strumentazione HTTP OTel per Node.js/Express legge l'header traceparent in ingresso e crea span figli dello span fetch frontend. Il trace ID viene preservato, quindi Jaeger o Grafana Tempo mostrano l'intera catena — span del browser → span di Express → span del database — in un'unica vista a cascata.

Visualizzazione delle tracce in Jaeger o Grafana Tempo

Quando frontend e backend sono entrambi strumentati, apra Jaeger o Grafana Tempo e cerchi un trace ID. Vedrà l'intera vista a cascata: in alto lo span del componente React, sotto lo span fetch, poi lo span del gestore della route Express e infine lo span della query al database, tutti con le rispettive durate e attributi.

Correlazione per utente

Imposti user.id come attributo su tutti gli span della Sua app React utilizzando span.setAttribute('user.id', userId). Faccia lo stesso sul backend. Ora può filtrare il backend di osservabilità per visualizzare tutte le tracce relative a uno specifico user ID, così da diagnosticare i problemi segnalati da un determinato cliente.

Correlazione per sessione

Generi un ID di sessione univoco al caricamento della pagina e lo imposti come session.id su tutti gli span frontend. Lo includa negli header delle richieste, in modo che anche il backend lo associ ai propri span. La correlazione per sessione consente di ricostruire la sequenza completa delle azioni eseguite dall'utente in una singola sessione.

Collegamento delle sessioni RUM alle tracce

Gli strumenti commerciali come Datadog integrano nativamente le sessioni RUM con le tracce APM. L'SDK RUM di Datadog inietta un header specifico (X-Datadog-Trace-Id) nelle richieste fetch e l'SDK APM di Datadog sul backend lo legge per collegare la riproduzione della sessione alla traccia distribuita: può guardare la riproduzione della sessione e la traccia contemporaneamente.

Vantaggi della correlazione

Supponga che un utente segnali che il checkout è lento. Con le tracce correlate, cerca per user.id nel Suo backend di osservabilità, trova la traccia del checkout e vede immediatamente che il rallentamento è stato causato da una query al database di 900 ms che univa due tabelle di grandi dimensioni, un problema invisibile alle sole metriche frontend.

OTel Collector come proxy

I browser non possono inviare direttamente le tracce a Jaeger o ad altri backend, a causa delle restrizioni CORS e dell'esposizione delle credenziali. Esegua invece un OTel Collector come proxy: configuri OTLPTraceExporter per inviare i dati all'endpoint del Collector, che poi li distribuisce a Jaeger, Grafana Tempo o qualsiasi altro backend.

Considerazioni sulla privacy

Le tracce frontend possono catturare inavvertitamente dati sensibili: valori dei campi dei moduli negli URL, PII negli attributi degli span e token di sessione negli header. Esamini la strumentazione per assicurarsi che nessun dato sensibile venga incluso negli attributi degli span. Utilizzi span.setAttribute con parsimonia e sanifichi i parametri di query degli URL prima di registrarli.

Formato dell'header traceparent

Qual è il formato dell'header traceparent di W3C TraceContext?

Riepilogo della lezione

La correlazione tra le tracce frontend e backend offre visibilità end-to-end sull'intero percorso della richiesta dell'utente. Gli header traceparent di W3C TraceContext collegano automaticamente gli span fetch del browser agli span backend tramite la strumentazione OTel. Arricchisca tutti gli span con user.id e session.id per un debugging mirato. Utilizzi un OTel Collector come proxy tra browser e backend per evitare problemi CORS e l'esposizione delle credenziali.

Domande Frequenti

La lezione «Correlazione delle trace frontend e backend» è gratuita?

Sì — il testo completo di «Correlazione delle trace frontend e backend» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Correlazione delle trace frontend e backend»?

Propaghi il contesto della trace attraverso le richieste fetch, così gli span backend compaiono nella stessa trace dell’azione UI che li ha avviati. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Correlazione delle trace frontend e backend»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Osservabilità frontend: cosa e perché
  2. Trace OpenTelemetry dal browser
  3. Monitoraggio degli utenti reali e Web Vitals
  4. Correlazione delle trace frontend e backend
← Torna a React Academy