Performance-Monitoring in React Native: Firebase Performance und New Relic im Praxiseinsatz
AI generated
RN
native
React Native · Performance · Monitoring
Performance-Monitoring: Firebase Performance und New Relic in React Native
Automatisch erfasste Kennzahlen, eigene Traces und Alerting für Produktions-Apps

Ein Performance-Problem, das nur bei fünf Prozent der Nutzer auf bestimmten Gerätemodellen auftritt, fällt im lokalen Profiling nie auf, kostet aber messbar App-Store-Bewertungen und Retention. Firebase Performance Monitoring und New Relic Mobile schließen diese Lücke, indem sie Leistungsdaten kontinuierlich aus der echten Produktionsflotte sammeln. Dieser Artikel zeigt, welche Kennzahlen beide Werkzeuge automatisch erfassen, wie sich benutzerdefinierte Traces für kritische Nutzerflows wie Checkout oder Login einrichten lassen, und wie sinnvolle Alerting-Schwellenwerte für eine Produktions-App aussehen.

15 Min. Lesezeit Firebase Performance New Relic Monitoring APM Alerting

1. Warum Produktions-Monitoring lokales Profiling nicht ersetzt

Lokales Profiling mit Flipper oder den nativen Profilern zeigt zuverlässig, wie sich eine App auf dem eigenen Testgerät verhält, sagt aber nichts über die tatsächliche Geräte-, Netzwerk- und Betriebssystemvielfalt der echten Nutzerbasis. Ein günstiges Android-Gerät mit wenig Arbeitsspeicher, ein Nutzer mit schwacher Mobilfunkverbindung im ländlichen Raum oder eine seltene Kombination aus OS-Version und Gerätemodell erzeugen Leistungsprobleme, die im Entwicklerbüro mit aktuellem Highend-Gerät und WLAN schlicht nicht reproduzierbar sind.

Application Performance Monitoring, kurz APM, schließt diese Lücke, indem es Leistungsdaten direkt aus produktiven App-Installationen sammelt und aggregiert. Firebase Performance Monitoring und New Relic Mobile sind zwei etablierte Werkzeuge für React Native, die sich in Umfang, Preismodell und Integrationstiefe unterscheiden, aber dasselbe Grundprinzip verfolgen: automatische Basis-Metriken erfassen und benutzerdefinierte Traces für App-spezifische kritische Abläufe ergänzen.

2. Welche Kennzahlen automatisch erfasst werden

Beide Werkzeuge messen ohne zusätzlichen Code eine Reihe von Basis-Kennzahlen. Die App-Start-Zeit wird typischerweise in zwei Phasen unterteilt: die Zeit vom Prozessstart bis zum ersten sichtbaren Frame, sogenannter Cold Start oder App Start, und die Zeit bis zur tatsächlichen Interaktionsbereitschaft. Firebase Performance unterscheidet dabei explizit zwischen App Start, das automatisch beim Prozessstart beginnt, und einer manuell markierbaren Zeit bis zur ersten sinnvollen Interaktion.

Netzwerk-Latenz wird für jeden HTTP-Aufruf automatisch erfasst, sofern die verwendete Netzwerkbibliothek unterstützt wird, inklusive Antwortzeit, Statuscode und Nutzlastgröße. Frame Drops beziehungsweise die Bildwiederholrate während der App-Nutzung werden separat aufgezeichnet und lassen erkennen, an welchen Bildschirmen Nutzer tatsächlich Ruckler erleben. New Relic Mobile ergänzt diese Basis-Metriken um automatisch erfasste Netzwerk-Interaktionsdiagramme und eine Korrelation zwischen Crashes und vorausgehenden Performance-Anomalien, was Firebase Performance in dieser Tiefe nicht bietet.

3. Firebase Performance einrichten

Die Einrichtung von Firebase Performance in React Native erfolgt über das offizielle @react-native-firebase/perf-Paket, das auf dem bestehenden Firebase-Projekt aufbaut, das für Analytics oder Crashlytics ohnehin meist schon konfiguriert ist. Nach der Installation und dem nativen Setup über die google-services.json beziehungsweise GoogleService-Info.plist beginnt die automatische Erfassung von App-Start-Zeit und Netzwerk-Anfragen ohne weiteren Code.

Für Reports im Firebase-Console-Dashboard braucht es typischerweise vierundzwanzig bis achtundvierzig Stunden, bis genügend Datenpunkte aggregiert sind, um belastbare Trends anzuzeigen. Wichtig für React-Native-Projekte ist, dass Firebase Performance standardmäßig nur native Netzwerk-Anfragen über die Plattform-HTTP-Schicht erfasst; Anfragen über fetch oder axios innerhalb von JavaScript benötigen unter Umständen zusätzliche Konfiguration, damit sie korrekt der Bridge zugeordnet werden.


