了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Dodaj niestandardowe monitorowanie dla określonego kodu aplikacji

Monitorowanie wydajności zbiera ślady , aby pomóc Ci monitorować wydajność Twojej aplikacji. Ślad to raport danych o wydajności przechwyconych między dwoma punktami w czasie w Twojej aplikacji.

Możesz tworzyć własne ślady, aby monitorować dane dotyczące wydajności powiązane z określonym kodem w Twojej aplikacji. Dzięki niestandardowemu śledzeniu kodu możesz zmierzyć, ile czasu zajmuje Twojej aplikacji wykonanie określonego zadania lub zestawu zadań, na przykład załadowanie zestawu obrazów lub wysłanie zapytania do bazy danych.

Domyślną metryką dla niestandardowego śledzenia kodu jest jego „czas trwania” (czas między punktem początkowym i końcowym śledzenia), ale można również dodać niestandardowe metryki .

W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia kodu przy użyciu interfejsów API udostępnianych przez zestaw SDK do monitorowania wydajności.Niestandardowe śledzenie kodu można rozpocząć w dowolnym momencie po ich utworzeniu i są one bezpieczne dla wątków.

Ponieważ domyślną metryką zbieraną dla tych śladów jest „czas trwania”, są one czasami nazywane „śladami czasu trwania”.

Możesz przeglądać dane z tych śladów na podkarcie Śledzenia niestandardowe w tabeli śledzenia, która znajduje się na dole pulpitu nawigacyjnego Wydajność (więcej informacji o korzystaniu z konsoli znajduje się w dalszej części tej strony).

Atrybuty domyślne, atrybuty niestandardowe i metryki niestandardowe

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

Możesz dodatkowo skonfigurować niestandardowe śledzenie kodu, aby rejestrować niestandardowe metryki dla zdarzeń związanych z wydajnością, które występują w zakresie śledzenia. Na przykład możesz utworzyć niestandardową metrykę dla liczby trafień i chybień w pamięci podręcznej lub liczby przypadków braku odpowiedzi interfejsu użytkownika przez zauważalny okres czasu.

Niestandardowe atrybuty i niestandardowe metryki są wyświetlane w konsoli Firebase obok domyślnych atrybutów i domyślnych metryk śledzenia.

Dodaj niestandardowe ślady kodu

Użyj interfejsu Performance Monitoring Trace API , aby dodać niestandardowe ślady kodu w celu monitorowania określonego kodu aplikacji.

Uwaga:

  • Aplikacja może mieć wiele niestandardowych śladów kodu.
  • W tym samym czasie można uruchomić więcej niż jedno niestandardowe śledzenie kodu.
  • Nazwy niestandardowych śladów kodu muszą spełniać następujące wymagania: brak spacji na początku lub końcu, znak podkreślenia na początku ( _ ) i maksymalna długość to 100 znaków.
  • Niestandardowe ślady kodu obsługują dodawanie niestandardowych metryk i niestandardowych atrybutów .

Aby rozpocząć i zatrzymać niestandardowe śledzenie kodu, otocz kod, który chcesz śledzić, liniami kodu podobnymi do następującego:

Web modular API

import { trace } from "firebase/performance";

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

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

t.stop();

Web namespaced API

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

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

trace.stop();

Dodaj niestandardowe ślady kodu za pomocą interfejsu User Timing API

Oprócz interfejsu Performance Monitoring Trace API można dodawać niestandardowe kody śledzenia przy użyciu natywnego interfejsu User Timing API przeglądarki. Czas trwania śledzenia mierzony przy użyciu tego interfejsu API jest automatycznie odbierany przez zestaw SDK monitorowania wydajności. Korzystanie z interfejsu API chronometrażu użytkownika jest szczególnie przydatne, jeśli wolisz asynchronicznie ładować zestaw SDK monitorowania wydajności. Po zainicjowaniu zestawu SDK zapisze on pomiary, które miały miejsce przed jego załadowaniem.

Aby skorzystać z tej funkcji, otocz kod, który chcesz śledzić, znacznikami czasu użytkownika:

Web modular API

const performance = window.performance;

performance.mark("measurementStart");

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

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

Web namespaced API

const performance = window.performance;

performance.mark("measurementStart");

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

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

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

W przypadku korzystania z interfejsu API chronometrażu użytkownika niestandardowe metryki i atrybuty nie mogą być dodawane do niestandardowych śladów kodu. Użyj interfejsu API monitorowania śledzenia wydajności , jeśli chcesz dodać te niestandardowe elementy do niestandardowego śledzenia kodu.

Dodaj niestandardowe metryki do niestandardowych śladów kodu

Użyj interfejsu API śledzenia monitorowania wydajności, aby dodać niestandardowe metryki do niestandardowych śladów kodu.

Uwaga:

  • Nazwy metryk niestandardowych muszą spełniać następujące wymagania: brak spacji na początku lub końcu, znak podkreślenia ( _ ) na początku i maksymalna długość to 100 znaków.
  • Każdy niestandardowy ślad kodu może rejestrować do 32 metryk (w tym domyślną metrykę czasu trwania ).

Aby dodać niestandardową metrykę, dodaj wiersz kodu podobny do poniższego za każdym razem, gdy wystąpi zdarzenie. Na przykład ta niestandardowa metryka zlicza zdarzenia związane z wydajnością, które występują w Twojej aplikacji.

