0Pricing
React Academy · Lektion

Real User Monitoring und Web Vitals

Erfassen Sie LCP, FID, CLS und benutzerdefinierte Performance-Messpunkte als OTel-Metriken mithilfe der Bibliothek web-vitals.

Real User Monitoring und Web Vitals ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Die Bibliothek web-vitals

Das npm-Paket web-vitals von Google bietet eine einfache API zum Messen der Core Web Vitals in den Browsern echter Nutzer. Installieren Sie es mit `npm install web-vitals` und importieren Sie einzelne Metrik-Callbacks: onLCP, onFID (veraltet), onCLS, onFCP, onTTFB und das moderne onINP für Interaction to Next Paint.

Metrik-Callbacks und Metrikobjekte

Jeder Callback (onLCP, onCLS, onINP usw.) erhält ein Metrikobjekt mit folgenden Eigenschaften: name ('LCP'), value (Millisekunden oder ein einheitenloser Wert), rating ('good', 'needs-improvement', 'poor') und id (eine eindeutige Kennung zur Deduplizierung). Der Callback wird ausgelöst, sobald der Metrikwert endgültig feststeht.

Web Vitals an einen Analytics-Endpunkt melden

Verwenden Sie die Navigator.sendBeacon-API oder fetch, um Metriken an Ihren Analytics-Endpunkt zu melden. sendBeacon wird bevorzugt, weil die Übertragung auch nach dem Entladen der Seite fortgesetzt wird – entscheidend für Metriken wie CLS, die beim Ausblenden der Seite endgültig feststehen. Bündeln Sie nach Möglichkeit alle Metrikmeldungen in einem einzigen Beacon.

Web Vitals als OTel-Metriken senden

Um Web Vitals in OpenTelemetry zu integrieren, erstellen Sie für jede Metrik Gauge-Instrumente: `const lcp = meter.createObservableGauge('web_vitals.lcp')`. Zeichnen Sie in jedem onLCP-Callback den Wert mit relevanten Attributen (Seitenpfad, Gerätetyp) auf. Ihr Observability-Backend kann dann auf Regressionen des P75-LCP-Werts alarmieren.

Benutzerdefinierte React-Performance-Marks

Verwenden Sie für die Messung React-spezifischer Performance, die nicht von Web Vitals erfasst wird, die User Timing API: `performance.mark('render-start')` vor dem Rendern, `performance.mark('render-end')` danach und anschließend `performance.measure('component-render', 'render-start', 'render-end')`. Diese Messungen erscheinen im Performance-Tab der Chrome DevTools.

React-Profiler-API

Die React-Profiler-Komponente umschließt einen Teilbaum und ruft ihren onRender-Callback mit Zeitdaten auf: id (Profiler-ID), phase ('mount' oder 'update'), actualDuration (Renderzeit) und baseDuration (geschätzte Renderzeit ohne Memoization). Verwenden Sie dies in der Entwicklung, um langsame Komponenten zu identifizieren.

Fehlererfassung als OTel-Spans

Nicht behandelte Fehler und Promise-Ablehnungen können als OTel-Spans mit Fehlerstatus erfasst werden. Richten Sie globale Listener ein: `window.addEventListener('error', handler)` und `window.addEventListener('unhandledrejection', handler)`. Erstellen Sie einen Span, setzen Sie mit `span.setStatus({ code: SpanStatusCode.ERROR })` dessen Status, fügen Sie die Fehlermeldung und den Stacktrace als Attribute hinzu und beenden Sie den Span.

Integration von React Error Boundaries

React Error Boundaries fangen Rendering-Fehler im Komponentenbaum ab. Erstellen Sie in der Methode componentDidCatch einen OTel-Span, der den Fehler repräsentiert, setzen Sie seinen Status auf ERROR, fügen Sie error.message und componentStack als Attribute hinzu und rufen Sie span.end() auf. Dadurch werden React-Rendering-Fehler in Ihre Pipeline für verteiltes Tracing geleitet.

Source Maps zur Auflösung von Stacktraces

Minifizierter JavaScript-Code aus Produktions-Builds erzeugt unlesbare Stacktraces wie "a.b at bundle.min.js:1:84721". Laden Sie Source Maps während Ihres CI/CD-Buildprozesses in Sentry, Datadog oder Ihre OTel-Pipeline hoch, damit rohe Stacktraces automatisch in die ursprünglichen TypeScript-Dateinamen und Zeilennummern aufgelöst werden.

Sampling von RUM-Sitzungen

Das Senden vollständiger Trace-Daten für jede Sitzung ist teuer. Implementieren Sie Sitzungssampling: Weisen Sie beim ersten Laden der Seite zufällig ein Flag sessionSampled zu und speichern Sie es in sessionStorage. Initialisieren Sie das OTel-SDK und senden Sie Traces nur für ausgewählte Sitzungen (z. B. 10 %). Erfassen Sie Sitzungen mit Fehlern immer zu 100 %.

Auf Regressionen bei Web Vitals alarmieren

Als OTel-Metriken gemeldete Web Vitals ermöglichen SLO-basiertes Alerting: Überschreitet P75 LCP für mehr als 5 % der Sitzungen über ein einstündiges Zeitfenster 2,5 Sekunden, lösen Sie einen Alarm aus. So erhalten Engineering-Teams verwertbare Signale, die direkt an die Nutzererfahrung statt an Backend-Infrastrukturmetriken gekoppelt sind.

Web Vitals: onLCP-Callback

Wann wird der onLCP-Callback aus der web-vitals-Bibliothek ausgelöst?

Zusammenfassung der Lektion

Die Bibliothek web-vitals bietet einfache Callbacks zum Messen von LCP, INP, CLS, FCP und TTFB in den Browsern echter Nutzer. Melden Sie diese als OTel-Metriken für SLO-basiertes Alerting, erfassen Sie Fehler über globale Listener und React Error Boundaries als OTel-Spans und laden Sie Source Maps hoch, um minifizierte Stacktraces aufzulösen. Führen Sie Sampling für Sitzungen durch, um das Datenvolumen zu verwalten und gleichzeitig eine vollständige Fehlerabdeckung von 100 % zu gewährleisten.

Häufig gestellte Fragen

Ist die Lektion „Real User Monitoring und Web Vitals“ kostenlos?

Ja — der vollständige Text von „Real User Monitoring und Web Vitals“ 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 „Real User Monitoring und Web Vitals“?

Erfassen Sie LCP, FID, CLS und benutzerdefinierte Performance-Messpunkte als OTel-Metriken mithilfe der Bibliothek web-vitals. 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 3 von 4.

Wie lange dauert die Lektion „Real User Monitoring und Web Vitals“?

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