npm install @react-native-firebase/app @react-native-firebase/perf

# iOS: native Abhängigkeiten installieren
cd ios && pod install && cd ..

# Automatische Erfassung von App-Start und Netzwerk-Requests
# beginnt ohne weiteren Code, sobald das Modul importiert wird

4. New Relic Mobile einrichten

New Relic Mobile für React Native wird über das newrelic-react-native-agent-Paket eingebunden und erfordert einen App-Token aus dem New-Relic-Dashboard, das getrennt für iOS- und Android-Build konfiguriert wird. Anders als Firebase Performance liefert New Relic zusätzlich ein sogenanntes Mobile-APM-Dashboard mit Verteilungs-Traces, die den kompletten Weg einer Anfrage über mehrere Backend-Services hinweg nachvollziehbar machen, was besonders für Teams mit eigener Microservice-Infrastruktur relevant ist.

Die Initialisierung erfolgt früh im App-Lebenszyklus, idealerweise als erster Aufruf in index.js, noch vor dem eigentlichen App-Rendering, damit auch die frühesten Phasen des App-Starts erfasst werden. New Relic bietet zusätzlich eine explizite interactionCreate-API, mit der sich eigene, benannte Interaktionen jenseits der automatisch erfassten Netzwerk- und Start-Metriken definieren lassen.


// index.js
import NewRelic from "newrelic-react-native-agent";
import { AppRegistry } from "react-native";
import App from "./App";

NewRelic.startAgent(
  Platform.OS === "ios"
    ? "IOS_APP_TOKEN_AUS_NEW_RELIC_DASHBOARD"
    : "ANDROID_APP_TOKEN_AUS_NEW_RELIC_DASHBOARD"
);

AppRegistry.registerComponent("MyApp", () => App);

5. Benutzerdefinierte Traces für kritische Nutzerflows einrichten

Automatisch erfasste Metriken decken generische Fälle ab, sagen aber nichts über App-spezifische, geschäftskritische Abläufe wie einen mehrstufigen Checkout-Prozess oder einen Login mit biometrischer Authentifizierung. Beide Werkzeuge erlauben das Erstellen benutzerdefinierter Traces, die an einer beliebigen Codestelle gestartet und gestoppt werden und dazwischen benutzerdefinierte Attribute und Metriken sammeln können, etwa die Anzahl der Artikel im Warenkorb oder den gewählten Zahlungsanbieter.

Für den Checkout-Flow bietet sich ein einzelner Trace an, der beim Betreten des Warenkorb-Screens startet und erst nach erfolgreicher Zahlungsbestätigung endet, ergänzt um Zwischenmarkierungen für jeden einzelnen Schritt, etwa Adresseingabe, Zahlungsmethode und Bestätigung. So lässt sich im Dashboard nicht nur die Gesamtdauer, sondern auch die Dauer jedes einzelnen Teilschritts auswerten und gezielt der Schritt identifizieren, an dem Nutzer überdurchschnittlich lange verweilen oder abbrechen.


import perf from "@react-native-firebase/perf";

async function trackCheckoutFlow(cartItemCount: number) {
  const trace = await perf().startTrace("checkout_flow");
  trace.putAttribute("cart_item_count", String(cartItemCount));
  trace.putMetric("started_at_ms", Date.now());
  return trace;
}

// An den jeweiligen Schritten im Checkout-Flow aufrufen
async function onAddressSubmitted(trace: FirebasePerformanceTypes.Trace) {
  trace.putMetric("address_step_completed_at_ms", Date.now());
}

async function onPaymentConfirmed(trace: FirebasePerformanceTypes.Trace) {
  trace.putAttribute("payment_provider", "stripe");
  await trace.stop();
}

6. Frame Drops und UI-Responsivität gezielt erfassen

Frame Drops sind für React-Native-Apps besonders relevant, weil sie oft durch teure Berechnungen auf dem JavaScript-Thread verursacht werden, die den UI-Thread blockieren, etwa eine ungefilterte Liste mit tausend Einträgen ohne Virtualisierung. Beide Monitoring-Werkzeuge erfassen die Bildwiederholrate während der Nutzung, New Relic bietet zusätzlich eine explizite Slow-Rendering- und Frozen-Frame-Metrik, die einzelne Bildschirme markiert, auf denen die Bildrate wiederholt unter einen kritischen Wert fällt.

Für die Diagnose lohnt es sich, Frame-Drop-Daten mit den benutzerdefinierten Traces zu korrelieren: Fällt die Bildwiederholrate systematisch während eines bestimmten Checkout-Schritts ab, deutet das auf eine konkrete, im Code lokalisierbare Ursache hin, etwa eine teure Re-Render-Kaskade beim Aktualisieren der Warenkorbsumme. Ohne diese Korrelation bleibt eine niedrige durchschnittliche Bildwiederholrate eine abstrakte Zahl ohne konkreten Ansatzpunkt für die Behebung.

