Trace OpenTelemetry dal browser
Configuri l’SDK JavaScript OTel in React, crei span per le interazioni dell’utente ed esporti i dati a un collector backend.
Trace OpenTelemetry dal browser è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 2 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.
L'SDK JavaScript di OpenTelemetry
L'SDK JavaScript di OpenTelemetry per i browser è composto da diversi pacchetti: @opentelemetry/sdk-trace-web fornisce l'implementazione di base del tracing, @opentelemetry/instrumentation-fetch crea automaticamente gli span per tutte le chiamate all'API fetch e @opentelemetry/exporter-trace-otlp-http invia gli span a un collector.
TracerProvider: la radice del tracing OTel
TracerProvider è l'oggetto centrale per la configurazione in OpenTelemetry. Contiene l'elenco degli SpanProcessors, che determinano cosa accade agli span completati, la resource che descrive l'applicazione, inclusi nome e versione del servizio, e qualsiasi configurazione di sampling.
BatchSpanProcessor: esportazione efficiente
BatchSpanProcessor raccoglie in memoria gli span completati e li esporta in batch anziché inviare ogni span singolarmente. In questo modo riduce drasticamente il numero di richieste HTTP al collector, migliorando le prestazioni del browser e riducendo il carico sull'endpoint del collector OTel.
OTLPTraceExporter: invio a un collector
OTLPTraceExporter invia gli span raggruppati a un collector compatibile con OpenTelemetry tramite HTTP, in formato JSON o protobuf. Si configura l'URL del collector, ad esempio l'endpoint proxy del vostro OTel Collector, e l'exporter gestisce automaticamente la serializzazione e la logica di retry.
Che cos'è uno Span?
Uno Span rappresenta una singola unità di lavoro all'interno di una traccia: il montaggio di un componente, una chiamata API o un'interazione dell'utente. Gli span hanno un nome, un'ora di inizio, un'ora di fine, uno stato (OK o ERROR) e un insieme di attributi chiave-valore. Gli span correlati sono collegati da un trace ID condiviso e da relazioni padre-figlio.
Avvio e chiusura manuale degli span
Si crea un tracer con provider.getTracer('react-app') e si avviano gli span con tracer.startSpan('component-mount'). Al termine dell'operazione, si chiama span.end() per registrare l'ora di fine. È importante chiudere sempre gli span: quelli lasciati aperti sprecano memoria e producono dati incompleti nel backend di osservabilità.
Aggiunta di attributi agli span
Gli attributi arricchiscono gli span con dati contestuali: span.setAttribute('user.id', userId) o span.setAttribute('route', location.pathname). Gli attributi sono ricercabili nel backend di osservabilità e consentono query come "mostra tutti gli span lenti per l'utente 42" o "mostra tutti gli errori sulla rotta /checkout".
Strumentazione automatica di fetch
@opentelemetry/instrumentation-fetch applica una monkey patch alla funzione globale fetch per creare automaticamente span per ogni richiesta HTTP in uscita. Lo span registra l'URL, il metodo, il codice di stato HTTP e la durata senza richiedere modifiche alle chiamate fetch esistenti.
Propagazione del contesto tramite W3C TraceContext
Quando la strumentazione fetch crea uno span per una richiesta in uscita, inietta l'header traceparent di W3C TraceContext nella richiesta. Il backend ricevente legge questo header e continua la stessa traccia, creando una traccia collegata che comprende browser e server.
Inizializzazione di OTel nella Sua app React
L'inizializzazione di OTel deve avvenire prima del montaggio di qualsiasi componente, in genere nel file di ingresso dell'app (main.tsx), prima della chiamata a ReactDOM.createRoot. Crei il provider, registri processor ed exporter e chiami provider.register() per renderlo il TracerProvider globale.
Campionamento: controllo del volume delle tracce
La registrazione di ogni interazione dell'utente nelle app ad alto traffico genera enormi quantità di dati di traccia. Configuri un sampler TraceIdRatioBased nel TracerProvider (ad esempio, per campionare il 10% delle tracce) così da ridurre il volume. Campioni sempre il 100% delle tracce con errori utilizzando un sampler ParentBased, per assicurarsi che nessun errore venga ignorato.
Scopo di OTel BatchSpanProcessor
Perché nelle applicazioni browser si usa BatchSpanProcessor invece di SimpleSpanProcessor?
Riepilogo della lezione
L'SDK JavaScript di OpenTelemetry strumenta i browser con TracerProvider, BatchSpanProcessor e OTLPTraceExporter. Gli span rappresentano unità di lavoro arricchite con attributi. La strumentazione fetch crea automaticamente span per le chiamate API e inietta gli header W3C TraceContext per il tracing distribuito end-to-end. Inizializzi presto, configuri il campionamento in modo appropriato e termini sempre gli span per mantenere puliti i dati di traccia.
Impara React con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 88
- Lezioni
- 324
Domande Frequenti
La lezione «Trace OpenTelemetry dal browser» è gratuita?
Sì — il testo completo di «Trace OpenTelemetry dal browser» è 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 «Trace OpenTelemetry dal browser»?
Configuri l’SDK JavaScript OTel in React, crei span per le interazioni dell’utente ed esporti i dati a un collector backend. 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 2 di 4.
Quanto tempo richiede la lezione «Trace OpenTelemetry dal browser»?
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
- Osservabilità frontend: cosa e perché
- Trace OpenTelemetry dal browser
- Monitoraggio degli utenti reali e Web Vitals
- Correlazione delle trace frontend e backend