Dodawanie niestandardowego monitorowania na potrzeby określonego kodu aplikacji


Performance Monitoring zbiera logi czasu, aby pomóc Ci monitorować wydajność aplikacji. Log czasu to raport z danymi o skuteczności zebranymi między dwoma punktami w czasie w aplikacji.

Możesz tworzyć własne logi czasu, aby monitorować dane o skuteczności powiązane z konkretnym kodem w aplikacji. Za pomocą niestandardowego logu czasu kodu możesz mierzyć, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, np. wczytanie zestawu obrazów lub wysłanie zapytania do bazy danych.

Domyślnymi danymi śladu kodu niestandardowego jest jego „czas trwania” (czas między punktem początkowym a końcowym śladu), ale możesz też dodać dane niestandardowe.

W kodzie definiujesz początek i koniec niestandardowego śladu kodu za pomocą interfejsów API udostępnianych przez pakiet SDK Performance Monitoring. Ślady niestandardowego kodu można uruchomić w dowolnym momencie po ich utworzeniu. Są one wątkowo bezpieczne.

Domyślnym wskaźnikiem zbieranym w przypadku tych logów czasu jest „czas trwania”, dlatego czasami są one nazywane „logami czasu trwania”.

Dane z tych logów czasu możesz wyświetlić na podkarcie Logi czasu niestandardowe w tabeli logów czasu, która znajduje się u dołu panelu Wydajność (więcej informacji o korzystaniu z konsoli znajdziesz w dalszej części tej strony).

Atrybuty domyślne, atrybuty niestandardowe i dane niestandardowe

W przypadku śladów kodu niestandardowego Performance Monitoring automatycznie rejestruje atrybuty domyślne (typowe metadane, takie jak kraj, przeglądarka, adres URL strony itp.), dzięki czemu możesz filtrować dane śladu w konsoli Firebase. Możesz też dodawać i monitorować atrybuty niestandardowe (np. poziom gry lub właściwości użytkownika).

Możesz też skonfigurować niestandardowy ślad kodu, aby rejestrować wskaźniki niestandardowe dotyczące zdarzeń związanych z wydajnością, które występują w zakresie śladu. Możesz na przykład utworzyć wskaźnik niestandardowy dla liczby trafień i chybień w pamięci podręcznej lub liczby przypadków, gdy interfejs przestaje reagować na zauważalny czas.

Atrybuty niestandardowe i wskaźniki niestandardowe są wyświetlane w konsoli Firebase obok domyślnych atrybutów i wskaźników śladu.

Dodawanie niestandardowych śladów kodu

Użyj Performance Monitoring Trace API, aby dodać niestandardowe logi czasu kodu i monitorować konkretny kod aplikacji.

Pamiętaj:

  • Aplikacja może mieć wiele niestandardowych śladów kodu.
  • Jednocześnie może być uruchomionych kilka śladów niestandardowego kodu.
  • Nazwy niestandardowych logów czasu kodu muszą spełniać te wymagania: nie mogą zawierać spacji na początku ani na końcu, nie mogą zaczynać się od znaku podkreślenia (_) i mogą mieć maksymalnie 100 znaków.
  • Ślady kodu niestandardowego obsługują dodawanie wskaźników niestandardowych i atrybutów niestandardowych.

Aby rozpocząć i zatrzymać niestandardowy ślad kodu, otocz kod, który chcesz śledzić, wierszami kodu podobnymi do tych:

Web

import { trace } from "firebase/performance";

const t = trace(perf, "CUSTOM_TRACE_NAME");
t.start();

// Code that you want to trace 
// ...

t.stop();

Web

const trace = perf.trace("CUSTOM_TRACE_NAME");
trace.start();

// Code that you want to trace 
// ...

trace.stop();

Dodawanie niestandardowych śladów kodu za pomocą interfejsu User Timing API

Oprócz interfejsu Performance Monitoring Trace API możesz dodawać niestandardowe logi czasu kodu, korzystając z natywnego interfejsu User Timing API przeglądarki. Czas trwania logu czasu mierzony za pomocą tego interfejsu API jest automatycznie rejestrowany przez pakiet SDK Performance Monitoring. Korzystanie z interfejsu User Timing API jest szczególnie przydatne, jeśli wolisz wczytywać pakiet SDK Performance Monitoring asynchronicznie. Po zainicjowaniu pakiet SDK zarejestruje pomiary, które miały miejsce przed jego wczytaniem.

