Rozwiązywanie problemów z monitorowaniem wydajności i najczęstsze pytania
Na tej stronie znajdziesz porady dotyczące rozwiązywania problemów z uruchomieniem Performance Monitoring lub używaniem funkcji i narzędzi Performance Monitoring.
Pierwsze sprawdzenia na potrzeby rozwiązywania problemów
Te 2 sprawdzenia to ogólne sprawdzone metody, które zalecamy zastosować przed dalszym rozwiązywaniem problemów.
1. Sprawdzanie komunikatów z dziennika pod kątem zdarzeń związanych ze skutecznością
Sprawdź wiadomości w logach, aby mieć pewność, że pakiet SDK Performance Monitoring rejestruje zdarzenia dotyczące wydajności.
Jak wyświetlać komunikaty logowania dotyczące zdarzeń związanych z wydajnością
Włącz rejestrowanie debugowania w ten sposób:
W Xcode (wersja co najmniej 15.2) kliknij Produkt >
Schemat > Edytuj schemat.
W menu po lewej stronie kliknij Uruchom, a potem wybierz kartę Argumenty.
W sekcji Argumenty przekazywane przy uruchamianiu dodaj -FIRDebugEnabled.
Sprawdź, czy w logach nie ma komunikatów o błędach.
Performance Monitoring oznacza swoje komunikaty logowania tagiem Firebase/Performance, aby można je było filtrować.
Sprawdź, czy występują te typy dzienników, które wskazują, że Performance Monitoring rejestruje zdarzenia dotyczące skuteczności:
Sprawdź panel stanu Firebase, aby dowiedzieć się, czy wystąpiła przerwa w działaniu Firebase lub usługi Performance Monitoring.
Pierwsze kroki z Performance Monitoring
Jeśli dopiero zaczynasz korzystać z Performance Monitoring (iOS+ | Android | sieć), te wskazówki dotyczące rozwiązywania problemów mogą Ci pomóc w rozwiązaniu problemów związanych z wykrywaniem pakietu SDK przez Firebase lub wyświetlaniem pierwszych danych o wydajności w konsoli Firebase.
Dodano pakiet SDK do aplikacji, ale w konsoli nadal wyświetla się komunikat o konieczności dodania pakietu SDK
Firebase może wykryć, czy do aplikacji Performance Monitoring dodano pakiet SDK, gdy otrzyma z niej informacje o zdarzeniach (np. interakcje z aplikacją).
Zwykle w ciągu 10 minut od uruchomienia aplikacji na stronie Wydajność na panelu w konsoli Firebase pojawi się komunikat „Wykryto pakiet SDK”. Następnie w ciągu 30 minut panel wyświetla wstępnie przetworzone dane.
Jeśli od dodania do aplikacji najnowszej wersji pakietu SDK minęło ponad 10 minut, a nadal nie widać żadnych zmian, sprawdź logi, aby się upewnić, że Performance Monitoring rejestruje zdarzenia. Aby rozwiązać problem z opóźnionym wykryciem pakietu SDK, wykonaj odpowiednie czynności opisane poniżej.
Aplikacja rejestruje zdarzenia: czynności związane z rozwiązywaniem problemów
Jeśli nadal tworzysz aplikację lokalnie, spróbuj wygenerować więcej zdarzeń do zbierania danych:
kontynuować tworzenie aplikacji za pomocą symulatora lub urządzenia testowego;
generować zdarzenia, przełączając aplikację kilka razy między tłem a płaszczyzną, nawiązując z nią interakcje przez przechodzenie między ekranami lub wywołując żądania sieci;
Upewnij się, że plik konfiguracji Firebase (Google-Service-Info.plist) został prawidłowo dodany do aplikacji i nie został zmodyfikowany.
Sprawdź te kwestie:
Sprawdź, czy nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, np. (2).
Plik konfiguracji znajduje się w katalogu głównym projektu Xcode i został dodany do odpowiednich elementów docelowych.
Identyfikator aplikacji Apple Firebase (GOOGLE_APP_ID) podany w pliku konfiguracyjnym jest prawidłowy dla Twojej aplikacji. Identyfikator aplikacji Firebase znajdziesz na karcie Twoje aplikacje w settingsustawieniach projektu.
Jeśli coś jest nie tak z plikiem konfiguracji w aplikacji, wykonaj te czynności:
Usuń plik konfiguracji, który jest obecnie w Twojej aplikacji.
Aby pobrać nowy plik konfiguracji i dodać go do aplikacji Apple, wykonaj te instrukcje.
Jeśli pakiet SDK rejestruje zdarzenia i wszystko wydaje się być prawidłowo skonfigurowane, 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ń:
kroki umożliwiające rozwiązanie problemu
Upewnij się, że pakiet SDK Performance Monitoring nie jest wyłączony za pomocą żadnego z tych flag w pliku Info.plist:
firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Upewnij się, że Performance Monitoring jest niewyłączony w czasie wykonywania (Swift|
Obj-C).
Konsola informuje, że pakiet SDK został wykryty, ale nie wyświetla żadnych danych
Performance Monitoring przetwarza dane zdarzeń związanych ze skutecznością przed wyświetleniem ich w panelu Skuteczność.
Jeśli od pojawienia się komunikatu „Wykryto pakiet SDK” minęło ponad 24 godziny, a nadal nie widzisz danych, sprawdź panel stanu Firebase, aby się dowiedzieć, czy nie występuje tam awaria. Jeśli nie ma przerwy w działaniu usługi, skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie ogólnych problemów
Jeśli dodasz pakiet SDK i używasz w aplikacji pakietu Performance Monitoring, te wskazówki dotyczące rozwiązywania problemów mogą pomóc w rozwiązaniu ogólnych problemów z funkcjami i narzędziami Performance Monitoring.
Aplikacja nie rejestruje zdarzeń dotyczących wydajności
Brak danych z wykresu skuteczności dotyczących śledzenia ekranu
Jeśli brakuje Ci danych dotyczących śledzenia renderowania ekranu, wykonaj te czynności:
Upewnij się, że używasz najnowszej wersji pakietu SDK na platformy Apple (11.6.0). Ślady renderowania ekranu są dostępne tylko w wersji 5.0.0 lub nowszej.
Performance Monitoring nie tworzy śladów renderowania ekranu dla kontrolerów widoku kontenera (takich jak UINavigationController i UITabBarController). Jeśli dane są dostępne tylko na tych ekranach, jest to oczekiwane działanie.
W panelu skuteczności brakuje danych z niestandardowego śledzenia
Czy widzisz dane o skuteczności dla automatycznie zebranych ścieżek ale nie dla ścieżek kodu niestandardowego? Wypróbuj te rozwiązania:
Sprawdź konfigurację ścieżek kodu niestandardowego zinstrumentowanego za pomocą Trace API, w szczególności:
Nazwy ścieżek niestandardowego kodu i danych 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 (_), a ich maksymalna długość to 32 znaki.
Wszystkie ścieżki muszą być uruchamiane i zatrzymywane. Nie rejestruje się żadnych ścieżek, które nie zostały uruchomione, zatrzymane lub zatrzymane przed rozpoczęciem.
Sprawdź komunikaty w logach, aby się upewnić, że Performance Monitoring rejestruje oczekiwane ścieżki kodu niestandardowego.
W zależności od zachowania kodu i bibliotek sieciowych używanych przez kod Performance Monitoring może raportować tylko żądania sieciowe, które zostały wykonane. Oznacza to, że połączenia HTTP/S, które pozostają otwarte, mogą nie zostać zgłoszone.
Performance Monitoring nie raportuje żądań sieci z nieprawidłowymi nagłówkami Content-Type. Nadal będą jednak akceptowane żądania sieci bez nagłówków Content-Type.
Dane żądań sieciowych nie są agregowane zgodnie z oczekiwaniami
Co się stało z kartą Najważniejsze problemy na karcie Wyniki na stronie głównej projektu?
W nawiązaniu do naszego niedawnego wprowadzenia alertów, które automatycznie wysyłają powiadomienia po przekroczeniu ustawionych przez Ciebie progów, zastąpiliśmy Najczęstsze problemyOstatnimi alertami. Problemy są teraz wycofywane i zastępowane przez alerty.
Selektor aplikacji u góry karty Skuteczność filtruje wpisy alertów w sekcji Ostatnie alerty. Wyświetlane są tylko 3 ostatnie 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ą zdefiniowane progi. Aby uniknąć nieporozumień związanych z tymi konfigurowalnymi wartościami progowymi danych o wydajności, usunęliśmy możliwość konfigurowania wartości progowych dla problemów.
Co się stało z informacjami Szczegóły i Dane w konsoli Firebase?
Zastąpiliśmy strony Szczegóły i Dane nowo zaprojektowanym, scentralizowanym interfejsem użytkownika, aby ułatwić rozwiązywanie problemów. Nowy interfejs rozwiązywania problemów udostępnia te same podstawowe funkcje, co interfejs Szczegóły i Mierniki. Więcej informacji o rozwiązywaniu problemów znajdziesz w artykule Wyświetlanie dodatkowych danych dotyczących konkretnego śledzenia.
Dlaczego liczba próbek nie jest zgodna z moimi oczekiwaniami?
Aplikacja Performance Monitoring zbiera dane o skuteczności z urządzeń użytkowników Twojej aplikacji. Jeśli Twoja aplikacja ma wielu użytkowników lub generuje dużą aktywność, Performance Monitoring może ograniczyć zbieranie danych do podzbioru urządzeń, aby zmniejszyć liczbę przetwarzanych zdarzeń. Te limity są wystarczająco wysokie, aby nawet przy mniejszej liczbie zdarzeń wartości danych nadal odzwierciedlały wrażenia użytkownika związane z aplikacją.
Aby zarządzać ilością danych, które zbieramy, Performance Monitoring używa tych opcji próbkowania:
Ograniczenie szybkości na urządzeniu: aby zapobiec nagłem wysyłaniu przez urządzenie dużej liczby ścieżek, ograniczamy liczbę ścieżek kodu i żądań sieci wysyłanych z urządzenia do 300 zdarzeń na 10 minut. Takie podejście chroni urządzenie przed instrumentacją w pętli, która może wysyłać duże ilości danych o wydajności, oraz zapobiega temu, aby pojedyncze urządzenie nie zniekształcało pomiarów wydajności.
Próbkowanie dynamiczne:Performance Monitoring zbiera ograniczoną liczbę ścieżek kodu i ścieżek żądań sieciowych na aplikację dziennie od wszystkich użytkowników aplikacji. Na urządzeniach pobierana jest dynamiczna częstotliwość próbkowania (za pomocą funkcji Firebase Remote Config), aby określić, czy losowe urządzenie powinno rejestrować i przesyłać ścieżki. Urządzenie, które nie zostało wybrane do próbkowania, nie wysyła żadnych zdarzeń. Dynamiczny współczynnik próbkowania jest specyficzny dla aplikacji i dostosowuje się, aby zapewnić, że łączna objętość zebranych danych nie przekracza limitu.
Projekty, w których włączono integrację z BigQuery, mają wyższy limit liczby śladów żądań sieciowych.
Sesje użytkownika wysyłają dodatkowe, szczegółowe dane z urządzenia użytkownika, co wymaga więcej zasobów na ich przechwytywanie i przesyłanie. Aby zminimalizować wpływ sesji użytkownika, Performance Monitoring może też ograniczyć liczbę sesji.
Ograniczanie szybkości po stronie serwera: aby aplikacje nie przekraczały limitu próbkowania, Performance Monitoring może używać próbkowania po stronie serwera, aby pomijać niektóre zdarzenia otrzymywane z urządzeń. Chociaż tego typu ograniczenie nie zmienia skuteczności naszych danych, może powodować drobne zmiany w wzorcech, w tym:
Liczba śladów może się różnić od liczby razy, kiedy fragment kodu został wykonany.
Ś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?
Zamiast karty Problemy wprowadziliśmy kartę Ostrzeżenia, która automatycznie wysyła powiadomienia, gdy przekroczone zostaną ustawione przez Ciebie progi. Aby sprawdzić stan progu, nie musisz już ręcznie sprawdzać konsoli Firebase. Więcej informacji o alertach znajdziesz w artykule Konfigurowanie alertów o problemach z wydajnością.
Co się stało z kartami Na urządzeniu i Sieć w konsoli?
Jak wyświetlić ścieżki na tych stronach?
Wprowadziliśmy zmiany w sekcji Performance Monitoring konsoli Firebase, aby na karcie Panel wyświetlały się najważniejsze dane i wszystkie logi czasu w jednym miejscu. W ramach przeprojektowania usunęliśmy strony Na urządzeniu i Sieć.
Tabela prześledzeń u dołu karty Panel zawiera te same informacje, które są widoczne na kartach Na urządzeniu i Sieć, ale z dodatkowymi funkcjami, takimi jak możliwość sortowania prześledzeń według procentowej zmiany konkretnego rodzaju danych. Aby wyświetlić wszystkie dane dotyczące konkretnego śledzenia, kliknij jego nazwę w tabeli śledzenia.
Ścieżki możesz wyświetlać na tych podrzędach w tabeli ścieżek:
śledzenia żądań sieciowych (zarówno domyślnych, jak i niestandardowych) – podkarta Żądania sieciowe.
Ścieżki niestandardowego kodu – karta Ścieżki niestandardowe
Ścieżki uruchamiania aplikacji, ścieżki aplikacji na pierwszym planie i ścieżki aplikacji działającej w tle – podkarta Ścieżki niestandardowe
Ślady renderowania ekranu – podkarta Renderowanie ekranu
Ścieżki wczytywania strony – karta Wczytywanie strony
Szczegółowe informacje o tabeli prześwietleń oraz o wyświetlaniu danych i statystyk znajdziesz na stronie przeglądu konsoli (iOS+ | Android | Internet).
Dlaczego liczba wolno wyrenderowanych i zablokowanych klatek nie jest zgodna z moimi oczekiwaniami?
Czasy renderowania spowolnionych i zablokowanych klatek są obliczane przy założeniu częstotliwości odświeżania urządzenia 60 Hz. Jeśli częstotliwość odświeżania urządzenia jest niższa niż 60 Hz, czas renderowania każdej klatki będzie dłuższy, ponieważ w sekundzie wyrenderowanych zostanie mniej klatek.
Wolniejsze czasy renderowania mogą powodować zgłaszanie większej liczby spowolnionych lub zablokowanych klatek, ponieważ więcej klatek będzie renderowanych wolniej lub zablokowanych. 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ć, że zgłoszonych zostanie mniej ujęć wolnych lub zablokowanych. Jest to obecne ograniczenie pakietu SDK Performance Monitoring.
Dane Performance Monitoring są eksportowane do BigQuery dłużej niż oczekiwano. Czy nie jest to w czasie rzeczywistym?
Jeśli masz włączoną integrację BigQuery w Firebase Performance Monitoring, Twoje dane będą eksportowane do BigQuery w ciągu 12–24 godzin od zakończenia dnia (czasu pacyficznego).
Na przykład dane z 19 kwietnia będą dostępne w BigQuery 20 kwietnia między 12:00 a północą (wszystkie daty i godziny są podane w czasie pacyficznym).
Przetwarzanie i wyświetlanie danych w czasie zbliżonym do rzeczywistego
Co oznaczają dane o wydajności otrzymywane niemal w czasie rzeczywistym?
Firebase Performance Monitoring przetwarza gromadzone dane o skuteczności w miarę ich napływania, dzięki czemu dane są wyświetlane w konsoli Firebase w czasie zbliżonym do rzeczywistego. Przetworzone dane wyświetlają się w konsoli w ciągu kilku minut od ich zebrania, stąd termin „prawie w czasie rzeczywistym”.
Jak mogę uzyskać dane o skuteczności mojej aplikacji w czasie zbliżonym do rzeczywistego?
Aby korzystać z przetwarzania danych w czasie zbliżonym do rzeczywistego, musisz tylko sprawdzić, czy Twoja aplikacja używa pakietu SDK Performance Monitoring, który jest zgodny z przetwarzaniem danych w czasie rzeczywistym.
Oto wersje pakietu SDK, które obsługują działanie 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 26.1.0 lub nowsza)
Wersja internetowa – wersja 7.14.0 lub nowsza
Pamiętaj, że zawsze zalecamy używanie najnowszej wersji pakietu SDK, ale każda wersja wymieniona powyżej umożliwi Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Które wersje pakietu SDK Performance Monitoring są uznawane za kompatybilne z czasem rzeczywistym?
Te wersje pakietu SDK są 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 26.1.0 lub nowsza)
Wersja internetowa – wersja 7.14.0 lub nowsza
Pamiętaj, że zawsze zalecamy używanie najnowszej wersji pakietu SDK, ale każda wersja wymieniona powyżej umożliwi 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 czasem rzeczywistym?
Jeśli Twoja aplikacja nie korzysta z wersji pakietu SDK zgodnej z czasem rzeczywistym, nadal będziesz mieć widoczne wszystkie dane o jej działaniu w konsoli Firebase. Wyświetlanie danych o skuteczności może jednak być opóźnione o około 36 godzin od momentu ich zebrania.
Zaktualizowałem/zaktualizowałam pakiet SDK do wersji zgodnej z czasem rzeczywistym, ale niektórzy użytkownicy nadal korzystają ze starszych wersji aplikacji. Czy nadal będę widzieć dane o jej działaniu w konsoli Firebase?
Tak. Bez względu na to, z której wersji pakietu SDK korzysta instancja aplikacji, zobaczysz dane o wydajności pochodzące od wszystkich użytkowników.
Jeśli jednak wyświetlane są najnowsze dane (starsze mniej więcej niż 36 godzin), wyświetlane dane pochodzą od użytkowników instancji aplikacji korzystających z kompatybilnej z czasem rzeczywistym wersji pakietu SDK. Dane niezaktualizowane obejmują jednak dane o skuteczności ze wszystkich wersji aplikacji.