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.
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 z dziennika dotyczące zdarzeń związanych z wydajnością
Włącz rejestrowanie debugowania w ten sposób:
W Xcode (minimalna wersja 15.2) wybierz Product > Schemat > Edytuj schemat.
W menu po lewej stronie kliknij Uruchom i wybierz kartę Argumenty.
W sekcji Arguments Passed at Launch (Argumenty przekazane przy uruchomieniu) dodaj parametr -FIRDebugEnabled.
Sprawdź, czy w logach nie ma komunikatów o błędach.
Performance Monitoring oznacza komunikaty logu tagiem Firebase/Performance, aby umożliwić Ci filtrowanie komunikatów logu.
Sprawdź, czy są dostępne te typy logów, które wskazują, że Performance Monitoring rejestruje zdarzenia związane z wydajnoś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 usługą Performance Monitoring
Jeśli dopiero zaczynasz korzystać z Performance Monitoring
(iOS+ |
Android |
Internet), poniższe wskazówki mogą pomóc w rozwiązaniu problemów związanych z wykrywaniem przez Firebase pakietu SDK lub wyświetlaniem pierwszych danych o wydajności w konsoli Firebase.
Pakiet SDK został dodany do aplikacji, ale w konsoli nadal pojawia 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. interakcjach z aplikacją). Zazwyczaj w ciągu 10 minut od uruchomienia aplikacji na stronie Wydajność konsoli konsoli Firebase pojawi się komunikat „Wykryto pakiet SDK”. Następnie w ciągu 30 minut w panelu wyświetli się wstępnie przetworzone dane.
Jeśli od dodania najnowszej wersji pakietu SDK do aplikacji minęło ponad 10 minut i wciąż nie widzisz żadnych zmian, sprawdź komunikaty logu i upewnij się, że Performance Monitoring rejestruje zdarzenia. Aby rozwiązać problem z wiadomością dotyczącą opóźnionego wykrywania opóźnionego pakietu SDK, wykonaj opisane poniżej czynności.
Aplikacja loguje zdarzenia: instrukcje rozwiązywania problemów
Jeśli nadal tworzysz aplikację lokalnie, spróbuj wygenerować więcej zdarzeń do zbierania danych:
Kontynuuj tworzenie aplikacji za pomocą symulatora lub urządzenia testowego.
generować zdarzenia, przełączając aplikację kilka razy między tłem a płaszczyzną, wchodzić z nią w interaktywność przez przewijanie ekranów lub wywoływanie żądań sieciowych.
Upewnij się, że plik konfiguracji Firebase (Google-Service-Info.plist) został prawidłowo dodany do aplikacji i nie został zmodyfikowany.
Sprawdź te kwestie:
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 Firebase Apple App ID (GOOGLE_APP_ID) wymieniony w pliku konfiguracyjnym jest prawidłowy dla Twojej aplikacji. Znajdziesz go na karcie Twoje aplikacje w ustawieniach projektusettings.
Jeśli coś jest nie tak z plikiem konfiguracyjnym w Twojej aplikacji, wykonaj te czynności:
Usuń plik konfiguracji, który jest obecnie w Twojej aplikacji.
Wykonaj te instrukcje, aby pobrać nowy plik konfiguracyjny i dodać go do aplikacji Apple.
Jeśli pakiet SDK rejestruje zdarzenia i wydaje się, że wszystko jest skonfigurowane prawidłowo, ale nadal nie widzisz komunikatu wykrywania pakietu SDK ani przetworzonych danych (po upływie 2 godzin), skontaktuj się z zespołem pomocy Firebase.
Aplikacja nie rejestruje zdarzeń: sposoby rozwiązywania problemów
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 interfejs Performance Monitoringnie jest wyłączony w czasie działania (Swift
|
Obj-C).
Konsola informuje, że pakiet SDK został wykryty, ale nie wyświetla żadnych danych
Performance Monitoring przetwarza dane zdarzenia wydajności, zanim wyświetli je 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 ma tam żadnej znanej awarii. Jeśli nie ma przerwy w działaniu usługi, skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie problemów – ogólne
Jeśli został już dodany pakiet SDK i używasz w aplikacji Performance Monitoring, te wskazówki pomogą Ci rozwiązać ogólne problemy z funkcjami i narzędziami Performance Monitoring.
Aplikacja nie loguje zdarzeń dotyczących wydajności
Jeśli brakuje Ci danych dotyczących śledzenia renderowania ekranu, wykonaj te czynności:
Upewnij się, że używasz najnowszej wersji pakietu SDK platform Apple (11.4.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 wydajności logów zbieranych automatycznie, ale nie niestandardowych logów czasu? Wypróbuj te rozwiązania:
Sprawdź konfigurację niestandardowych logów czasu kodu obsługiwanej przez interfejs Trace API, a zwłaszcza te dane:
Nazwy niestandardowych logów czasu kodu i wskaźników niestandardowych muszą spełniać te wymagania: bez odstępów na początku ani na końcu, bez znaku podkreślenia (_), a 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 logu, aby upewnić się, że Performance Monitoring rejestruje oczekiwane niestandardowe logi czasu.
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 otwarte połączenia HTTP/S mogą nie być zgłaszane.
Performance Monitoring nie raportuje żądań sieci z nieprawidłowymi nagłówkami Content-Type. Jednak żądania sieciowe bez nagłówków Content-Type będą nadal akceptowane.
Dane żądań sieciowych nie agregują się w oczekiwany sposób
Co się stało z kartą Najważniejsze problemy na karcie Wyniki na stronie głównej projektu?
Zastąpiliśmy sekcję Najważniejsze problemyNajnowszymi alertami w związku z niedawnym wprowadzeniem alertów, które automatycznie powiadamiają Cię o przekroczeniu ustawionych przez Ciebie progów. Problemy zostały wycofane i zastąpione alertami.
Selektor aplikacji u góry karty Skuteczność filtruje alerty w sekcji Najnowsze 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 wskaźników przekraczających zdefiniowane progi. Aby uniknąć pomyłek związanych z konfigurowalnymi progami wskaźników wydajności, usunęliśmy możliwość konfigurowania progów w przypadku problemów.
Co się stało z informacjami o szczegółach i danych w konsoli Firebase?
Zastąpiliśmy strony Szczegóły i dane nowym, scentralizowanym interfejsem użytkownika, aby usprawnić rozwiązywanie problemów. Ten nowy interfejs do rozwiązywania problemów oferuje te same główne funkcje, które są dostępne w sekcji Szczegóły i Dane. 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?
Performance Monitoring zbiera dane o wydajnoś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ą gromadzonych danych, Performance Monitoring korzysta z 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. Ta metoda chroni urządzenie przed zapętlanymi instrumentami, które mogą wysyłać duże ilości danych o wydajności, i zapobiega zaburzaniu pomiarów wydajności przez pojedyncze urządzenie.
Próbkowanie dynamiczne: Performance Monitoring zbiera codziennie ograniczoną liczbę logów czasu kodu i żądań sieciowych na aplikację 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ększej ilości zasobów do przechwytywania i wysyłania danych. Aby zminimalizować wpływ sesji użytkowników, Performance Monitoring może też ograniczać liczbę sesji.
Ograniczenie szybkości po stronie serwera: aby zapobiec przekroczeniu limitu próbkowania przez aplikacje, Performance Monitoring może używać próbkowania po stronie serwera do pomijania niektórych zdarzeń odbieranych z urządzeń. Chociaż tego typu ograniczenie nie zmienia skuteczności naszych danych, może powodować drobne zmiany w wzorcech, w tym:
Liczba logów czasu może się różnić od liczby uruchomień fragmentu kodu.
Ślady, które są ściśle sprzężone w kodzie, mogą zawierać 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. Nie musisz już ręcznie sprawdzać stanu progu w 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 mogę wyświetlić ścieżki na tych stronach?
Zmodyfikowaliśmy sekcję Performance Monitoring w konsoli Firebase, tak 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 logów czasu u dołu karty Panel zawiera te same informacje, które wyświetlały się na kartach Na urządzeniu i Sieć, ale ma też kilka nowych funkcji, w tym możliwość sortowania logów czasu według zmiany procentowej określonego wskaźnika. 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:
Logi czasu żądań sieciowych (zarówno gotowe, jak i niestandardowe) – 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
Ślady wczytywania strony – podkarta Wczytanie strony
Szczegółowe informacje o tabeli prześledowań oraz wyświetlaniu danych i wskaźników znajdziesz na stronie przeglądu konsoli (iOS+ | Android | Internet).
Dlaczego liczba spowolnionych i zablokowanych klatek jest niezgodna z 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, każda klatka będzie renderowana wolniej, ponieważ renderuje się mniej klatek na sekundę.
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 większa niż 60 Hz, każda klatka będzie renderowana szybciej.
Może to spowodować, że zgłoszonych zostanie mniej ujęć wolnych lub zablokowanych. Jest to obecne ograniczenie w pakiecie SDK Performance Monitoring.
Eksportowanie danych z Performance Monitoring do BigQuery trwa 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 skuteczności aktualizowane w czasie zbliżonym do rzeczywistego?
Firebase Performance Monitoring przetwarza zebrane dane o wydajności na bieżąco, dzięki czemu w konsoli Firebase wyświetlają się dane 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 możliwości przetwarzania danych w czasie zbliżonym do rzeczywistego, musisz tylko upewnić się, że Twoja aplikacja korzysta z wersji pakietu SDK Performance Monitoring, która jest zgodna 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 korzystanie z najnowszej wersji pakietu SDK. Każda z wymienionych powyżej wersji umożliwi usłudze Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Które wersje pakietu SDK Performance Monitoring są uważane za zgodne w czasie 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 korzystanie z najnowszej wersji pakietu SDK. Każda z wymienionych powyżej wersji umożliwi usłudze Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Co zrobić, 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, wszystkie dane o jej wydajności nadal będziesz widzieć w konsoli Firebase. Wyświetlenie danych o skuteczności będzie jednak 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. Niezależnie od tego, z której wersji pakietu SDK korzysta instancja aplikacji, zobaczysz dane o wydajności wszystkich użytkowników.
Jeśli jednak przeglądasz najnowsze dane (są sprzed mniej niż 36 godzin), wyświetlane dane pochodzą od użytkowników instancji aplikacji korzystających z wersji pakietu SDK zgodnej w czasie rzeczywistym. Niedawne dane obejmują jednak dane o skuteczności ze wszystkich wersji aplikacji.
[[["Ł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: 2024-11-08 UTC."],[],[]]