Możesz eksportować dane monitorowania wydajności z aplikacji Apple i Android do BigQuery w celu dalszej analizy. BigQuery umożliwia analizowanie danych za pomocą BigQuery SQL, eksportowanie ich do innego dostawcy usług w chmurze, a nawet wykorzystywanie danych w niestandardowych modelach uczenia maszynowego.
Włącz eksport BigQuery
Przejdź do strony Integracje w konsoli Firebase, a następnie kliknij Link na karcie BigQuery .
Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć BigQuery.
Gdy włączysz eksport BigQuery na potrzeby monitorowania wydajności, nastąpi to:
Firebase eksportuje kopię Twoich istniejących danych do BigQuery. Początkowa propagacja danych do eksportu może potrwać do 48 godzin.
- Możesz ręcznie zaplanować uzupełnianie danych do ostatnich 30 dni lub ostatniej daty włączenia eksportu BigQuery (w zależności od tego, która data jest najnowsza).
Po utworzeniu zestawu danych nie można zmienić lokalizacji, ale można skopiować zestaw danych do innej lokalizacji lub ręcznie przenieść (utworzyć ponownie) zestaw danych w innej lokalizacji. Aby dowiedzieć się więcej, zobacz Zmiana lokalizacji zestawu danych .
Firebase konfiguruje regularne synchronizacje Twoich danych z projektu Firebase z BigQuery. Te codzienne operacje eksportowe zwykle kończą się w ciągu 24 godzin od ich zaplanowania.
Domyślnie wszystkie aplikacje w Twoim projekcie są połączone z BigQuery. Wszystkie aplikacje, które później dodasz do projektu, są automatycznie łączone z BigQuery. Możesz zarządzać, które aplikacje wysyłają dane .
Aby dezaktywować eksport BigQuery, odłącz swój projekt w konsoli Firebase.
Jakie dane są eksportowane do BigQuery?
Dla każdej aplikacji w projekcie eksport tworzy tabelę zawierającą wszystkie przechwycone zdarzenia dotyczące wydajności. Każdy wiersz w tabeli to pojedyncze zdarzenie wydajności, które może być jednym z następujących:
Śledzenie czasu trwania — ślady, które domyślnie gromadzą metrykę „czasu trwania”, która obejmuje uruchamianie aplikacji, działanie aplikacji na pierwszym planie i działanie aplikacji w tle, a także wszelkie niestandardowe ślady kodu opracowane przez programistę
-
event_type
toDURATION_TRACE
-
event_name
jest taka sama jak nazwa śledzenia
-
Metryka śledzenia — metryki niestandardowe, które są skojarzone z niestandardowymi śladami kodu opracowanymi przez programistę
-
event_type
toTRACE_METRIC
-
event_name
to nazwa metryki -
parent_trace_name
to nazwa śledzenia, która zawiera tę metrykę
-
Ślad ekranu — ślady obejmujące cały czas życia ekranu (ślady renderowania ekranu)
-
event_type
toSCREEN_TRACE
-
event_name
to przedrostek_st_
plus rzeczywista nazwa ekranowa
-
Żądanie sieciowe — ślady obejmujące cały czas trwania żądania sieciowego (ślady żądań sieciowych HTTP)
-
event_type
toNETWORK_REQUEST
-
event_name
to skategoryzowany wzorzec adresu URL żądania sieciowego
-
Każde zdarzenie związane z wydajnością zawiera atrybuty zdarzenia (takie jak kraj i operator urządzenia klienckiego), a także informacje specyficzne dla zdarzenia:
- Ślady czasu trwania, metryki śledzenia i ślady ekranu zawierają
trace_info
- Metryki śledzenia zawierają
trace_info.metric_info
- Ślady ekranu zawierają
trace_info.screen_info
- Ślady sieciowe zawierają
network_info
Szczegółowy schemat danych
Nazwa pola | Typ | Opis |
---|---|---|
znacznik_czasu zdarzenia | znak czasu | Znacznik czasu od epoki, kiedy zdarzenie rozpoczęło się na urządzeniu klienckim (początek śledzenia, start sieci itp.) |
wersja_wyświetlana_aplikacji | strunowy | Wyświetl wersję aplikacji (na przykład „4.1.7”)
|
wersja_kompilacji_aplikacji | strunowy | Wersja kompilacji aplikacji (na przykład „1523456”)
|
os_version | strunowy | Wersja systemu operacyjnego urządzenia klienckiego
|
Nazwa urządzenia | strunowy | Nazwa urządzenia klienckiego (na przykład „Google Pixel”) |
kraj | strunowy | Dwuliterowy kod kraju, z którego miało miejsce wydarzenie (na przykład „US” lub „ZZ” w przypadku nieznanego kraju) |
przewoźnik | strunowy | Nośnik urządzenia klienckiego |
radio_typ | strunowy | Aktywny typ radia, kiedy zdarzenie miało miejsce (na przykład „WIFI”) |
niestandardowe_atrybuty | TABLICA<ZAPIS> | Wszystkie niestandardowe atrybuty dołączone do tego zdarzenia |
custom_attributes.key | strunowy | Klucz atrybutu niestandardowego |
custom_attributes.value | strunowy | Wartość atrybutu niestandardowego |
typ wydarzenia | strunowy | Rodzaj wydarzenia; możliwa wartość:
|
Nazwa wydarzenia | strunowy | Nazwa wydarzenia
|
nazwa_śledzenia_nadrzędnego | strunowy | Nazwa śladu nadrzędnego, który przenosi metrykę śledzenia Występuje tylko dla TRACE_METRIC |
informacje o śledzeniu | NAGRYWAĆ | Występuje tylko dla DURATION_TRACE , SCREEN_TRACE i TRACE_METRIC |
trace_info.duration_us | int64 |
|
informacje o śledzeniu. informacje o ekranie | NAGRYWAĆ | Obecny tylko dla SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | pływak64 | Współczynnik wolnych klatek dla tego śladu ekranu, między 0 a 1 (na przykład wartość 0,05 oznacza, że renderowanie 5% klatek dla tej instancji ekranu trwało ponad 16 ms) |
trace_info.screen_info.frozen_frame_ratio | pływak64 | Współczynnik zamrożonych klatek dla tego śladu ekranu, między 0 a 1 (na przykład wartość 0,05 oznacza, że renderowanie 5% klatek dla tej instancji ekranu trwało ponad 700 ms) |
informacje o śledzeniu. dane metryczne | NAGRYWAĆ | Występuje tylko dla TRACE_METRIC |
informacje_śledzenia.informacje_metryczne.wartość_metryki | int64 | Wartość metryki śledzenia |
informacje_sieciowe | NAGRYWAĆ | Obecny tylko dla NETWORK_REQUEST |
network_info.response_code | int64 | Kod odpowiedzi HTTP dla odpowiedzi sieciowej (na przykład 200, 404) |
network_info.response_mime_type | strunowy | Typ MIME odpowiedzi sieciowej (na przykład „text/html”) |
network_info.request_http_method | strunowy | Metoda HTTP żądania sieciowego (na przykład „GET” lub „POST”) |
network_info.request_payload_bytes | int64 | Rozmiar ładunku żądania sieciowego Jednostka: bajt |
network_info.response_payload_bytes | int64 | Rozmiar ładunku odpowiedzi sieciowej Jednostka: bajt |
network_info.request_completed_time_us | int64 | Mikrosekundy po zakończeniu event_timestamp po zakończeniu wysyłania żądania sieciowegoJednostka: mikrosekunda |
network_info.response_initiated_time_us | int64 | Mikrosekundy po event_timestamp po zainicjowaniu odpowiedzi sieciowejJednostka: mikrosekunda |
network_info.response_completed_time_us | int64 | Mikrosekundy po event_timestamp po zakończeniu odpowiedzi sieciowejJednostka: mikrosekunda |
Co możesz zrobić z wyeksportowanymi danymi?
W poniższych sekcjach znajdziesz przykłady zapytań, które możesz uruchomić w BigQuery na podstawie wyeksportowanych danych monitorowania wydajności.
Zobacz średni czas oczekiwania na uruchomienie aplikacji z podziałem na kraje
SELECT AVG(trace_info.duration_us), country FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "DURATION_TRACE" AND event_name = "_app_start" GROUP BY 2;
Sprawdź proporcje zamrożonych klatek w różnych warunkach
Na przykład możesz sprawdzić stosunek zatrzymanych klatek do czasu, jaki użytkownicy spędzają na każdym ekranie Twojej aplikacji, gdy korzystają z różnych typów łączności radiowej (WiFi, 4G itp.).
SELECT AVG(trace_info.duration_us / 1000000) AS seconds_on_screen, AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio, event_name, radio_type FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "SCREEN_TRACE" GROUP BY event_name, radio_type ORDER BY event_name, radio_type;
Oblicz współczynnik trafień w pamięci podręcznej do ładowania określonych typów plików z dysku
W tej analizie założono, że oprzyrządowano niestandardowe śledzenie kodu do ładowania z dysku z niestandardowym atrybutem o nazwie file-extension
i niestandardową metryką ( TRACE_METRIC
) o nazwie cache-hit
, która jest ustawiona na 1
w przypadku trafienia w pamięci podręcznej i 0
w przypadku braku pamięci podręcznej.
Na przykład możesz obliczyć współczynnik trafień w pamięci podręcznej dla ładowania plików PNG z dysku:
SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "TRACE_METRIC" AND event_name = "cache-hit" AND parent_trace_name = "loadFromDisk" AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);
Sprawdź porę dnia, o której użytkownicy wysyłają żądania sieciowe
Na przykład możesz sprawdzić, o której godzinie użytkownicy ze Stanów Zjednoczonych wysyłają żądania sieciowe z Twojej aplikacji:
SELECT count(1) AS hourly_count, EXTRACT(HOUR FROM event_timestamp) AS hour_of_day FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "NETWORK_REQUEST" AND country = "US" GROUP BY 2 ORDER BY 2;
Zabierz swoje dane monitorowania wydajności w dowolne miejsce
Czasami chcesz uzyskać dostęp do danych monitorowania wydajności po stronie serwera lub przesłać je do innego rozwiązania innej firmy. Obecnie nie ma opłat za eksportowanie danych.
Możesz wyeksportować swoje dane poprzez:
Korzystanie z interfejsu internetowego BigQuery
Uruchamianie
bq extract
interfejsu CLIPrzesyłanie zadania wyodrębniania za pośrednictwem interfejsu API lub bibliotek klienckich.
cennik
Eksportowanie danych z monitorowania wydajności jest bezpłatne, a BigQuery zapewnia hojne bezpłatne limity użytkowania. Aby uzyskać szczegółowe informacje, zapoznaj się z cennikiem BigQuery lub piaskownicą BigQuery .