Auf dieser Seite finden Sie Tipps zur Fehlerbehebung für die ersten Schritte mit Performance Monitoring oder für die Verwendung von Performance Monitoring-Funktionen und -Tools.
Erste Schritte zur Fehlerbehebung
Die folgenden beiden Prüfungen sind allgemeine Best Practices, die vor der weiteren Fehlerbehebung empfohlen werden.
1. Logeinträge auf Leistungsereignisse prüfen
Prüfen Sie anhand der Log-Nachrichten, ob das Performance Monitoring SDK Leistungsereignisse erfasst.
So rufen Sie Logeinträge für Leistungsereignisse auf
So aktivieren Sie die Debug-Protokollierung:
Wählen Sie in Xcode (mindestens Version 15.2) Produkt > Schema > Schema bearbeiten aus.
Wählen Sie im Menü auf der linken Seite Ausführen und dann den Tab Argumente aus.
Fügen Sie im Abschnitt Beim Start übergebene Argumente-FIRDebugEnabled hinzu.
Prüfen Sie die Protokollmeldungen auf Fehler.
Performance Monitoring kennzeichnet seine Logmeldungen mit Firebase/Performance, damit Sie sie filtern können.
Prüfen Sie die folgenden Arten von Logs, die darauf hinweisen, dass Performance Monitoring Leistungsereignisse protokolliert:
Klicken Sie auf die URL, um Ihre Daten in der Firebase Console aufzurufen. Es kann einen Moment dauern, bis die Daten im Dashboard aktualisiert werden.
Wenn Ihre Anwendung keine Leistungsereignisse protokolliert, lesen Sie die Tipps zur Fehlerbehebung.
2. Firebase-Status-Dashboard prüfen
Sehen Sie im Firebase-Status-Dashboard nach, ob ein bekannter Ausfall für Firebase oder Performance Monitoring vorliegt.
Erste Schritte mit Performance Monitoring
Bei den ersten Schritten mit Performance Monitoring (iOS+ | Android | Web) 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 angezeigt werden.
Ich habe das SDK der App hinzugefügt, aber in der Console wird weiterhin angezeigt, dass ich das SDK hinzufügen soll.
Firebase kann erkennen, ob Sie Ihrer App das Performance Monitoring SDK hinzugefügt haben, wenn es Ereignisinformationen (z. B. App-Interaktionen) von Ihrer App empfängt. In der Regel wird innerhalb von 10 Minuten nach dem Starten Ihrer App im Dashboard „Leistung“ der Firebase-Konsole die Meldung „SDK erkannt“ angezeigt. Innerhalb von 30 Minuten zeigt das Dashboard dann die ursprünglich verarbeiteten Daten an.
Wenn Sie Ihrer App vor mehr als 10 Minuten die neueste Version des SDKs hinzugefügt haben und immer noch keine Änderungen sehen, prüfen Sie die Protokollmeldungen, um sicherzustellen, dass Performance Monitoring Ereignisse protokolliert. Führen Sie die unten beschriebenen Schritte zur Fehlerbehebung aus, um eine Meldung zur verzögerten SDK-Erkennung zu beheben.
Die App protokolliert Ereignisse: Schritte zur Fehlerbehebung
Wenn Sie noch lokal entwickeln, versuchen Sie, weitere Ereignisse für die Datenerfassung zu generieren:
Fahren Sie mit der Entwicklung Ihrer App mit einem Simulator oder Testgerät fort.
Erzeugen Sie Ereignisse, indem Sie Ihre App mehrmals zwischen Hintergrund und Vordergrund wechseln, mit Ihrer App interagieren, indem Sie zwischen Bildschirmen wechseln, und/oder Netzwerkanfragen auslösen.
Prüfen Sie, ob Ihre Firebase-Konfigurationsdatei (Google-Service-Info.plist) Ihrer App korrekt hinzugefügt wurde und ob Sie die Datei nicht geändert haben.
Überprüfen Sie insbesondere Folgendes:
Der Name der Konfigurationsdatei enthält keine zusätzlichen Zeichen wie z. B. (2).
Die Konfigurationsdatei befindet sich im Stammverzeichnis Ihres XCode-Projekts und wurde den richtigen Zielen hinzugefügt.
Die in der Konfigurationsdatei aufgeführte Firebase Apple-App-ID (GOOGLE_APP_ID) ist für Ihre App korrekt. Sie finden sie in den Projekteinstellungen auf der Karte Meine Apps für settings.
Wenn die Konfigurationsdatei in Ihrer App nicht richtig aussieht, versuchen Sie Folgendes:
Löschen Sie die Konfigurationsdatei, die sich derzeit in Ihrer App befindet.
Folgen Sie dieser Anleitung, um eine neue Konfigurationsdatei herunterzuladen und Ihrer Apple-App hinzuzufügen.
Wenn das SDK Ereignisse protokolliert und alles korrekt eingerichtet zu sein scheint, aber die SDK-Erkennungsmeldung oder verarbeitete Daten immer noch nicht angezeigt werden (nach zwei Stunden), wenden Sie sich an den Firebase-Support.
Die App protokolliert keine Ereignisse: Schritte zur Fehlerbehebung
In der Console wird angezeigt, dass das SDK erkannt wurde, aber es werden keine Daten angezeigt
Performance Monitoring verarbeitet Leistungsereignisdaten, bevor sie im Dashboard „Leistung“ angezeigt werden.
Wenn mehr als 24 Stunden seit dem Erscheinen der Meldung „SDK erkannt“ vergangen sind und Sie immer noch keine Daten sehen, prüfen Sie das Firebase-Status-Dashboard, um einen bekannten Ausfall zu erhalten. Wenn kein Ausfall vorliegt, wenden Sie sich an den Firebase-Support.
Allgemeine Fehlerbehebung
Wenn du das SDK erfolgreich hinzugefügt hast und Performance Monitoring in deiner App verwendest, können dir die folgenden Tipps zur Fehlerbehebung bei allgemeinen Problemen im Zusammenhang mit den Funktionen und Tools von Performance Monitoring helfen.
Im Dashboard zur Leistungsüberwachung fehlen Bildschirm-Trace-Daten
Wenn Daten für Bildschirm-Rendering-Traces fehlen, führen Sie die folgenden Schritte zur Fehlerbehebung aus:
Im Dashboard zur Leistungsüberwachung fehlen benutzerdefinierte Trace-Daten
Sehen Sie Leistungsdaten für automatisch erfasste Traces, aber nicht für benutzerdefinierte Code-Traces? Führen Sie die folgenden Schritte zur Fehlerbehebung aus:
Prüfen Sie die Einrichtung benutzerdefinierter Code-Traces, die über die Trace API instrumentiert wurden. Prüfen Sie insbesondere Folgendes:
Namen für benutzerdefinierte Code-Traces und benutzerdefinierte Messwerte müssen die folgenden Anforderungen erfüllen: keine anführenden oder nachgestellten Leerzeichen, kein anführendes Unterstrichzeichen (_) und eine maximale Länge von 32 Zeichen.
Alle Traces müssen gestartet und beendet werden. Alle Protokolle, die nicht gestartet, nicht angehalten oder vor dem Start angehalten wurden, werden nicht protokolliert.
Prüfen Sie die Protokollmeldungen, um sicherzustellen, dass Performance Monitoring die erwarteten benutzerdefinierten Code-Traces protokolliert.
Abhängig vom Verhalten Ihres Codes und der von Ihrem Code verwendeten Netzwerkbibliotheken meldet Performance Monitoring möglicherweise nur abgeschlossene Netzwerkanfragen. Das bedeutet, dass HTTP/S-Verbindungen, die offen bleiben, möglicherweise nicht gemeldet werden.
Performance Monitoring meldet keine Netzwerkanfragen mit ungültigen Content-Type-Headern. Netzwerkanfragen ohne Content-Type-Header werden jedoch weiterhin akzeptiert.
Netzwerkanfragedaten werden nicht wie erwartet zusammengefasst
Was ist mit den häufigsten Problemen auf der Karte „Leistung“ auf der Projektstartseite passiert?
Wir haben Häufigste Probleme durch Letzte Benachrichtigungen ersetzt. Dies ist eine Folge der Einführung von Benachrichtigungen, die Sie automatisch informieren, wenn die von Ihnen festgelegten Grenzwerte überschritten werden. Probleme wurden verworfen und durch Benachrichtigungen ersetzt.
Mit der Anwendungsauswahl oben auf der Karte „Leistung“ werden die Benachrichtigungseinträge unter Letzte Benachrichtigungen herausgefiltert. Es werden nur die drei letzten Benachrichtigungen für die ausgewählten Apps angezeigt.
Wo ist die Möglichkeit geblieben, Grenzwerte für Probleme in der Konsole festzulegen?
Performance Monitoring unterstützt Benachrichtigungen für Messwerte, die festgelegte Schwellenwerte überschreiten. Um Verwechslungen mit diesen konfigurierbaren Grenzwerten für Leistungsmesswerte zu vermeiden, haben wir die Möglichkeit entfernt, Grenzwerte für Probleme zu konfigurieren.
Was ist mit den Details und Messwerten in der Firebase-Konsole passiert?
Wir haben die Seiten „Details“ und „Messwerte“ durch eine neu gestaltete, zentralisierte Benutzeroberfläche (UI) ersetzt, um die Fehlerbehebung zu erleichtern. Diese neue Benutzeroberfläche für die Fehlerbehebung bietet dieselben grundlegenden Funktionen wie „Details“ und „Messwerte“. Weitere Informationen zur Fehlerbehebung finden Sie unter Weitere Daten für einen bestimmten Trace ansehen.
Warum entspricht die Anzahl der Stichproben nicht meinen Erwartungen?
Performance Monitoring erhebt Leistungsdaten von den Nutzergeräten Ihrer App. Wenn Ihre Anwendung viele Nutzer hat oder wenn sie eine große Menge an Leistungsaktivitäten generiert, kann Performance Monitoring die Datenerfassung auf eine Teilmenge von Geräten beschränken, um die Anzahl der verarbeiteten Ereignisse zu reduzieren. Diese Limits sind so hoch, dass die Messwerte auch bei weniger Ereignissen repräsentativ für die App-Nutzung Ihrer Nutzer sind.
Zur Verwaltung der von uns erhobenen Datenmenge verwendet Performance Monitoring die folgenden Optionen für die Stichprobenerhebung:
Taktbeschränkung auf dem Gerät: Um zu verhindern, dass ein Gerät plötzlich viele Traces sendet, beschränken wir die Anzahl der Code- und Netzwerkanfrage-Traces, die von einem Gerät gesendet werden, auf 300 Ereignisse alle 10 Minuten. Dieser Ansatz schützt das Gerät vor Instrumenten in Schleife, die große Mengen an Leistungsdaten senden können, und verhindert, dass ein einzelnes Gerät die Leistungsmessungen verfälscht.
Dynamisches Sampling:Performance Monitoring erfasst täglich eine begrenzte Anzahl von Code-Traces und Netzwerkanfrage-Traces pro App für alle App-Nutzer. Von Geräten wird (mit Firebase Remote Config) eine dynamische Abtastrate abgerufen, um zu bestimmen, ob ein zufälliges Gerät Traces erfassen und senden soll. Ein Gerät, das nicht für die Stichprobenerhebung ausgewählt ist, sendet keine Ereignisse. Die dynamische Stichprobenrate ist anwendungsspezifisch und wird so angepasst, dass das Gesamtvolumen der erfassten Daten unter dem Limit bleibt.
Projekte, die die BigQuery-Integration aktiviert haben, erhalten ein höheres Limit für die Anzahl der Traces von Netzwerkanfragen.
Bei Nutzersitzungen werden zusätzliche, detaillierte Daten vom Gerät eines Nutzers gesendet. Das Erfassen und Senden der Daten erfordert mehr Ressourcen. Um die Auswirkungen von Nutzersitzungen zu minimieren, kann Performance Monitoring auch die Anzahl der Sitzungen begrenzen.
Serverseitige Ratenbegrenzung: Damit Apps das Limit für die Stichprobenerhebung nicht überschreiten, kann Performance Monitoring mithilfe von serverseitigen Stichproben einige Ereignisse löschen, die von Geräten empfangen werden. Diese Art der Begrenzung ändert zwar nicht die Effektivität unserer Messwerte, kann aber zu geringfügigen Musterverschiebungen führen, darunter:
Die Anzahl der Traces kann von der Häufigkeit abweichen, mit der ein Code ausgeführt wurde.
Im Code eng gekoppelte Traces können jeweils eine unterschiedliche Anzahl von Beispielen haben.
Was ist mit dem Tab Probleme in der Console passiert?
Wir haben den Tab „Probleme“ durch die Einführung von Benachrichtigungen ersetzt, die dich automatisch benachrichtigen, wenn die von dir festgelegten Grenzwerte überschritten werden. Sie müssen nicht mehr manuell in der Firebase-Konsole nachsehen, um den Status eines Schwellenwerts zu ermitteln. Weitere Informationen zu Benachrichtigungen finden Sie unter Benachrichtigungen für Leistungsprobleme einrichten.
Was ist mit den Tabs Auf dem Gerät und Netzwerk in der Konsole passiert?
Wie kann ich mir die Spuren ansehen, die auf diesen Seiten vorhanden waren?
Wir haben den Bereich Performance Monitoring der Firebase-Konsole neu gestaltet, damit auf dem Tab Dashboard Ihre wichtigsten Messwerte und alle Traces an einem Ort angezeigt werden. Im Rahmen des Redesigns haben wir die Seiten Auf dem Gerät und Netzwerk entfernt.
Die Traces-Tabelle unten auf dem Tab Dashboard enthält dieselben Informationen wie die Tabs Auf dem Gerät und Netzwerk. Sie bietet jedoch einige zusätzliche Funktionen, z. B. die Möglichkeit, Traces nach der prozentualen Änderung für einen bestimmten Messwert zu sortieren. Klicken Sie in der Trace-Tabelle auf den Trace-Namen, um alle Messwerte und Daten für einen bestimmten Trace anzusehen.
Sehen Sie sich Ihre Traces auf den folgenden Untertabs der Traces-Tabelle an:
Netzwerkanfrage-Traces (sowohl vordefinierte als auch benutzerdefinierte) – Untertab Netzwerkanfragen
Traces mit benutzerdefiniertem Code – Untertab Benutzerdefinierte Traces
App-Start, App im Vordergrund, App im Hintergrund – Untertab Benutzerdefinierte Traces
Weitere Informationen zur Trace-Tabelle und zum Ansehen von Messwerten und Daten finden Sie auf der Übersichtsseite der Console (iOS+ | Android | Web).
Warum entspricht die Anzahl der langsamen und eingefrorenen Frames nicht meinen Erwartungen?
Langsame Rendering-Frames und eingefrorene Frames werden mit einer angenommenen Geräteaktualisierungsrate von 60 Hz berechnet. Wenn die Bildwiederholrate eines Geräts unter 60 Hz liegt, dauert das Rendern jedes Frames länger, da weniger Frames pro Sekunde gerendert werden.
Langsamere Renderingzeiten können dazu führen, dass mehr langsame oder eingefrorene Frames gemeldet werden, da mehr Frames langsamer gerendert werden oder einfrieren. Wenn die Bildwiederholrate eines Geräts jedoch über 60 Hz liegt, ist die Renderingzeit für jeden Frame kürzer.
Dadurch werden möglicherweise weniger langsame oder eingefrorene Frames gemeldet. Dies ist eine aktuelle Einschränkung im Performance Monitoring SDK.
Der Export meiner Performance Monitoring-Daten nach BigQuery dauert länger als erwartet. Geschieht das nicht in Echtzeit?
Wenn Sie die BigQuery-Integration für Firebase Performance Monitoring aktiviert haben, werden Ihre Daten 12 bis 24 Stunden nach Ende des Tages (Pacific Time) nach BigQuery exportiert.
Beispiel: Die Daten für den 19. April stehen in BigQuery am 20. April zwischen 12:00 Uhr und Mitternacht zur Verfügung. Alle Datums- und Uhrzeitangaben beziehen sich auf die Zeitzone Pacific Time.
Datennahe Verarbeitung und Anzeige in Echtzeit
Was bedeutet „nahezu Echtzeit“-Leistungsdaten?
Firebase Performance Monitoring verarbeitet die erfassten Leistungsdaten, sobald sie eintreffen. Die Daten werden dadurch nahezu in Echtzeit in der Firebase-Konsole angezeigt. Die verarbeiteten Daten werden innerhalb weniger Minuten nach der Erfassung in der Console angezeigt. Daher der Begriff „nahezu in Echtzeit“.
Damit Sie Datenverarbeitung nahezu in Echtzeit nutzen können, muss in Ihrer App eine Echtzeit-kompatible SDK-Version verwendet werden.
Wie erhalte ich nahezu in Echtzeit Leistungsdaten für meine App?
Wenn Sie die Echtzeitverarbeitung nutzen möchten, müssen Sie nur darauf achten, dass Ihre App eine Performance Monitoring SDK-Version verwendet, die mit der Echtzeitverarbeitung kompatibel ist.
Das sind die echtzeitkompatiblen SDK-Versionen:
iOS – Version 7.3.0 oder höher
tvOS – Version 8.9.0 oder höher
Android – Version 19.0.10 oder höher (oder Firebase Android BoM Version 26.1.0 oder höher)
Web – Version 7.14.0 oder höher
Wir empfehlen immer die neueste SDK-Version zu verwenden. Mit jeder der oben aufgeführten Versionen kann Performance Monitoring Ihre Daten jedoch nahezu in Echtzeit verarbeiten.
Welche Versionen des Performance Monitoring SDK gelten als echtzeitkompatibel?
Dies sind die SDK-Versionen, die mit der Datenverarbeitung in Echtzeit kompatibel sind:
iOS: Version 7.3.0 oder höher
tvOS – Version 8.9.0 oder höher
Android – Version 19.0.10 oder höher (oder Firebase Android BoM Version 26.1.0 oder höher)
Web – Version 7.14.0 oder höher
Wir empfehlen immer, die neueste SDK-Version zu verwenden. Mit jeder oben aufgeführten Version kann Performance Monitoring Ihre Daten jedoch nahezu in Echtzeit verarbeiten.
Was passiert, wenn ich meine App nicht auf eine mit der Echtzeitfunktion kompatible SDK-Version aktualisiere?
Wenn deine App keine echtzeitkompatible SDK-Version verwendet, siehst du trotzdem alle Leistungsdaten deiner App in der Firebase-Konsole. Die Anzeige der Leistungsdaten ist ab dem Zeitpunkt der Erfassung jedoch um etwa 36 Stunden verzögert.
Ich habe auf eine echtzeitkompatible SDK-Version umgestellt, einige meiner Nutzer verwenden aber noch alte Versionen meiner App. Werden ihre Leistungsdaten weiterhin in der Firebase-Konsole angezeigt?
Sehr gut. Unabhängig von der SDK-Version, die eine App-Instanz verwendet, werden die Leistungsdaten aller Nutzer angezeigt.
Wenn Sie sich jedoch aktuelle Daten ansehen (jünger als etwa 36 Stunden), stammen die angezeigten Daten von Nutzern von App-Instanzen, die eine Echtzeit-kompatible SDK-Version verwenden. Die nicht aktuellen Daten enthalten jedoch Leistungsdaten aus allen Versionen Ihrer App.