Aby korzystać z tej funkcji, umieść kod, który chcesz śledzić, w znacznikach czasu działań użytkownika:

Web

const performance = window.performance;

performance.mark("measurementStart");

// Code that you want to trace 
// ...

performance.mark("measurementStop");
performance.measure("customTraceName", "measurementStart", "measurementStop");

Web

const performance = window.performance;

performance.mark("measurementStart");

// Code that you want to trace 
// ...

performance.mark("measurementStop");
performance.measure("customTraceName", "measurementStart", "measurementStop");

Pamiętaj, że performance w powyższym przykładzie odnosi się do obiektu window.performance przeglądarki.

Podczas korzystania z interfejsu User Timing API nie można dodawać niestandardowych danych i atrybutów do śladów kodu niestandardowego. Jeśli chcesz dodać te elementy niestandardowe do niestandardowego śladu kodu, użyj interfejsu Performance Monitoring Trace API.

Dodawanie niestandardowych wskaźników do niestandardowych śladów kodu

Użyj Performance Monitoring Trace API, aby dodać dane niestandardowe do niestandardowych logów czasu oczekiwania kodu.

Pamiętaj:

  • Nazwy wskaźników 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 (_) i mogą mieć maksymalnie 100 znaków.
  • Każdy ślad kodu niestandardowego może rejestrować maksymalnie 32 rodzaje danych (w tym domyślne dane Czas trwania).

Aby dodać dane niestandardowe, za każdym razem, gdy wystąpi zdarzenie, dodaj wiersz kodu podobny do tego: Te dane niestandardowe zliczają np. zdarzenia związane z wydajnością, które występują w aplikacji.

Web

import { trace } from "firebase/performance";

async function getInventory(inventoryIds) {
  const t = trace(perf, "inventoryRetrieval");

  // Tracks the number of IDs fetched (the metric could help you to optimize in the future)
  t.incrementMetric("numberOfIds", inventoryIds.length);

  // Measures the time it takes to request inventory based on the amount of inventory
  t.start();
  const inventoryData = await retrieveInventory(inventoryIds);
  t.stop();

  return inventoryData;
}

Web

async function getInventory(inventoryIds) {
  const trace = perf.trace("inventoryRetrieval");

  // Tracks the number of IDs fetched (the metric could help you to optimize in the future)
  trace.incrementMetric("numberOfIds", inventoryIds.length);

  // Measures the time it takes to request inventory based on the amount of inventory
  trace.start();
  const inventoryData = await retrieveInventory(inventoryIds);
  trace.stop();

  return inventoryData;
}

Tworzenie atrybutów niestandardowych na potrzeby niestandardowych logów czasu kodu

Użyj interfejsu API Performance Monitoring Trace, aby dodać atrybuty niestandardowe do niestandardowych logów czasu kodu.

Aby używać atrybutów niestandardowych, dodaj do aplikacji kod, który definiuje atrybut i powiązuje go z konkretnym śladem kodu niestandardowego. Atrybut niestandardowy możesz ustawić w dowolnym momencie między rozpoczęciem a zakończeniem śledzenia.

Pamiętaj:

  • Nazwy atrybutów niestandardowych muszą spełniać te wymagania:

    • Brak spacji na początku i na końcu, brak znaku podkreślenia (_) na początku.
    • Brak pokoi
    • Maksymalna liczba znaków to 32
    • Dozwolone znaki w nazwie to A-Z, a-z i _.
  • Każdy niestandardowy ślad kodu może rejestrować maksymalnie 5 atrybutów niestandardowych.

  • Upewnij się, że atrybuty niestandardowe nie zawierają żadnych informacji umożliwiających Google identyfikację osoby.

    Więcej informacji o tych wytycznych

Web

import { trace } from "firebase/performance";

const t = trace(perf, "test_trace");
t.putAttribute("experiment", "A");

// Update scenario
t.putAttribute("experiment", "B");

// Reading scenario
const experimentValue = t.getAttribute("experiment");

// Delete scenario
t.removeAttribute("experiment");

// Read attributes
const traceAttributes = t.getAttributes();

Web

const trace = perf.trace("test_trace");
trace.putAttribute("experiment", "A");

// Update scenario
trace.putAttribute("experiment", "B");

// Reading scenario
const experimentValue = trace.getAttribute("experiment");

// Delete scenario
trace.removeAttribute("experiment");

// Read attributes
const traceAttributes = trace.getAttributes();

