Rozwiązywanie problemów z monitorowaniem wydajności i najczęstsze pytania
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Ta strona zawiera wskazówki dotyczące rozwiązywania problemów z rozpoczęciem korzystania z Performance Monitoring lub używaniem funkcji i narzędzi Performance Monitoring.
Pierwsze kroki rozwiązywania problemów
Przed rozpoczęciem dalszego rozwiązywania problemów zalecamy wykonanie tych 2 ogólnych czynności.
1. Sprawdzanie komunikatów logu pod kątem zdarzeń związanych z wydajnością
Sprawdź komunikaty logu, aby upewnić się, że pakiet SDK Performance Monitoring rejestruje zdarzenia związane z wydajnością.
Jak wyświetlać komunikaty logu dotyczące zdarzeń związanych z wydajnością
Sprawdź, czy w komunikatach logu nie ma komunikatów o błędach.
Po kilku sekundach poszukaj w narzędziach dla programistów przeglądarki wywołania sieciowego do firebaselogging.googleapis.com. Obecność tego wywołania sieciowego pokazuje, że przeglądarka wysyła dane o wydajności do Firebase.
Sprawdź w Panelu stanu Firebase, czy nie wystąpiła znana przerwa w działaniu Firebase lub Performance Monitoring.
Pierwsze kroki z Performance Monitoring
Jeśli dopiero zaczynasz korzystać z Performance Monitoring (iOS+ | Android | Web), te wskazówki dotyczące rozwiązywania problemów mogą pomóc w rozwiązaniu problemów związanych z wykrywaniem pakietu SDK przez Firebase lub wyświetlaniem pierwszych danych o skuteczności w konsoli Firebase.
Pakiet SDK do wyświetlania reklam został dodany do aplikacji, ale w konsoli nadal wyświetla się komunikat o konieczności dodania pakietu SDK do wyświetlania reklam
Firebase może wykryć, czy pakiet SDK Performance Monitoring został pomyślnie dodany do aplikacji, gdy otrzyma z niej informacje o zdarzeniach (np. interakcjach z aplikacją).
Zwykle w ciągu 10 minut od uruchomienia aplikacji w panelu wydajności konsoli Firebase pojawi się komunikat „Wykryto pakiet SDK”. Następnie w ciągu 30 minut na panelu pojawią się pierwsze przetworzone dane.
Jeśli od dodania najnowszej wersji pakietu SDK do aplikacji minęło więcej niż 10 minut i nadal nie widzisz żadnych zmian, sprawdź komunikaty logu, aby upewnić się, że Performance Monitoring rejestruje zdarzenia. Aby rozwiązać problem z opóźnionym komunikatem o wykryciu pakietu SDK, wykonaj odpowiednie czynności opisane poniżej.
Aplikacja rejestruje zdarzenia: czynności związane z rozwiązywaniem problemów
Jeśli nadal pracujesz lokalnie, spróbuj wygenerować więcej zdarzeń na potrzeby zbierania danych:
wyświetlić aplikację internetową w środowisku lokalnym,
Wygeneruj zdarzenia, wczytując podstrony witryny, wchodząc w interakcje z aplikacją lub wywołując żądania sieciowe. Po wczytaniu strony pozostaw kartę przeglądarki otwartą przez co najmniej 10 sekund.
Upewnij się, że obiekt konfiguracji Firebase został prawidłowo dodany do aplikacji i nie został zmodyfikowany. Sprawdź te elementy:
Identyfikator aplikacji internetowej Firebase (appId) w obiekcie konfiguracji jest prawidłowy dla Twojej aplikacji w Firebase. Identyfikator aplikacji w Firebase znajdziesz na karcie Twoje aplikacje w settingsUstawieniach projektu.
Jeśli coś wydaje się nie tak z obiektem konfiguracji w aplikacji, spróbuj wykonać te czynności:
Usuń obiekt konfiguracji, który obecnie znajduje się w aplikacji.
Aby uzyskać nowy obiekt konfiguracji i dodać go do aplikacji internetowej, postępuj zgodnie z tymi instrukcjami.
Jeśli pakiet SDK rejestruje zdarzenia i wszystko wydaje się być skonfigurowane prawidłowo, ale nadal nie widzisz komunikatu o wykryciu pakietu SDK ani przetworzonych danych (po 2 godzinach), skontaktuj się z zespołem pomocy Firebase.
Aplikacja nie rejestruje zdarzeń: instrukcje rozwiązywania problemów
Upewnij się, że pakiet SDK Performance Monitoring jest prawidłowo zainicjowany w aplikacji.
Upewnij się, że pakiet SDK Performance Monitoringnie jest wyłączony za pomocą tej flagi:
performance.instrumentationEnabled
Upewnij się, że zapisywanie w pamięci podręcznej przeglądarki jest wyłączone, ponieważ w przeciwnym razie przeglądarka może nie wykryć nowych ustawień instrumentacji.
Zamknij i ponownie otwórz kartę strony internetowej. Sprawdź, czy logowanie działa.
Jeśli pakiet SDK Performance Monitoring został właśnie dodany do aplikacji, może być konieczne jej ponowne uruchomienie, aby pakiet SDK zaczął działać.
Konsola informuje, że pakiet SDK został wykryty, ale nie wyświetlają się żadne dane
Performance Monitoring przetwarza dane zdarzeń dotyczących wydajności, zanim wyświetli je w panelu wydajności.
Jeśli od wyświetlenia komunikatu „Wykryto pakiet SDK” minęło ponad 24 godziny, a dane nadal nie są widoczne, sprawdź panel stanu Firebase, aby dowiedzieć się, czy nie wystąpiła znana przerwa w działaniu. Jeśli nie ma przerwy w działaniu, skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie problemów ogólnych
Jeśli udało Ci się dodać pakiet SDK i używasz Performance Monitoring w aplikacji, te wskazówki dotyczące rozwiązywania problemów mogą pomóc w rozwiązaniu ogólnych problemów związanych z funkcjami i narzędziami Performance Monitoring.
Aplikacja nie rejestruje zdarzeń związanych z wydajnością
Upewnij się, że pakiet SDK Performance Monitoring jest prawidłowo zainicjowany w aplikacji.
Upewnij się, że pakiet SDK Performance Monitoringnie jest wyłączony za pomocą tej flagi:
performance.instrumentationEnabled
Upewnij się, że zapisywanie w pamięci podręcznej przeglądarki jest wyłączone, ponieważ w przeciwnym razie przeglądarka może nie wykryć nowych ustawień instrumentacji.
Zamknij i ponownie otwórz kartę strony internetowej. Sprawdź, czy logowanie działa.
Jeśli pakiet SDK Performance Monitoring został właśnie dodany do aplikacji, może być konieczne jej ponowne uruchomienie, aby pakiet SDK zaczął działać.
Sprawdź, czy użytkownik wchodzi w interakcję ze stroną w ciągu 5 sekund od jej wczytania.
Performance Monitoring rejestruje FID tylko w tym okresie.
W panelu wydajności brakuje niestandardowych danych śledzenia
Czy widzisz dane o skuteczności dotyczące automatycznie zbieranych logów czasu, ale nie logów czasu niestandardowego kodu? Wykonaj następujące czynności rozwiązywania problemów:
Sprawdź konfigurację niestandardowych śladów kodu instrumentowanych za pomocą interfejsu Trace API, a w szczególności:
Nazwy niestandardowych logów czasu kodu i wskaźników niestandardowych muszą spełniać te wymagania: nie mogą zawierać spacji na początku ani na końcu, nie mogą zaczynać się od znaku podkreślenia (_) i mogą mieć maksymalnie 32 znaki.
Wszystkie logi czasu muszą zostać uruchomione i zatrzymane. Ślady, które nie zostały uruchomione, zatrzymane lub zatrzymane przed uruchomieniem, nie będą rejestrowane.
Pamiętaj, że jeśli używasz metody record(), nie musisz jawnie rozpoczynać ani zatrzymywać śledzenia.
W panelu wydajności brakuje danych o żądaniach sieciowych
Jeśli brakuje Ci danych o żądaniach sieciowych, pamiętaj o tych kwestiach:
Performance Monitoring automatycznie zbiera dane o żądaniach sieciowych zgłaszanych przez interfejs API przeglądarki. Te raporty nie uwzględniają nieudanych żądań sieciowych.
W zależności od zachowania kodu i używanych przez niego bibliotek sieciowych Performance Monitoring może raportować tylko o zakończonych żądaniach sieciowych.
Oznacza to, że połączenia HTTP/S, które pozostają otwarte, mogą nie być zgłaszane.
Dane żądań sieciowych nie są agregowane zgodnie z oczekiwaniami
Co się stało z sekcją Najważniejsze problemy na karcie Wydajność na stronie głównej projektu?
Zastąpiliśmy Najważniejsze problemyOstatnimi alertami, ponieważ niedawno wprowadziliśmy alerty, które automatycznie powiadamiają Cię o przekroczeniu ustawionych progów. Problemy zostały wycofane i zastąpione alertami.
Selektor aplikacji u góry karty Skuteczność filtruje wpisy alertów w sekcji Ostatnie alerty. Wyświetlane są tylko 3 najnowsze alerty dotyczące wybranych aplikacji.
Co się stało z możliwością ustawiania progów dla problemów w konsoli?
Performance Monitoring obsługuje alerty dotyczące danych, które przekraczają określone progi. Aby uniknąć nieporozumień związanych z tymi konfigurowalnymi progami wskaźników skuteczności, usunęliśmy możliwość konfigurowania progów dla problemów.
Co się stało z informacjami w sekcjach Szczegóły i Dane w konsoli Firebase?
Zastąpiliśmy strony Szczegóły i Dane nowym, scentralizowanym interfejsem, aby ułatwić rozwiązywanie problemów. Ten nowy interfejs rozwiązywania problemów oferuje tę samą główną funkcjonalność, która była dostępna w sekcjach Szczegóły i Dane. Więcej informacji o rozwiązywaniu problemów znajdziesz w artykule Wyświetlanie dodatkowych danych dotyczących konkretnego logu czasu oczekiwania.
Dlaczego liczba próbek nie jest taka, jakiej oczekuję?
Performance Monitoring zbiera dane o skuteczności z urządzeń użytkowników aplikacji. Jeśli aplikacja ma wielu użytkowników lub generuje dużą aktywność związaną z wydajnością, Performance Monitoring może ograniczyć zbieranie danych do podzbioru urządzeń, aby zmniejszyć liczbę przetwarzanych zdarzeń. Te limity są na tyle wysokie, że nawet przy mniejszej liczbie zdarzeń wartości danych nadal odzwierciedlają wrażenia użytkowników aplikacji.
Aby zarządzać ilością zbieranych danych, Performance Monitoring używa tych opcji próbkowania:
Ograniczanie liczby żądań na urządzeniu: aby zapobiec wysyłaniu przez urządzenie nagłych serii logów czasu, ograniczamy liczbę logów czasu kodu i logów czasu żądań sieciowych wysyłanych z urządzenia do 300 zdarzeń co 10 minut. Takie podejście chroni urządzenie przed zapętlonymi instrumentacjami, które mogą wysyłać duże ilości danych o skuteczności, i zapobiega zniekształcaniu pomiarów wydajności przez pojedyncze urządzenie.
Dynamiczne próbkowanie:Performance Monitoring zbiera ograniczoną liczbę logów czasu kodu i logów czasu żądań sieciowych na aplikację dziennie u wszystkich użytkowników aplikacji. Na urządzeniach jest pobierana dynamiczna częstotliwość próbkowania (za pomocą Firebase Remote Config), aby określić, czy losowe urządzenie powinno przechwytywać i wysyłać logi czasu. Urządzenie, które nie zostało wybrane do próbkowania, nie wysyła żadnych zdarzeń. Dynamiczna częstotliwość próbkowania jest zależna od aplikacji i jest dostosowywana tak, aby łączna ilość zebranych danych nie przekraczała limitu.
Sesje użytkowników wysyłają dodatkowe, szczegółowe dane z urządzenia użytkownika, co wymaga więcej zasobów do przechwytywania i wysyłania danych. Aby zminimalizować wpływ sesji użytkowników, Performance Monitoring może też ograniczyć liczbę sesji.
Ograniczanie liczby żądań po stronie serwera: aby aplikacje nie przekraczały limitu próbkowania, Performance Monitoring może używać próbkowania po stronie serwera do odrzucania niektórych zdarzeń otrzymanych z urządzeń. Chociaż ten rodzaj ograniczenia nie wpływa na skuteczność naszych danych, może powodować niewielkie zmiany wzorców, w tym:
Liczba logów czasu może się różnić od liczby wykonań fragmentu kodu.
Ślady, które są ściśle powiązane w kodzie, mogą mieć różną liczbę próbek.
Co się stało z kartą Problemy w konsoli?
Zastąpiliśmy kartę Problemy alertami, które automatycznie powiadamiają Cię o przekroczeniu ustawionych progów. Nie musisz już ręcznie sprawdzać konsoli Firebase, aby określić stan progu. Więcej informacji o alertach znajdziesz w artykule Konfigurowanie alertów dotyczących problemów z wydajnością.
Co się stało z kartami Na urządzeniu i Sieć w konsoli?
Jak mogę wyświetlić logi czasu oczekiwania, które były na tych stronach?
Zmieniliśmy sekcję Performance Monitoring w konsoli Firebase, aby na karcie Panel wyświetlały się najważniejsze dane i wszystkie logi czasu w jednym miejscu. W ramach zmian usunęliśmy strony Na urządzeniu i Sieć.
Tabela śladów u dołu karty Panel zawiera te same informacje co karty Na urządzeniu i Sieć, ale ma też pewne dodatkowe funkcje, m.in. możliwość sortowania śladów według zmiany procentowej określonych danych. Aby wyświetlić wszystkie dane i wskaźniki dotyczące konkretnego logu czasu, kliknij jego nazwę w tabeli logów czasu.
Ślady możesz wyświetlać na tych podkartach tabeli śladów:
Logi czasu żądań sieciowych (zarówno gotowe, jak i niestandardowe) – podkarta Żądania sieciowe.
Ślady niestandardowego kodu – podkarta Ślady niestandardowe
Ślady uruchomienia aplikacji, aplikacji na pierwszym planie i aplikacji w tle – podkarta Ślady niestandardowe
Ślady renderowania ekranu – podkarta Renderowanie ekranu
Ślady wczytywania strony – podkarta Wczytywanie strony
Szczegółowe informacje o tabeli logów czasu oraz wyświetlaniu danych i statystyk znajdziesz na stronie przeglądu konsoli (iOS+ | Android | Web).
Dlaczego liczba powolnych i zamrożonych klatek jest inna, niż się spodziewam?
Powolne renderowanie klatek i zawieszone klatki są obliczane przy założeniu, że częstotliwość odświeżania urządzenia wynosi 60 Hz. Jeśli częstotliwość odświeżania urządzenia jest niższa niż 60 Hz, każda klatka będzie miała dłuższy czas renderowania, ponieważ na sekundę renderowanych jest mniej klatek.
Dłuższy czas renderowania może powodować zgłaszanie większej liczby wolnych lub zawieszonych klatek, ponieważ więcej klatek będzie renderowanych wolniej lub będzie się zawieszać. Jeśli jednak częstotliwość odświeżania urządzenia jest wyższa niż 60 Hz, czas renderowania każdej klatki będzie krótszy.
Może to spowodować zgłaszanie mniejszej liczby powolnych lub zawieszonych klatek. Jest to obecne ograniczenie pakietu SDK Performance Monitoring.
Jak dodać do aplikacji internetowej mniejszy pakiet JS SDK Performance Monitoring z przestrzenią nazw („samodzielny” pakiet SDK)?
Jeśli Performance Monitoring to jedyna usługa Firebase w Twojej aplikacji, możesz użyć samodzielnego pakietu SDK Performance Monitoring (oraz zalecanego skryptu nagłówka poniżej), jeśli interesują Cię:
używanie biblioteki z przestrzenią nazw
zmniejszenie rozmiaru pakietu SDK,
opóźnienie inicjowania pakietu SDK do momentu wczytania strony,
Aby uwzględnić samodzielny pakiet SDK Performance Monitoring w aplikacji i opóźnić jego inicjowanie do momentu wczytania strony:
Powyższy skrypt asynchronicznie wczytuje samodzielny pakiet SDK, a następnie inicjuje Firebase po wywołaniu zdarzenia onload okna. Ta taktyka zmniejsza wpływ, jaki pakiet SDK może mieć na dane dotyczące wczytywania strony, ponieważ przeglądarka zgłosiła już dane dotyczące wczytywania, gdy inicjujesz pakiet SDK.
Więcej informacji o samodzielnym pakiecie SDK Performance Monitoring i skrypcie nagłówka
Ten samodzielny pakiet SDK jest zoptymalizowany pod kątem rozmiaru. Po skompresowaniu za pomocą Gzip ma około 10 KB. Ma wszystkie funkcje Firebase Performance Monitoring oraz minimalny zestaw podstawowych funkcji pakietu SDK Firebase.
Firebase Performance Monitoring używa interfejsów API fetch i Promise, które nie są dostępne w starszych przeglądarkach. Polyfille dla tych interfejsów API są zawarte w standardowym pakiecie JS SDK Firebase Performance Monitoring, ale zostały pominięte w samodzielnym pakiecie SDK, aby zmniejszyć jego rozmiar.
Pakiet SDK Performance Monitoring częściowo korzysta z interfejsu Resource Timing API, aby uzyskiwać z przeglądarki dane o wczytywaniu strony.
Poniższy fragment kodu przedstawia skrypt nagłówka, który zawiera, a następnie opóźnia inicjowanie pakietu SDK:
(function(sdkSource,firebaseConfigObject){functionload(f,c){//CreatesascripttagtoloadthestandaloneSDKvarsdkScript=document.createElement('script');//Setsittoanasyncscriptsothatitdoesn't interfere with page loadsdkScript.async=1;//SetsthesourceofthescriptsdkScript.src=f;//Insertsthescriptintotheheadofthepagevars=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(sdkScript,s);}//Callstheloadmethodload(sdkSource);//InitializestheSDKonlywhentheonloadmethodiscalledwindow.addEventListener('load',function(){firebase.initializeApp(firebaseConfigObject).performance();});})(performance_standalone,firebaseConfig);
gdzie:
performance_standalone to 'https://www.gstatic.com/firebasejs/13.0.0/firebase-performance-standalone.js'
Ile niestandardowych wzorców adresów URL mogę utworzyć?
Możesz utworzyć maksymalnie 400 niestandardowych wzorców adresów URL na aplikację i maksymalnie 100 niestandardowych wzorców adresów URL na domenę w przypadku danej aplikacji.
Przetwarzanie i wyświetlanie danych w czasie zbliżonym do rzeczywistego
Co oznaczają dane o skuteczności „w czasie zbliżonym do rzeczywistego”?
Firebase Performance Monitoring przetwarza zebrane dane o skuteczności na bieżąco, co pozwala na wyświetlanie ich w konsoli Firebase w czasie zbliżonym do rzeczywistego. Przetworzone dane są wyświetlane w konsoli w ciągu kilku minut od ich zebrania, stąd określenie „czas zbliżony do rzeczywistego”.
Jak uzyskać dane o skuteczności aplikacji w czasie zbliżonym do rzeczywistego?
Aby korzystać z przetwarzania danych w czasie zbliżonym do rzeczywistego, musisz tylko upewnić się, że Twoja aplikacja używa wersji pakietu SDK Performance Monitoring, która jest zgodna z przetwarzaniem danych w czasie rzeczywistym.
Oto wersje pakietu SDK zgodne z funkcją ochrony w czasie rzeczywistym:
iOS – wersja 7.3.0 lub nowsza,
tvOS – wersja 8.9.0 lub nowsza,
Android – wersja 19.0.10 lub nowsza (lub Firebase Android BoM w wersji 26.1.0 lub nowszej)
Internet – wersja 7.14.0 lub nowsza
Zawsze zalecamy używanie najnowszej wersji pakietu SDK, ale każda wersja wymieniona powyżej umożliwi usłudze Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Które wersje pakietu SDK Performance Monitoring są zgodne z funkcją określania stawek w czasie rzeczywistym?
Oto wersje pakietu SDK zgodne z przetwarzaniem danych w czasie rzeczywistym:
iOS – wersja 7.3.0 lub nowsza,
tvOS – wersja 8.9.0 lub nowsza,
Android – wersja 19.0.10 lub nowsza (lub Firebase Android BoM w wersji 26.1.0 lub nowszej)
Internet – wersja 7.14.0 lub nowsza
Zawsze zalecamy używanie najnowszej wersji pakietu SDK, ale każda z wymienionych powyżej wersji umożliwi usłudze Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Co się stanie, jeśli nie zaktualizuję aplikacji, aby używała wersji pakietu SDK zgodnej z określaniem stawek w czasie rzeczywistym?
Jeśli Twoja aplikacja nie używa wersji pakietu SDK zgodnej z funkcją monitorowania w czasie rzeczywistym, nadal będziesz widzieć wszystkie dane o skuteczności aplikacji w konsoli Firebase. Jednak wyświetlanie danych o skuteczności będzie opóźnione o około 36 godzin od momentu ich zebrania.
Mam zaktualizowaną wersję pakietu SDK zgodną z danymi w czasie rzeczywistym, ale niektórzy użytkownicy nadal korzystają ze starszych wersji mojej aplikacji. Czy nadal będę widzieć ich dane o skuteczności w konsoli Firebase?
Tak. Niezależnie od tego, której wersji pakietu SDK używa instancja aplikacji, zobaczysz dane o skuteczności dotyczące wszystkich użytkowników.
Jeśli jednak przeglądasz najnowsze dane (sprzed mniej niż około 36 godzin), wyświetlane dane pochodzą od użytkowników instancji aplikacji korzystających z wersji pakietu SDK zgodnej z czasem rzeczywistym. Starsze dane obejmują jednak dane o skuteczności ze wszystkich wersji aplikacji.
Dlaczego nie widzę danych o skuteczności w czasie rzeczywistym?
Aby wyświetlać dane o skuteczności w czasie rzeczywistym, upewnij się, że Twoja aplikacja korzysta z pakietu SDK Performance Monitoring w wersji zgodnej z przetwarzaniem danych w czasie rzeczywistym.
iOS – wersja 7.3.0 lub nowsza,
tvOS – wersja 8.9.0 lub nowsza,
Android – wersja 19.0.10 lub nowsza (lub Firebase Android BoM w wersji 26.1.0 lub nowszej)
Internet – wersja 7.14.0 lub nowsza
Zawsze zalecamy używanie najnowszej wersji pakietu SDK, ale każda wersja wymieniona powyżej umożliwi usłudze Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2026-10-16 UTC."],[],[]]