Web modular API

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 namespaced API

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;
}

Twórz niestandardowe atrybuty dla niestandardowych śladów kodu

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

Aby użyć atrybutów niestandardowych, dodaj do aplikacji kod, który definiuje atrybut i kojarzy go z określonym niestandardowym śladem kodu. Atrybut niestandardowy można ustawić w dowolnym momencie między rozpoczęciem i zatrzymaniem śledzenia.

Uwaga:

  • Nazwy atrybutów niestandardowych muszą spełniać następujące wymagania:

    • Brak początkowych lub końcowych spacji, brak początkowego znaku podkreślenia ( _ ).
    • Bez odstępów
    • Maksymalna długość to 32 znaki
    • Dozwolone znaki w nazwie to AZ , az i _ .
  • Każdy niestandardowy ślad kodu może rejestrować do 5 niestandardowych atrybutów.

  • Upewnij się, że atrybuty niestandardowe nie zawierają żadnych informacji, które pozwalają Google zidentyfikować osobę.

    Dowiedz się więcej o tych wskazówkach

Web modular API

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 namespaced API

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();

Śledź, przeglądaj i filtruj dane dotyczące wydajności

Aby wyświetlać dane o wydajności w czasie rzeczywistym, upewnij się, że Twoja aplikacja korzysta z wersji Performance Monitoring SDK, która jest zgodna z przetwarzaniem danych w czasie rzeczywistym. Dowiedz się więcej o danych o wydajności w czasie rzeczywistym .

Śledź określone metryki na swoim pulpicie nawigacyjnym

Aby dowiedzieć się, jak kształtują się Twoje kluczowe dane, dodaj je do swojej tablicy wskaźników u góry panelu wydajności . Możesz szybko zidentyfikować regresje, obserwując zmiany z tygodnia na tydzień lub sprawdzając, czy ostatnie zmiany w kodzie poprawiają wydajność.

obraz tablicy metryk w panelu Firebase Performance Monitoring

Aby dodać dane do tablicy metryk, wykonaj następujące kroki:

  1. Przejdź do pulpitu wydajności w konsoli Firebase.
  2. Kliknij pustą kartę metryki, a następnie wybierz istniejącą metrykę, aby dodać ją do swojej tablicy.
  3. Kliknij na wypełnionej karcie metryki, aby uzyskać więcej opcji, na przykład zastąpienie lub usunięcie metryki.

Tablica metryk pokazuje zebrane dane metryk w czasie, zarówno w formie graficznej, jak i liczbowej zmiany procentowej.

Dowiedz się więcej o korzystaniu z pulpitu nawigacyjnego .

Zobacz ślady i ich dane

Aby wyświetlić ślady, przejdź do pulpitu wydajności w konsoli Firebase, przewiń w dół do tabeli śladów, a następnie kliknij odpowiednią kartę podrzędną. W tabeli przedstawiono niektóre najważniejsze metryki dla każdego śladu, a nawet można posortować listę według zmiany procentowej dla określonej metryki.

Monitorowanie wydajności udostępnia stronę rozwiązywania problemów w konsoli Firebase, która podkreśla zmiany wskaźników, ułatwiając szybkie rozwiązywanie problemów i minimalizowanie wpływu problemów z wydajnością na aplikacje i użytkowników. Możesz użyć strony rozwiązywania problemów, gdy dowiesz się o potencjalnych problemach z wydajnością, na przykład w następujących scenariuszach:

  • Wybierasz odpowiednie dane na pulpicie nawigacyjnym i zauważasz dużą deltę.
  • W tabeli śladów sortujesz, aby wyświetlić największe delty u góry, i widzisz znaczną zmianę procentową.
  • Otrzymasz alert e-mail z powiadomieniem o problemie z wydajnością.

Dostęp do strony rozwiązywania problemów można uzyskać w następujący sposób:

  • Na pulpicie nawigacyjnym metryki kliknij przycisk Wyświetl szczegóły metryki .
  • Na dowolnej karcie metrycznej wybierz => Wyświetl szczegóły . Strona rozwiązywania problemów wyświetla informacje o wybranych danych.
  • W tabeli śledzenia kliknij nazwę śledzenia lub dowolną wartość metryki w wierszu powiązanym z tym śladem.
  • W e-mailu z alertem kliknij Zbadaj teraz .

Po kliknięciu nazwy śledzenia w tabeli śledzenia można przejść do interesujących metryk. Kliknij przycisk filtr , aby przefiltrować dane według atrybutu, na przykład:

obraz danych Firebase Performance Monitoring filtrowanych według atrybutu
  • Filtruj według adresu URL strony , aby wyświetlić dane dla określonej strony w Twojej witrynie
  • Filtruj według efektywnego typu połączenia, aby dowiedzieć się, jak połączenie 3G wpływa na Twoją aplikację
  • Filtruj według kraju , aby upewnić się, że lokalizacja Twojej bazy danych nie ma wpływu na określony region

Dowiedz się więcej o przeglądaniu danych dla swoich śladów .

Następne kroki

  • Dowiedz się więcej o używaniu atrybutów do sprawdzania danych o wydajnoś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ść Twojej aplikacji. Na przykład możesz skonfigurować alert e-mail dla swojego zespołu, jeśli czas trwania określonego niestandardowego śledzenia kodu przekroczy ustawiony próg.