OpenTelemetry-traces fra browseren
Opsæt OTel JavaScript SDK i React, opret spans for brugerinteraktioner, og eksportér dem til en backend-collector.
OpenTelemetry-traces fra browseren er en gratis React Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i React Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. React Academy-kurset indeholder 4 lektioner i alt.
OpenTelemetrys JavaScript-SDK
OpenTelemetrys JavaScript-SDK til browsere består af flere pakker: @opentelemetry/sdk-trace-web leverer den centrale implementering af sporing, @opentelemetry/instrumentation-fetch opretter automatisk spans for alle fetch API-kald, og @opentelemetry/exporter-trace-otlp-http sender spans til en collector.
TracerProvider: Roden i OTel-sporing
TracerProvider er det centrale konfigurationsobjekt i OpenTelemetry. Det indeholder listen over SpanProcessors (som bestemmer, hvad der sker med afsluttede spans), den ressource, der beskriver din applikation (tjenestenavn, version), og eventuel samplingkonfiguration.
BatchSpanProcessor: Effektiv eksport
BatchSpanProcessor samler afsluttede spans i hukommelsen og eksporterer dem i grupper i stedet for at sende hvert span individuelt. Det reducerer antallet af HTTP-anmodninger til din collector markant, forbedrer browserens ydeevne og mindsker belastningen på OTel-collectorens endepunkt.
OTLPTraceExporter: Afsendelse til en collector
OTLPTraceExporter sender grupper af spans til en OpenTelemetry-kompatibel collector via HTTP i JSON- eller protobuf-format. Du konfigurerer collectorens URL (f.eks. dit OTel Collector-proxyendepunkt), og eksportøren håndterer serialisering og logik til nye forsøg automatisk.
Hvad er et span
Et span repræsenterer en enkelt arbejdsenhed i et spor: en komponentmontering, et API-kald eller en brugerinteraktion. Spans har et navn, et starttidspunkt, et sluttidspunkt, en status (OK eller ERROR) og et sæt nøgle-værdi-attributter. Relaterede spans forbindes via et fælles trace-id og forælder-barn-relationer.
Start og afslut spans manuelt
Du opretter en tracer med provider.getTracer('react-app') og starter spans med tracer.startSpan('component-mount'). Når arbejdet er færdigt, skal du kalde span.end() for at registrere sluttidspunktet. Afslut altid spans — lækkede spans spilder hukommelse og skaber ufuldstændige data i din backend til observerbarhed.
Tilføjelse af attributter til spans
Attributter beriger spans med kontekstuelle data: span.setAttribute('user.id', userId) eller span.setAttribute('route', location.pathname). Der kan søges i attributterne i din backend til observerbarhed, så du kan køre forespørgsler som "vis alle langsomme spans for bruger 42" eller "vis alle fejl på ruten /checkout".
Automatisk fetch-instrumentering
@opentelemetry/instrumentation-fetch ændrer den globale fetch-funktion, så der automatisk oprettes spans for hver udgående HTTP-anmodning. Spannet indfanger URL'en, metoden, HTTP-statuskoden og varigheden uden ændringer i dine eksisterende fetch-kald.
Kontekstvideregivelse via W3C TraceContext
Når fetch-instrumenteringen opretter et span til en udgående anmodning, indsætter den W3C TraceContext-traceparent-headeren i anmodningen. Den modtagende backend læser denne header og fortsætter det samme trace, så der oprettes et sammenhængende trace, der spænder over browser og server.
Initialisering af OTel i din React-app
OTel skal initialiseres, før nogen komponenter mountes — typisk i appens entry-fil (main.tsx) før ReactDOM.createRoot-kaldet. Opret provideren, registrer processorer og eksportører, og kald provider.register() for at gøre den til den globale TracerProvider.
Sampling: Kontrol af tracemængden
Registrering af enhver brugerinteraktion i apps med høj trafik genererer enorme mængder tracedata. Konfigurer en TraceIdRatioBased-sampler (f.eks. 10 % af traces) i TracerProvider for at reducere mængden. Udvælg altid 100 % af traces med fejl ved hjælp af en ParentBased-sampler for at sikre, at ingen fejl overses.
Formålet med OTel BatchSpanProcessor
Hvorfor bruges BatchSpanProcessor i stedet for SimpleSpanProcessor i browserapplikationer?
Opsummering af lektionen
OpenTelemetry JavaScript SDK instrumenterer browsere med TracerProvider, BatchSpanProcessor og OTLPTraceExporter. Spans repræsenterer arbejdsenheder, der er beriget med attributter. Fetch-instrumenteringen opretter automatisk spans for API-kald og indsætter W3C TraceContext-headers til distribueret tracing fra ende til ende. Initialiser tidligt, udfør sampling på passende vis, og afslut altid spans for at bevare rene tracedata.
Lær React med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 88
- Lektioner
- 324
Ofte stillede spørgsmål
Er lektionen “OpenTelemetry-traces fra browseren” gratis?
Ja — hele teksten til “OpenTelemetry-traces fra browseren” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af React Academy-kurset, skal du opgradere til CoddyKit PRO. React Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “OpenTelemetry-traces fra browseren”?
Opsæt OTel JavaScript SDK i React, opret spans for brugerinteraktioner, og eksportér dem til en backend-collector. Du øver dig i React Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på React Academy?
Der kræves ingen tidligere erfaring. React Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “OpenTelemetry-traces fra browseren”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne React Academy-lektion?
Ja. Alle React Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Frontend-observability: Hvad og hvorfor
- OpenTelemetry-traces fra browseren
- Overvågning af rigtige brugere og Web Vitals
- Sammenkædning af frontend- og backend-traces