Dane z Monitorowania wydajności z aplikacji Apple i na Androida możesz eksportować do BigQuery, analizy. BigQuery umożliwia analizowanie danych za pomocą BigQuery SQL, wyeksportowanie go do innego dostawcy chmury, a nawet korzystanie z dla niestandardowych modeli ML.
Włącz funkcję eksportowania BigQuery
Przejdź do Integracje w konsoli Firebase, a następnie w BigQuery kliknij Połącz.
Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć BigQuery.
Gdy włączysz eksportowanie danych do BigQuery na potrzeby Monitorowania wydajności, następuje:
Firebase wyeksportuje kopię istniejących danych do BigQuery; Początkowe rozpowszechnienie danych do eksportu może potrwać do 48 godzin na zakończenie.
- Dostępne opcje ręcznie zaplanuj uzupełnianie danych z ostatnich 30 dni lub od ostatniego dnia włączenia BigQuery eksportu (w zależności od tego, co jest najnowsze).
Po utworzeniu zbioru danych jego lokalizacja nie można zmienić, ale możesz skopiować zbiór danych do innej lokalizacji lub ręcznie przenieść (ponownie utworzyć) zbiór danych w innej lokalizacji. Aby się uczyć Więcej informacji znajdziesz w artykule o zmienianiu lokalizacji zbioru danych.
Firebase regularnie synchronizuje dane z projektu Firebase w BigQuery; Te codzienne operacje eksportu kończą się zwykle w ciągu 24 godzin po ich wygenerowaniu.
Domyślnie wszystkie aplikacje w Twoim projekcie są połączone z BigQuery. Dowolne aplikacje, które dodasz później do projektu, zostaną automatycznie połączone BigQuery; Dostępne opcje określać, które aplikacje mają wysyłać dane.
Aby wyłączyć funkcję BigQuery Export, odłącz projekt w konsoli Firebase.
Jakie dane są eksportowane do BigQuery?
W przypadku każdej aplikacji w projekcie eksport tworzy tabelę zawierającą wszystkie zarejestrowanych zdarzeń dotyczących skuteczności. Każdy wiersz w tabeli odpowiada pojedynczemu zdarzeniu dotyczącemu skuteczności. mogą być następujące:
Zrzut czasu – logi czasu, które domyślnie zbierają dane „czas trwania”, który obejmuje uruchamianie aplikacji, aplikację na pierwszym planie i w tle; a także wszelkie niestandardowe ślady kodu wspierane przez programistę.
event_type
toDURATION_TRACE
event_name
jest taka sama jak nazwa logu czasu
Dane śledzenia – dane niestandardowe powiązane z: niestandardowe ślady kodu wspomagane przez programistę
event_type
toTRACE_METRIC
event_name
to nazwa danychparent_trace_name
to nazwa logu czasu zawierającego ten wskaźnik
Zrzut ekranu – logi czasu z całego okresu wyświetlania ekranu (renderowanie ekranu) ślady)
event_type
toSCREEN_TRACE
event_name
to prefiks_st_
plus faktyczna nazwa ekranu
Żądanie sieciowe – logi czasu z całego okresu realizacji żądania sieciowego. (ślady żądań sieciowych HTTP)
event_type
toNETWORK_REQUEST
event_name
to sklasyfikowany wzorzec adresu URL żądania sieciowego.
Każde zdarzenie związane ze skutecznością zawiera atrybuty zdarzenia (takie jak kraj, operatora urządzenia klienta) oraz informacje dotyczące zdarzenia:
- Zrzuty ekranu dotyczące czasu trwania, wskaźniki śledzenia i ślady ekranu zawierają te dane:
trace_info
- Dane logu czasu zawierają parametr
trace_info.metric_info
- Zrzuty ekranu zawierają:
trace_info.screen_info
- Ślady sieci zawierają:
network_info
Szczegółowy schemat danych
Nazwa pola | Typ | Opis |
---|---|---|
event_timestamp | sygnatura czasowa | Sygnatura czasowa od początku epoki na urządzeniu klienckim (początek śledzenia, uruchomienie sieci itp.) |
app_display_version | ciąg znaków | Wyświetl wersję aplikacji (np. „4.1.7”)
|
wersja_kompilacji_aplikacji | ciąg znaków | Skompiluj wersję aplikacji (np. „1523456”)
|
Wersja systemu operacyjnego | ciąg znaków | Wersja systemu operacyjnego urządzenia klienckiego
|
nazwa_urządzenia | ciąg znaków | nazwa urządzenia klienckiego (np. „Google Pixel”), |
country | ciąg znaków | Dwuliterowy kod kraju, z którego pochodzi wydarzenie miało miejsce (na przykład „PL” lub „ZZ” w przypadku nieznanego kraju); |
przewoźnik | ciąg znaków | Operator urządzenia klienckiego |
typ_radio | ciąg znaków | Aktywny typ sygnału radiowego, w którym doszło do zdarzenia (na przykład „WIFI”) |
atrybuty_niestandardowe | ARRAY<RECORD> | Wszystkie atrybuty niestandardowe dołączone do tego wydarzenia |
atrybuty_niestandardowe.klucz | ciąg znaków | Klucz atrybutu niestandardowego |
atrybuty_niestandardowe.wartość | ciąg znaków | Wartość atrybutu niestandardowego |
event_type | ciąg znaków | Rodzaj zdarzenia; możliwe wartości:
|
event_name | ciąg znaków | Nazwa zdarzenia
|
nazwa_śladu_nadrzędnego | ciąg znaków | Nazwa nadrzędnego logu czasu, który zawiera wskaźnik śledzenia Występuje tylko w okresie TRACE_METRIC |
informacje_śledzenia | REKORD | Występuje tylko w przypadku domeny DURATION_TRACE ,
SCREEN_TRACE i TRACE_METRIC |
śledzenie_informacji.czas trwania_pl | int64 |
|
dane_śledzenia.ekran_info | REKORD | Występuje tylko w przypadku domeny SCREEN_TRACE |
współczynnik_z_ekranu.slow_ramki | float64 | Współczynnik spowolnionych klatek w tym zapisie ekranu w zakresie od 0 do 1 (Na przykład wartość 0, 05 oznacza 5% klatek na tym ekranie renderowanie instancji trwało dłużej niż 16 ms) |
współczynnik_na_ekranie.stosunek_zamrożenia_ramki | float64 | Współczynnik zablokowanych klatek w tym zapisie ekranu, od 0 do 1 (Na przykład wartość 0, 05 oznacza 5% klatek na tym ekranie renderowanie instancji trwało ponad 700 ms) |
informacje_śledzenia.dane_informacje_o_danych | REKORD | Występuje tylko w przypadku domeny TRACE_METRIC |
informacje_śledzenia.dane_informacje.wartość_metryczna | int64 | Wartość wskaźnika logu czasu |
informacje_o_sieci | REKORD | Występuje tylko w przypadku domeny NETWORK_REQUEST |
informacje_o_sieci.kod_odpowiedzi | int64 | kod odpowiedzi HTTP odpowiedzi sieciowej (np. 200, 404). |
informacje_o_sieci.typ_mime_odpowiedzi | ciąg znaków | Typ MIME odpowiedzi sieciowej (np. „text/html”) |
metoda_info.żądania_http_metody_sieci | ciąg znaków | Metoda HTTP żądania sieciowego (np. „GET” lub „POST”) |
network_info.request_payload_bytes | int64 | Rozmiar ładunku żądania sieciowego Jednostka: bajt |
informacje_o_sieci.bajty_ładunku_odpowiedzi | int64 | Rozmiar ładunku odpowiedzi sieciowej Jednostka: bajt |
network_info.request_completed_time_pl | int64 | Mikrosekundy po event_timestamp w przypadku żądania sieciowego
wysyłanie zakończoneJednostka: mikrosekunda |
informacje_o_sieci.odpowiedź_zainicjowana_w_czasie_pl | int64 | Mikrosekundy po event_timestamp w przypadku odpowiedzi sieci
inicjowanieJednostka: mikrosekunda |
network_info.response_completed_time_us | int64 | Mikrosekundy po event_timestamp w przypadku odpowiedzi sieci
zakończonoJednostka: mikrosekunda |
Co można zrobić z wyeksportowanymi danymi?
W sekcjach poniżej znajdziesz przykłady zapytań, których możesz użyć BigQuery z wyeksportowanymi danymi Monitorowania wydajności.
Wyświetl zestawienie średniego czasu oczekiwania na uruchomienie aplikacji według kraju
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;
Sprawdzenie proporcji zablokowanych klatek w różnych warunkach
Na przykład możesz porównać proporcje zablokowanych klatek z liczbą czas spędzany przez użytkowników na każdym ekranie aplikacji, gdy korzystają z różnych typów radia (Wi-Fi, 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;
Współczynnik trafień w pamięci podręcznej Compute do wczytywania określonych typów plików z dysku
W tej analizie założono, że został zinstrumentowany niestandardowy log czasu do wczytywania z
dysk z atrybutem niestandardowym file-extension
i danymi niestandardowymi (a
TRACE_METRIC
) o nazwie cache-hit
, która ma wartość 1
, jeśli trafienie w pamięci podręcznej jest włączone, oraz 0
, jeśli
w pamięci podręcznej.
Możesz np. obliczyć współczynnik trafień w pamięci podręcznej dla wczytywania 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ź, o jakiej porze dnia użytkownicy wysyłają żądania sieciowe
Możesz na przykład sprawdzić, o jakiej porze dnia użytkownicy z Polski wysyłanie żądań sieciowych 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 dane z Monitorowania wydajności w dowolne miejsce
Czasami chcesz uzyskać dostęp do danych z Monitorowania wydajności po stronie serwera lub przekazać je przy użyciu rozwiązania innej firmy. Obecnie eksportowanie danych jest bezpłatne.
Możesz eksportować dane na następujące sposoby:
Korzystanie z internetowego interfejsu użytkownika BigQuery
Uruchamianie polecenia interfejsu wiersza poleceń
bq extract
Przesłanie wyodrębnij zadanie za pomocą interfejsu API lub bibliotek klienta.
Ceny
Eksport danych z Monitorowania wydajności i BigQuery jest bezpłatny udostępnia duże, bezpłatne limity wykorzystania. Szczegółowe informacje znajdziesz tutaj: Cennik BigQuery lub piaskownicy BigQuery.