7. Alerting-Schwellenwerte für Produktions-Apps festlegen

Ein Alert, der bei jeder kleinen Schwankung auslöst, führt schnell zu Alert-Fatigue, bei der ein Team Benachrichtigungen irgendwann ignoriert, auch wenn ein echtes Problem vorliegt. Sinnvolle Schwellenwerte orientieren sich an einer Kombination aus absolutem Wert und relativer Veränderung: eine App-Start-Zeit über vier Sekunden für das fünfundneunzigste Perzentil ist unabhängig vom historischen Trend problematisch, während eine plötzliche Verdopplung der durchschnittlichen Netzwerklatenz gegenüber dem Sieben-Tage-Durchschnitt selbst bei niedrigem absoluten Wert auf ein neues Problem hindeutet.

New Relic erlaubt das Definieren solcher Baseline-basierten Alerts direkt im Dashboard, bei denen ein Schwellenwert relativ zur historischen Streuung statt als starrer Absolutwert definiert wird, was Fehlalarme durch normale Tagesschwankungen deutlich reduziert. Firebase Performance bietet dagegen einfachere, statische Schwellenwert-Alerts über Cloud Monitoring, die für kleinere Teams oft ausreichen, aber manuell nachjustiert werden müssen, wenn sich die Nutzerbasis oder die App-Nutzung über die Zeit verändert.

8. Firebase Performance oder New Relic: Auswahlkriterien

Für Teams, die bereits Firebase für Analytics, Crashlytics oder Remote Config nutzen, ist Firebase Performance die naheliegende Wahl, weil die Integration nahtlos in dieselbe Konsole und dasselbe Abrechnungsmodell einfließt und keine zusätzliche Drittanbieter-Beziehung erfordert. Für einfache bis mittlere Anforderungen an App-Start-Zeit, Netzwerk-Latenz und grundlegende Traces reicht der Funktionsumfang in den meisten Fällen völlig aus.

New Relic lohnt sich vor allem für Teams mit eigener Backend-Infrastruktur, die Ende-zu-Ende-Traces über Mobile-App und Server-Services hinweg benötigen, oder für Organisationen, die APM bereits für andere Systeme im Einsatz haben und eine einheitliche Monitoring-Plattform bevorzugen. Der höhere Funktionsumfang geht dabei mit einem entsprechend höheren Preis und einer aufwendigeren Ersteinrichtung einher, was den Mehraufwand für kleinere Projekte oft nicht rechtfertigt.

9. Datenschutz und Performance-Overhead des Monitorings selbst

Performance-Monitoring sammelt zwangsläufig gerätebezogene Daten wie Modellbezeichnung, Betriebssystemversion und Netzwerktyp, was in der EU eine Prüfung im Rahmen der DSGVO erfordert, insbesondere die Frage, ob diese Daten mit anderen Nutzerdaten verknüpft und wie lange sie gespeichert werden. Beide Anbieter bieten Konfigurationsoptionen zur Datenminimierung, etwa das Deaktivieren automatischer Nutzeridentifikation, die vor dem produktiven Einsatz geprüft und in der Datenschutzerklärung der App dokumentiert werden sollten.

Der Performance-Overhead der Monitoring-Bibliotheken selbst ist bei beiden Werkzeugen gering, typischerweise im niedrigen einstelligen Prozentbereich bei App-Start-Zeit und Speicherverbrauch, sollte aber dennoch vor dem produktiven Rollout mit aktiviertem Monitoring gegen eine Version ohne Monitoring verglichen werden. Insbesondere bei sehr vielen benutzerdefinierten Traces mit häufigen Attributzuweisungen kann sich der Overhead spürbar summieren, weshalb Traces gezielt für wirklich kritische Flows eingesetzt werden sollten statt für jede beliebige Interaktion.

Kennzahl Firebase Performance New Relic Mobile Alerting-Empfehlung
App-Start-Zeit (Cold Start) Automatisch erfasst Automatisch erfasst P95 über 4 Sekunden alarmieren
Netzwerk-Latenz Pro HTTP-Aufruf automatisch Mit verteiltem Tracing Relative Verdopplung ggü. 7-Tage-Schnitt
Frame Drops/Slow Rendering Basis-Erfassung Explizite Frozen-Frame-Metrik Wiederholt unter 30 fps auf einem Screen
Benutzerdefinierte Traces startTrace/stopTrace API interactionCreate API Pro kritischem Flow individuell festlegen
Crash-Korrelation Separat über Crashlytics Eingebaut im selben Dashboard Anstieg direkt nach Deployment prüfen

Mironsoft

React-Native-App-Entwicklung und Magento-Anbindung

