Możesz eksportować dane usługi Performance Monitoring z aplikacji Apple i na Androida do: BigQuery, aby dowiedzieć się więcej analizy. BigQuery umożliwia analizowanie danych za pomocą BigQuery SQL, wyeksportuj go do innego dostawcy chmury, a nawet używaj dla niestandardowych modeli ML.
Włącz eksportowanie danych BigQuery
Przejdź do Integracje w konsoli Firebase, a następnie kliknij Połącz w narzędziu BigQuery.
Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby włączyć funkcję BigQuery.
Gdy włączysz eksport BigQuery dla Performance Monitoring: następuje:
Firebase eksportuje 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 w ciągu ostatnich 30 dni lub w najnowszym dniu, gdy opcja BigQuery była włączona 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 skonfiguruje regularne synchronizowanie danych z Twojego projektu Firebase z kontem BigQuery. Te codzienne operacje eksportu kończą się zwykle w ciągu 24 godzin po ich wygenerowaniu.
Domyślnie wszystkie aplikacje w projekcie są połączone z usługą 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ć eksportowanie danych z BigQuery: odłącz projekt w konsoli Firebase.
Jakie dane są eksportowane do usługi 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 to pojedyncze zdarzenie związane z skutecznością, które może być jednym z tych:
Śledzenie czasu trwania – śledzenie, które domyślnie zbiera dane o „czasie trwania” i obejmujące uruchamianie aplikacji, aplikację na pierwszym planie i aplikację w tle, a także dowolne ścieżki kodu niestandardowego z użyciem narzędzia dewelopera.
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 rzeczywista nazwa ekranu
Żądanie sieciowe – logi czasu z całego okresu realizacji żądania sieciowego. (ślady żądań sieciowych HTTP)
event_type
toNETWORK_REQUEST
event_name
to podział według wzoru 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
- Ścieżki sieciowe 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 klienta (np. „Google Pixel”) |
country | ciąg znaków | Dwuliterowy kod kraju, z którego pochodziło zdarzenie (np. „US” lub „ZZ” w przypadku nieznanego kraju) |
przewoźnik | ciąg znaków | Operator urządzenia klienckiego |
typ_radio | ciąg znaków | Aktywny typ oznaczenia miejsca, w którym miało miejsce zdarzenie (na przykład „WIFI”) |
atrybuty_niestandardowe | ARRAY<RECORD> | Wszystkie atrybuty niestandardowe przypisane do tego zdarzenia |
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 |
trace_info.duration_us | int64 |
|
informacje_na_ekran. | 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 |
network_info | REKORD | Tylko w przypadku NETWORK_REQUEST |
informacje_o_sieci.kod_odpowiedzi | int64 | kod odpowiedzi HTTP odpowiedzi sieciowej (np. 200, 404). |
network_info.response_mime_type | ciąg znaków | Typ MIME odpowiedzi sieciowej (np. „text/html”) |
network_info.request_http_method | ciąg znaków | Metoda HTTP żądania sieciowego (np. „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_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 względem wyeksportowanych danych z Performance Monitoring.
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;
Sprawdzanie współczynnika 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 swoje dane Performance Monitoring w dowolne miejsce
Czasami chcesz uzyskać dostęp do swoich danych w usłudze Performance Monitoring 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:
Za pomocą interfejsu internetowego BigQuery
Uruchamianie polecenia interfejsu wiersza poleceń
bq extract
Przesłanie wyodrębnij zadanie za pomocą interfejsu API lub bibliotek klienta.
Ceny
Eksportowanie danych z Performance Monitoring jest bezpłatne, a BigQuery oferuje duże bezpłatne limity użytkowania. Szczegółowe informacje znajdziesz w cenniku BigQuery lub w BigQuerysandboksie.