0Pricing
React Academy · Lektion

OpenTelemetry-Traces aus dem Browser

Richten Sie das OTel-JavaScript-SDK in React ein, erstellen Sie Spans für Benutzerinteraktionen und exportieren Sie sie an einen Backend-Collector.

OpenTelemetry-Traces aus dem Browser ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Das OpenTelemetry-JavaScript-SDK

Das OpenTelemetry-JavaScript-SDK für Browser besteht aus mehreren Paketen: @opentelemetry/sdk-trace-web stellt die zentrale Tracing-Implementierung bereit, @opentelemetry/instrumentation-fetch erstellt automatisch Spans für alle fetch-API-Aufrufe und @opentelemetry/exporter-trace-otlp-http sendet Spans an einen Collector.

TracerProvider: Die Grundlage des OTel-Tracings

Der TracerProvider ist das zentrale Konfigurationsobjekt in OpenTelemetry. Er enthält die Liste der SpanProcessors (die bestimmen, was mit abgeschlossenen Spans geschieht), die Resource, die Ihre Anwendung beschreibt (Servicename, Version), sowie alle Sampling-Konfigurationen.

BatchSpanProcessor: Effizienter Export

Der BatchSpanProcessor sammelt abgeschlossene Spans im Speicher und exportiert sie in Batches, statt jeden Span einzeln zu senden. Dadurch wird die Anzahl der HTTP-Anfragen an Ihren Collector drastisch reduziert, die Browser-Performance verbessert und die Last auf dem OTel-Collector-Endpunkt verringert.

OTLPTraceExporter: An einen Collector senden

OTLPTraceExporter sendet gebündelte Spans über HTTP im JSON- oder Protobuf-Format an einen OpenTelemetry-kompatiblen Collector. Sie konfigurieren die Collector-URL (z. B. den Proxy-Endpunkt Ihres OTel Collectors), und der Exporter übernimmt Serialisierung und Wiederholungslogik automatisch.

Was ist ein Span?

Ein Span repräsentiert eine einzelne Arbeitseinheit innerhalb eines Traces: das Mounten einer Komponente, einen API-Aufruf oder eine Benutzerinteraktion. Spans haben einen Namen, eine Startzeit, eine Endzeit, einen Status (OK oder ERROR) und eine Reihe von Schlüssel-Wert-Attributen. Zusammengehörige Spans sind durch eine gemeinsame Trace-ID und Eltern-Kind-Beziehungen miteinander verknüpft.

Spans manuell starten und beenden

Sie erstellen einen Tracer mit provider.getTracer('react-app') und starten Spans mit tracer.startSpan('component-mount'). Rufen Sie nach Abschluss der Arbeit span.end() auf, um die Endzeit zu erfassen. Beenden Sie Spans immer — nicht freigegebene Spans verbrauchen Speicher und erzeugen unvollständige Daten in Ihrem Observability-Backend.

Attribute zu Spans hinzufügen

Attribute reichern Spans mit Kontextdaten an: span.setAttribute('user.id', userId) oder span.setAttribute('route', location.pathname). Attribute können in Ihrem Observability-Backend durchsucht werden und ermöglichen Abfragen wie „alle langsamen Spans für Benutzer 42 anzeigen“ oder „alle Fehler auf der Route /checkout anzeigen“.

Automatische Fetch-Instrumentierung

@opentelemetry/instrumentation-fetch ersetzt die globale fetch-Funktion per Monkey-Patching, um automatisch Spans für jede ausgehende HTTP-Anfrage zu erstellen. Der Span erfasst URL, Methode, HTTP-Statuscode und Dauer, ohne dass Sie Ihre bestehenden fetch-Aufrufe ändern müssen.

Kontextweitergabe mit W3C TraceContext

Wenn die fetch-Instrumentierung für eine ausgehende Anfrage einen Span erstellt, fügt sie den W3C-TraceContext-Header traceparent in die Anfrage ein. Das empfangende Backend liest diesen Header und setzt denselben Trace fort, wodurch ein verbundener Trace entsteht, der Browser und Server umfasst.

OTel in Ihrer React-App initialisieren

Die Initialisierung von OTel muss erfolgen, bevor Komponenten gemountet werden – typischerweise in der Einstiegdatei der App (main.tsx), vor dem Aufruf von ReactDOM.createRoot. Erstellen Sie den Provider, registrieren Sie Prozessoren und Exporter und rufen Sie provider.register() auf, damit er zum globalen TracerProvider wird.

Sampling: Trace-Volumen steuern

Das Aufzeichnen jeder Benutzerinteraktion in Anwendungen mit hohem Datenverkehr erzeugt riesige Mengen an Trace-Daten. Konfigurieren Sie im TracerProvider einen Sampler vom Typ TraceIdRatioBased (z. B. 10 % der Traces), um das Volumen zu reduzieren. Erfassen Sie mit einem Sampler vom Typ ParentBased immer 100 % der Fehler-Traces, damit kein Fehler übersehen wird.

Zweck des OTel BatchSpanProcessor

Warum wird BatchSpanProcessor in Browseranwendungen anstelle eines SimpleSpanProcessor verwendet?

Zusammenfassung der Lektion

Das OpenTelemetry JavaScript SDK instrumentiert Browser mit TracerProvider, BatchSpanProcessor und OTLPTraceExporter. Spans stellen Arbeitseinheiten dar, die durch Attribute angereichert werden. Die Fetch-Instrumentierung erstellt automatisch Spans für API-Aufrufe und fügt W3C-TraceContext-Header für verteiltes Tracing von Ende zu Ende ein. Initialisieren Sie frühzeitig, führen Sie passendes Sampling durch und beenden Sie Spans immer, um saubere Trace-Daten zu gewährleisten.

Häufig gestellte Fragen

Ist die Lektion „OpenTelemetry-Traces aus dem Browser“ kostenlos?

Ja — der vollständige Text von „OpenTelemetry-Traces aus dem Browser“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „OpenTelemetry-Traces aus dem Browser“?

Richten Sie das OTel-JavaScript-SDK in React ein, erstellen Sie Spans für Benutzerinteraktionen und exportieren Sie sie an einen Backend-Collector. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „OpenTelemetry-Traces aus dem Browser“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Frontend-Observability: Was und warum
  2. OpenTelemetry-Traces aus dem Browser
  3. Real User Monitoring und Web Vitals
  4. Frontend- und Backend-Traces korrelieren
← Zurück zu React Academy