Eine mobile App zum Magento-Shop, die wirklich rund läuft?

Wir entwickeln React-Native-Apps, die sauber an die Magento REST- oder GraphQL-API angebunden sind, von der ersten Codezeile bis zur Veröffentlichung im App Store und bei Google Play.

App-Konzeption

Architektur und Feature-Umfang einer Magento-angebundenen App gemeinsam planen.

Magento-API-Integration

Produktkatalog, Warenkorb und Checkout sauber an die Shop-API anbinden.

Store-Veröffentlichung

App Store- und Google-Play-Freigabeprozess ohne Stolperfallen begleiten.

10. Zusammenfassung

Performance-Monitoring: Das Wichtigste auf einen Blick

Automatische Basis-Metriken

App-Start-Zeit, Netzwerk-Latenz und Frame Drops werden ohne zusätzlichen Code erfasst.

Benutzerdefinierte Traces

Kritische Flows wie Checkout brauchen eigene Traces mit Zwischenmarkierungen für jeden Teilschritt.

Alerting

Relative, baseline-basierte Schwellenwerte reduzieren Fehlalarme deutlich stärker als starre Absolutwerte.

Tool-Wahl

Firebase Performance passt zu bestehenden Firebase-Projekten, New Relic zu Teams mit eigener Backend-APM-Infrastruktur.

11. FAQ: Performance-Monitoring: Das Wichtigste auf einen Blick

1Ersetzt Performance-Monitoring lokales Profiling mit Flipper oder Instruments?
Nein, beide Ebenen ergänzen sich. Lokales Profiling findet konkrete Ursachen im eigenen Testgerät, Produktions-Monitoring zeigt, welche Probleme auf der echten, vielfältigen Geräteflotte tatsächlich relevant sind.
2Wie lange dauert es, bis Firebase Performance verwertbare Daten liefert?
Üblicherweise vierundzwanzig bis achtundvierzig Stunden, bis genügend Datenpunkte für belastbare Trends aggregiert sind. Bei kleineren Nutzerzahlen kann es entsprechend länger dauern, bis Perzentil-Werte stabil werden.
3Erfasst Firebase Performance automatisch alle Netzwerk-Anfragen aus fetch und axios?
Nicht immer vollständig, standardmäßig werden native HTTP-Anfragen zuverlässig erfasst, während reine JavaScript-Bibliotheken unter Umständen zusätzliche Konfiguration benötigen, um korrekt zugeordnet zu werden.
4Kann ich Firebase Performance und New Relic gleichzeitig in derselben App nutzen?
Technisch ja, beide Bibliotheken lassen sich parallel einbinden, was aber den Performance-Overhead und die Wartungslast verdoppelt. In der Praxis entscheiden sich die meisten Teams für ein Werkzeug als primäre Quelle.
5Wie viele benutzerdefinierte Traces sollte eine App haben?
So wenige wie möglich, aber für jeden wirklich geschäftskritischen Flow einen. Zu viele Traces mit häufigen Attributzuweisungen erzeugen unnötigen Overhead und erschweren die Übersicht im Dashboard.
6Was ist der Unterschied zwischen App-Start und Time to Interactive?
App-Start misst die Zeit bis zum ersten sichtbaren Frame, während Time to Interactive die Zeit bis zur tatsächlichen Bedienbarkeit misst, etwa bis Daten geladen und Buttons klickbar sind. Beide Werte sollten getrennt getrackt werden, da sie unterschiedliche Probleme aufdecken.
7Wie vermeide ich Alert-Fatigue beim Team?
Relative, baseline-basierte Schwellenwerte statt starrer Absolutwerte reduzieren Fehlalarme durch normale Schwankungen deutlich. Zusätzlich hilft es, Alerts nach Schweregrad zu staffeln, statt jede Abweichung gleich zu behandeln.
8Beeinflusst das Monitoring selbst die gemessene Performance?
Der Overhead beider Werkzeuge ist gering, typischerweise im niedrigen einstelligen Prozentbereich, sollte aber vor dem produktiven Rollout gezielt gemessen werden, besonders bei vielen benutzerdefinierten Traces.
9Muss ich Nutzer über Performance-Monitoring in der Datenschutzerklärung informieren?
Ja, gerätebezogene Daten wie Modell und Betriebssystemversion fallen unter die DSGVO und müssen in der Datenschutzerklärung dokumentiert werden. Beide Anbieter bieten Optionen zur Datenminimierung, die vor dem Rollout geprüft werden sollten.
10Für welche Teamgröße lohnt sich New Relic gegenüber Firebase Performance?
New Relic lohnt sich vor allem für Teams mit eigener Backend-Infrastruktur, die Ende-zu-Ende-Traces über App und Server benötigen. Für kleinere Teams ohne komplexe Backend-Landschaft reicht Firebase Performance meist völlig aus.