Śledzenie, wyświetlanie i filtrowanie danych o skuteczności

Aby wyświetlać dane o skuteczności w czasie rzeczywistym, upewnij się, że Twoja aplikacja korzysta z wersji pakietu SDK Monitorowania skuteczności, która jest zgodna z przetwarzaniem danych w czasie rzeczywistym. Więcej informacji o danych o skuteczności w czasie rzeczywistym

Śledzenie konkretnych danych w panelu

Aby dowiedzieć się, jakie są trendy dotyczące kluczowych danych, dodaj je do tablicy danych u góry panelu Skuteczność. Możesz szybko zidentyfikować regresje, sprawdzając zmiany z tygodnia na tydzień, lub sprawdzić, czy ostatnie zmiany w kodzie poprawiają wydajność.

obraz panelu danych w <span class=Panel monitorowania skuteczności w Firebase" />

Aby dodać dane do panelu danych, wykonaj te czynności:

  1. Otwórz panel Wydajność w konsoli Firebase.
  2. Kliknij pustą kartę danych, a potem wybierz dotychczasowe dane, które chcesz dodać do tablicy.
  3. Aby wyświetlić więcej opcji, np. zastąpić lub usunąć dane, kliknij  na karcie danych z wypełnionymi informacjami.

Panel wskaźników pokazuje zebrane dane wskaźników w czasie, zarówno w formie graficznej, jak i jako procentową zmianę liczbową.

Dowiedz się więcej o korzystaniu z panelu.

Wyświetlanie logów czasu i ich danych

Aby wyświetlić logi czasu, otwórz panel Wydajność w konsoli Firebase, przewiń w dół do tabeli logów czasu i kliknij odpowiednią podkartę. Tabela zawiera niektóre najważniejsze dane dotyczące każdego logu czasu, a listę możesz nawet posortować według zmiany procentowej konkretnych danych.

Performance Monitoring udostępnia w konsoli Firebase stronę rozwiązywania problemów, na której wyróżnione są zmiany wskaźników. Dzięki temu możesz szybko rozwiązywać problemy z wydajnością i minimalizować ich wpływ na aplikacje i użytkowników. Możesz użyć strony rozwiązywania problemów, gdy dowiesz się o potencjalnych problemach z wydajnością, np. w tych sytuacjach:

  • Wybierasz odpowiednie dane w panelu i zauważasz dużą różnicę.
  • W tabeli logów czasu sortujesz dane, aby wyświetlić największe delty u góry, i widzisz znaczną zmianę procentową.
  • Otrzymujesz alert e-mail z powiadomieniem o problemie z wydajnością.

Stronę rozwiązywania problemów możesz otworzyć na te sposoby:

  • W panelu danych kliknij przycisk Wyświetl szczegóły danych.
  • Na dowolnej karcie danych kliknij => Wyświetl szczegóły. Na stronie rozwiązywania problemów wyświetlą się informacje o wybranym wskaźniku.
  • W tabeli logów czasu kliknij nazwę logu czasu lub dowolną wartość danych w wierszu powiązanym z tym logiem czasu.
  • W alercie e-mail kliknij Zbadaj teraz.

Gdy klikniesz nazwę logu czasu oczekiwania w tabeli logów czasu oczekiwania, możesz przejść do interesujących Cię danych. Kliknij przycisk Filtr , aby przefiltrować dane według atrybutu, na przykład:

obraz przedstawiający <span class=Dane monitorowania skuteczności w Firebase filtrowane według atrybutu" />
  • Filtruj według adresu URL strony, aby wyświetlić dane dotyczące konkretnej strony w witrynie.
  • Filtruj według efektywnego typu połączenia, aby dowiedzieć się, jak połączenie 3G wpływa na aplikację.
  • Filtruj według kraju, aby upewnić się, że lokalizacja bazy danych nie wpływa na konkretny region.

Dowiedz się więcej o wyświetlaniu danych logów czasu.

Następne kroki

  • Dowiedz się więcej o używaniu atrybutów do analizowania danych o skuteczności.

  • Dowiedz się więcej o śledzeniu problemów z wydajnością w konsoli Firebase.

  • Skonfiguruj alerty dotyczące zmian w kodzie, które obniżają wydajność aplikacji. Możesz na przykład skonfigurować alert e-mail dla swojego zespołu, jeśli czas trwania określonego niestandardowego śladu kodu przekroczy ustawiony przez Ciebie próg.