Auf dieser Seite finden Sie Tipps zur Fehlerbehebung für den Einstieg in die Leistungsüberwachung oder die Verwendung von Leistungsüberwachungsfunktionen und -tools.
Erste Prüfungen zur Fehlerbehebung
Die folgenden zwei Überprüfungen sind allgemeine Best Practices, die jedem vor der weiteren Fehlerbehebung empfohlen werden.
1. Überprüfen Sie die Protokollmeldungen auf Leistungsereignisse
Überprüfen Sie Ihre Protokollnachrichten, um sicherzustellen, dass das Performance Monitoring SDK Leistungsereignisse erfasst.
Öffnen Sie die Entwicklertools Ihres Browsers (z. B. die Registerkarte „Netzwerk“ für Chrome Dev Tools oder im Netzwerkmonitor für Firefox ).
Aktualisieren Sie Ihre Web-App im Browser.
Überprüfen Sie Ihre Protokollnachrichten auf etwaige Fehlermeldungen.
Suchen Sie nach ein paar Sekunden in den Entwicklertools Ihres Browsers nach einem Netzwerkaufruf an
firebaselogging.googleapis.com
. Das Vorhandensein dieses Netzwerkaufrufs zeigt, dass der Browser Leistungsdaten an Firebase sendet.
Wenn Ihre App keine Leistungsereignisse protokolliert, lesen Sie die Tipps zur Fehlerbehebung .
2. Überprüfen Sie das Firebase-Status-Dashboard
Überprüfen Sie das Firebase-Status-Dashboard , falls ein bekannter Ausfall für Firebase oder die Leistungsüberwachung vorliegt.
Erste Schritte mit der Leistungsüberwachung
Wenn Sie mit der Leistungsüberwachung ( iOS+ | Android | Web ) beginnen, können die folgenden Tipps zur Fehlerbehebung bei Problemen hilfreich sein, bei denen Firebase das SDK erkennt oder Ihre ersten Leistungsdaten in der Firebase-Konsole anzeigt.
Firebase kann erkennen, ob Sie das Performance Monitoring SDK erfolgreich zu Ihrer App hinzugefügt haben, wenn es Ereignisinformationen (z. B. App-Interaktionen) von Ihrer App empfängt. Normalerweise zeigt das Performance- Dashboard der Firebase-Konsole innerhalb von 10 Minuten nach dem Start Ihrer App die Meldung „SDK erkannt“ an. Anschließend zeigt das Dashboard innerhalb von 30 Minuten die ersten verarbeiteten Daten an.
Wenn seit dem Hinzufügen der neuesten SDK-Version zu Ihrer App mehr als 10 Minuten vergangen sind und Sie immer noch keine Änderung feststellen, überprüfen Sie Ihre Protokollmeldungen , um sicherzustellen, dass die Leistungsüberwachung Ereignisse protokolliert. Führen Sie die unten beschriebenen Schritte zur Fehlerbehebung aus, um eine verzögerte SDK-Erkennungsmeldung zu beheben.
Wenn Sie noch lokal entwickeln, versuchen Sie, weitere Ereignisse für die Datenerfassung zu generieren:
Stellen Sie Ihre Web-App in einer lokalen Umgebung bereit und zeigen Sie sie an.
Generieren Sie Ereignisse, indem Sie Unterseiten für Ihre Website laden, mit Ihrer App interagieren und/oder Netzwerkanfragen auslösen. Stellen Sie sicher, dass der Browser-Tab nach dem Laden der Seite mindestens 10 Sekunden lang geöffnet bleibt.
Stellen Sie sicher, dass Ihr Firebase-Konfigurationsobjekt korrekt zu Ihrer App hinzugefügt wurde und Sie das Objekt nicht geändert haben. Überprüfen Sie insbesondere Folgendes:
- Die Firebase-Web-App-ID (
appId
) im Konfigurationsobjekt ist für Ihre App korrekt. Finden Sie Ihre Firebase-App-ID auf der Karte „Ihre Apps“ Ihrer Projekteinstellungen
Wenn mit dem Konfigurationsobjekt in Ihrer App etwas nicht stimmt, versuchen Sie Folgendes:
Löschen Sie das Konfigurationsobjekt, das Sie derzeit in Ihrer App haben.
Befolgen Sie diese Anweisungen , um ein neues Konfigurationsobjekt zu erhalten und es Ihrer Web-App hinzuzufügen.
- Die Firebase-Web-App-ID (
Wenn das SDK Ereignisse protokolliert und alles korrekt eingerichtet zu sein scheint, Sie aber immer noch keine SDK-Erkennungsmeldung oder verarbeitete Daten sehen (nach 2 Stunden), wenden Sie sich an den Firebase-Support .
Stellen Sie sicher, dass das Performance Monitoring SDK in Ihrer App korrekt initialisiert ist.
Stellen Sie sicher, dass das Performance Monitoring SDK nicht durch das folgende Flag deaktiviert wird:
-
performance.instrumentationEnabled
-
Stellen Sie sicher, dass das Caching Ihres Browsers deaktiviert ist , da der Browser sonst möglicherweise keine neuen Instrumentierungseinstellungen erfasst.
Schließen Sie die Registerkarte „Webseite“ und öffnen Sie sie erneut. Überprüfen Sie die Protokollierung erneut.
Wenn Sie gerade das Performance Monitoring SDK zu Ihrer App hinzugefügt haben, müssen Sie Ihre App möglicherweise vollständig neu starten, damit das SDK funktioniert.
Wenn Sie in Ihrer App nichts finden, was deaktiviert ist, wenden Sie sich an den Firebase-Support .
Die Leistungsüberwachung verarbeitet Leistungsereignisdaten, bevor sie im Leistungs- Dashboard angezeigt wird.
Wenn seit dem Erscheinen der Meldung „SDK erkannt“ mehr als 24 Stunden vergangen sind und Sie immer noch keine Daten sehen, überprüfen Sie das Firebase-Status-Dashboard auf einen bekannten Ausfall. Wenn kein Ausfall vorliegt, wenden Sie sich an den Firebase-Support .
Allgemeine Fehlerbehebung
Wenn Sie das SDK erfolgreich hinzugefügt haben und die Leistungsüberwachung in Ihrer App verwenden, können die folgenden Tipps zur Fehlerbehebung bei allgemeinen Problemen im Zusammenhang mit Leistungsüberwachungsfunktionen und -tools hilfreich sein.
Wenn Sie keine Protokollmeldungen zu Leistungsereignissen sehen, versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Stellen Sie sicher, dass das Performance Monitoring SDK in Ihrer App korrekt initialisiert ist.
Stellen Sie sicher, dass das Performance Monitoring SDK nicht durch das folgende Flag deaktiviert wird:
-
performance.instrumentationEnabled
-
Stellen Sie sicher, dass das Caching Ihres Browsers deaktiviert ist , da der Browser sonst möglicherweise keine neuen Instrumentierungseinstellungen erfasst.
Schließen Sie die Registerkarte „Webseite“ und öffnen Sie sie erneut. Überprüfen Sie die Protokollierung erneut.
Wenn Sie gerade das Performance Monitoring SDK zu Ihrer App hinzugefügt haben, müssen Sie Ihre App möglicherweise vollständig neu starten, damit das SDK funktioniert.
Wenn Sie in Ihrer App nichts finden, was deaktiviert ist, wenden Sie sich an den Firebase-Support .
Wenn Sie keine Daten für die erste Eingabeverzögerungsmetrik sehen, versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Beachten Sie, dass die Leistungsüberwachung die erste Eingabeverzögerungsmetrik nur dann aufzeichnet, wenn ein Benutzer innerhalb der ersten 5 Sekunden nach dem Laden der Seite auf die Webseite klickt.
Stellen Sie sicher, dass Sie Ihre App für die Messung dieser Metrik eingerichtet haben. Die erste Eingangsverzögerungsmetrik erfordert eine manuelle Einrichtung . Insbesondere müssen Sie die Polyfill-Bibliothek für diese Metrik hinzufügen. Anweisungen zur Installation finden Sie in der Dokumentation der Bibliothek.
Beachten Sie, dass das Hinzufügen dieser Polyfill-Bibliothek für die Leistungsüberwachung nicht erforderlich ist, um andere Web-App-Metriken zu melden.
Sehen Sie Leistungsdaten für automatisch erfasste Traces , aber nicht für benutzerdefinierte Code-Traces ? Versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Überprüfen Sie die Einrichtung von benutzerdefinierten Code-Traces, die über die Trace-API instrumentiert werden, insbesondere Folgendes:
- Namen für benutzerdefinierte Code-Traces und benutzerdefinierte Metriken müssen die folgenden Anforderungen erfüllen: keine führenden oder nachgestellten Leerzeichen, kein führender Unterstrich (
_
) und die maximale Länge beträgt 32 Zeichen. - Alle Traces müssen gestartet und gestoppt werden. Jede Ablaufverfolgung, die nicht gestartet, nicht gestoppt oder vor dem Start gestoppt wurde, wird nicht protokolliert.
Beachten Sie, dass Sie Ihren Trace nicht explizit starten oder stoppen müssen, wenn Sie die Methode
record()
verwenden.- Namen für benutzerdefinierte Code-Traces und benutzerdefinierte Metriken müssen die folgenden Anforderungen erfüllen: keine führenden oder nachgestellten Leerzeichen, kein führender Unterstrich (
Stellen Sie sicher, dass die Datenerfassung zur Leistungsüberwachung nicht durch das folgende Flag deaktiviert ist :
performance.dataCollectionEnabled
Dieses Flag steuert nur die Datenerfassung für benutzerdefinierte Code-Ablaufverfolgungen (nicht alle Daten).
Überprüfen Sie Ihre Protokollmeldungen, um sicherzustellen, dass die Leistungsüberwachung erwartete benutzerdefinierte Codespuren protokolliert.
Wenn Performance Monitoring Ereignisse protokolliert, aber nach 24 Stunden keine Daten angezeigt werden, wenden Sie sich an den Firebase-Support .
Wenn Ihnen Netzwerkanforderungsdaten fehlen, beachten Sie Folgendes:
Die Leistungsüberwachung erfasst automatisch Metriken für Netzwerkanfragen, die von der Browser-API gemeldet werden. Diese Berichte enthalten keine fehlgeschlagenen Netzwerkanfragen.
Abhängig vom Verhalten Ihres Codes und der von Ihrem Code verwendeten Netzwerkbibliotheken meldet die Leistungsüberwachung möglicherweise nur abgeschlossene Netzwerkanforderungen. Dies bedeutet, dass offen gelassene HTTP/S-Verbindungen möglicherweise nicht gemeldet werden.
Erfahren Sie mehr darüber , wie Performance Monitoring Netzwerkanforderungsdaten unter URL-Mustern aggregiert .
Sie können auch benutzerdefinierte URL-Muster ausprobieren!
FAQ
Wir haben „Top Issues“ durch „Recent Alerts“ ersetzt, als Folge unserer kürzlichen Einführung von Alerts, die Sie automatisch benachrichtigen, wenn die von Ihnen festgelegten Schwellenwerte überschritten werden. Probleme sind jetzt veraltet und werden durch Warnungen ersetzt.
Die Apps-Auswahl oben auf der Leistungskarte filtert die Warnungseinträge unter „Letzte Warnungen“ . Es werden nur die drei aktuellsten Warnungen für die ausgewählte(n) App(s) angezeigt.
Weitere Informationen zu Warnungen finden Sie unter Einrichten von Warnungen für Leistungsprobleme .
Performance Monitoring unterstützt Warnungen für Metriken, die definierte Schwellenwerte überschreiten. Um Verwechslungen mit diesen konfigurierbaren Schwellenwerten für Leistungsmetriken zu vermeiden, haben wir die Möglichkeit zum Konfigurieren von Schwellenwerten für Probleme entfernt.
Wir haben die Seiten „Details“ und „Metriken“ durch eine neu gestaltete, zentralisierte Benutzeroberfläche (UI) ersetzt, um die Fehlerbehebung bei Problemen zu verbessern. Diese neue Benutzeroberfläche zur Fehlerbehebung bietet dieselben Kernfunktionen wie Details und Metriken. Weitere Informationen zur Fehlerbehebung finden Sie unter Weitere Daten für eine bestimmte Ablaufverfolgung anzeigen .
Die Leistungsüberwachung erfasst Leistungsdaten von den Benutzergeräten Ihrer App. Wenn Ihre Anwendung viele Benutzer hat oder wenn die App eine große Menge an Leistungsaktivitäten generiert, kann die Leistungsüberwachung die Datenerfassung auf eine Teilmenge von Geräten beschränken, um die Anzahl der verarbeiteten Ereignisse zu reduzieren. Diese Grenzwerte sind hoch genug, sodass die Metrikwerte auch bei weniger Ereignissen immer noch repräsentativ für die App-Erfahrung Ihres Benutzers sind.
Um die von uns erfasste Datenmenge zu verwalten, nutzt Performance Monitoring die folgenden Stichprobenoptionen:
Ratenbegrenzung auf dem Gerät : Um zu verhindern, dass ein Gerät plötzliche Trace-Bursts sendet, begrenzen wir die Anzahl der von einem Gerät gesendeten Code- und Netzwerkanforderungs-Traces auf 300 Ereignisse alle 10 Minuten. Dieser Ansatz schützt das Gerät vor Instrumentenschleifen, die große Mengen an Leistungsdaten senden können, und verhindert, dass ein einzelnes Gerät die Leistungsmessungen verzerrt.
Dynamisches Sampling : Die Leistungsüberwachung erfasst pro App und für alle App-Benutzer täglich ein Limit von etwa 100 Millionen Ereignissen für Code-Traces und 100 Millionen für Netzwerkanforderungs-Traces. Auf Geräten wird eine dynamische Abtastrate abgerufen (mithilfe von Firebase Remote Config), um zu bestimmen, ob ein zufälliges Gerät Ablaufverfolgungen erfassen und senden soll. Ein Gerät, das nicht zum Sampling ausgewählt ist, sendet keine Ereignisse. Die dynamische Abtastrate ist anwendungsspezifisch und passt sich an, um sicherzustellen, dass die Gesamtmenge der gesammelten Daten unter dem Grenzwert bleibt.
Benutzersitzungen senden zusätzliche, detaillierte Daten vom Gerät eines Benutzers, wodurch mehr Ressourcen zum Erfassen und Senden der Daten erforderlich sind. Um die Auswirkungen von Benutzersitzungen zu minimieren, kann die Leistungsüberwachung auch die Anzahl der Sitzungen einschränken.
Serverseitige Ratenbegrenzung : Um sicherzustellen, dass Apps das Stichprobenlimit nicht überschreiten, verwendet die Leistungsüberwachung möglicherweise serverseitige Stichproben, um einige von Geräten empfangene Ereignisse zu verwerfen. Obwohl diese Art der Einschränkung die Effektivität unserer Metriken nicht verändert, kann sie zu geringfügigen Musterverschiebungen führen, darunter die folgenden:
- Die Anzahl der Spuren kann von der Anzahl der Ausführungen eines Codeabschnitts abweichen.
- Im Code eng gekoppelte Spuren können jeweils eine unterschiedliche Anzahl von Stichproben aufweisen.
Wir haben die Registerkarte „Probleme“ durch die Einführung von Warnungen ersetzt, die Sie automatisch benachrichtigen, wenn die von Ihnen festgelegten Schwellenwerte überschritten werden. Sie müssen die Firebase-Konsole nicht mehr manuell überprüfen, um den Status eines Schwellenwerts zu ermitteln. Weitere Informationen zu Warnungen finden Sie unter Einrichten von Warnungen für Leistungsprobleme .
Wir haben den Abschnitt „Leistungsüberwachung“ der Firebase-Konsole neu gestaltet, sodass auf der Registerkarte „Dashboard “ Ihre wichtigsten Kennzahlen und alle Ihre Traces an einem Ort angezeigt werden. Im Rahmen der Neugestaltung haben wir die Seiten „Auf dem Gerät“ und „Netzwerk“ entfernt.
Die Traces-Tabelle am unteren Rand der Registerkarte „Dashboard “ enthält dieselben Informationen wie die Registerkarten „Auf Gerät“ und „Netzwerk“ , jedoch mit einigen zusätzlichen Funktionen, einschließlich der Möglichkeit, Ihre Traces nach der prozentualen Änderung für eine bestimmte Metrik zu sortieren. Um alle Metriken und Daten für eine bestimmte Ablaufverfolgung anzuzeigen, klicken Sie in der Ablaufverfolgungstabelle auf den Ablaufverfolgungsnamen.
Sehen Sie sich Ihre Traces in den folgenden Unterregisterkarten der Traces-Tabelle an:
- Netzwerkanfrage-Traces (sowohl standardmäßig als auch benutzerdefiniert) – Unterregisterkarte „Netzwerkanfragen“.
- Benutzerdefinierte Code-Ablaufverfolgungen – Unterregisterkarte „Benutzerdefinierte Ablaufverfolgungen“.
- App-Start-, App-im-Vordergrund- und App-im-Hintergrund-Traces – Unterregisterkarte „Benutzerdefinierte Traces“.
- Bildschirm-Rendering-Spuren – Unterregisterkarte „Bildschirm-Rendering“.
- Seitenladespuren – Unterregisterkarte „Seitenladevorgang“.
Einzelheiten zur Ablaufverfolgungstabelle und zum Anzeigen von Metriken und Daten finden Sie auf der Übersichtsseite der Konsole ( iOS+ | Android | Web ).
Langsame Rendering-Frames und eingefrorene Frames werden mit einer angenommenen Geräteaktualisierungsrate von 60 Hz berechnet. Wenn die Bildwiederholfrequenz des Geräts niedriger als 60 Hz ist, ist die Renderzeit für jedes Bild geringer, da weniger Bilder pro Sekunde gerendert werden. Langsamere Renderzeiten können dazu führen, dass mehr langsame oder eingefrorene Frames gemeldet werden, da mehr Frames langsamer gerendert werden oder einfrieren. Wenn die Bildwiederholfrequenz des Geräts jedoch höher als 60 Hz ist, ist die Renderzeit für jedes Bild schneller. Dies kann dazu führen, dass weniger langsame oder eingefrorene Frames gemeldet werden. Dies ist eine aktuelle Einschränkung im Performance Monitoring SDK.
Wenn die Leistungsüberwachung das einzige Firebase -Produkt in Ihrer App ist, können Sie das eigenständige Leistungsüberwachungs -SDK (und das empfohlene Header -Skript unten) verwenden, wenn Sie interessiert sind:
- Verwenden einer Namensbibliothek
- Reduzierung Ihrer SDK -Paketgröße
- Verzögerung der Initialisierung des SDK bis nach dem Laden Ihrer Seite
Um die eigenständige SDK -Überwachungsüberwachung in Ihre App aufzunehmen und die Initialisierung nach dem Laden Ihrer Seite zu verzögern:
- Fügen Sie dem Header Ihrer Indexdatei das folgende Skript hinzu.
- Stellen Sie sicher, dass Sie das Firebase -Projektkonfigurationsobjekt Ihrer App hinzufügen.
(function(sa,fbc){function load(f,c){var a=document.createElement('script'); a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a,s);}load(sa); window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()}); })(performance_standalone, firebaseConfig);
Wo,
- performance_standalone ist
'https://www.gstatic.com/firebasejs/10.7.1/firebase-performance.js'
- firebaseConfig ist das Firebase -Konfigurationsobjekt Ihrer App
Das obige Skript lädt asynchron das eigenständige SDK und initialisiert dann Firebase , nachdem das onload
-Ereignis des Fensters feuert. Diese Taktik verringert den Einfluss, den der SDK auf Seitenlastmetriken haben könnte, da der Browser bei der Initialisierung des SDK bereits über seine Lademetriken gemeldet hat.
Nahe Datenverarbeitung und Anzeige in Echtzeit
Firebase Performance Überwachungsprozesse sammelten Leistungsdaten, die in der FireBase-Konsole nahezu Echtzeit-Daten angezeigt werden. Verarbeitete Daten werden innerhalb weniger Minuten nach seiner Sammlung in der Konsole angezeigt, daher der Begriff "nahezu Echtzeit".
Um die nahezu Echtzeit-Datenverarbeitung zu nutzen, stellen Sie sicher, dass Ihre App eine in Echtzeit kompatible SDK-Version verwendet.
Um die nahezu Echtzeit-Datenverarbeitung zu nutzen, müssen Sie nur sicherstellen, dass Ihre App eine SDK-Version der Leistungsüberwachung verwendet, die mit der Echtzeit-Datenverarbeitung kompatibel ist.
Dies sind die in Echtzeit kompatiblen SDK-Versionen:
- iOS - v7.3.0 oder später
- tvos - v8.9.0 oder höher
- Android - v19.0.10 oder höher (oder Firebase Android Bom v26.1.0 oder höher)
- Web - v7.14.0 oder höher
Beachten Sie, dass wir immer empfehlen, die neueste Version von SDK zu verwenden. Jede oben aufgeführte Version ermöglicht die Leistungsüberwachung, um Ihre Daten nahezu in Echtzeit zu verarbeiten.
Dies sind die SDK-Versionen, die mit der Echtzeit-Datenverarbeitung kompatibel sind:
- iOS - v7.3.0 oder später
- tvos - v8.9.0 oder höher
- Android - v19.0.10 oder höher (oder Firebase Android Bom v26.1.0 oder höher)
- Web - v7.14.0 oder höher
Beachten Sie, dass wir immer empfehlen, die neueste Version von SDK zu verwenden. Jede oben aufgeführte Version ermöglicht die Leistungsüberwachung, um Ihre Daten nahezu in Echtzeit zu verarbeiten.
Wenn Ihre App keine in Echtzeit kompatible SDK-Version verwendet, werden alle Leistungsdaten Ihrer App in der Firebase-Konsole angezeigt. Die Anzeige von Leistungsdaten wird jedoch nach seiner Sammlung um etwa 36 Stunden verzögert.
Ja! Unabhängig davon, welche SDK -Version eine App -Instanz verwendet, werden Sie Leistungsdaten von allen Benutzern angezeigt.
Wenn Sie jedoch die aktuellen Daten betrachten (weniger als ungefähr 36 Stunden alt), stammen die angezeigten Daten von Benutzern von App-Instanzen mit einer Echtzeit-kompatiblen SDK-Version. Die nicht-rezenten Daten enthält jedoch Leistungsdaten aus allen Versionen Ihrer App.
Kontakt mit der Firebase -Unterstützung
Wenn Sie sich an FireBase Support wenden , schließen Sie immer Ihre Firebase App ID an. Finden Sie Ihre Firebase App ID in der Your Apps -Karte Ihrer Projekteinstellungen .