Dodawanie niestandardowego monitorowania na potrzeby określonego kodu aplikacji


Performance Monitoring zbiera ślady, aby ułatwić Ci monitorowanie skuteczności aplikacji. Ślad to raport danych o skuteczności, który jest rejestrowany w aplikacji między 2 momentami w czasie.

Możesz tworzyć własne ścieżki, aby monitorować dane o wydajności powiązane z konkretnym kodem w aplikacji. Dzięki ścieżce niestandardowego kodu możesz mierzyć, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, np. wczytywanie zestawu obrazów lub wysyłanie zapytania do bazy danych.

Domyślnym wskaźnikiem w przypadku niestandardowego logu czasu jest jego „długość” (czas między punktem początkowym a końcowym logu czasu), ale możesz też dodać dane niestandardowe.

W kodzie definiujesz początek i koniec śledzenia niestandardowego kodu za pomocą interfejsów API dostępnych w pakiecie SDK Performance Monitoring. Ścieżki niestandardowego kodu można uruchomić w dowolnym momencie po ich utworzeniu i są one bezpieczne dla wątku.

Ponieważ domyślne dane zbierane dla tych logów czasu to „czas trwania”, czasami są one nazywane „śladami czasu trwania”.

Dane z tych ścieżek możesz wyświetlać na karcie Ścieżki niestandardowe w tabeli ścieżek, która znajduje się u dołu panelu Skuteczność (więcej informacji o używaniu konsoli znajdziesz dalej na tej stronie).

Atrybuty domyślne, atrybuty niestandardowe i dane niestandardowe

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

Możesz też skonfigurować śledzenie niestandardowego kodu, aby rejestrować dane niestandardowe dotyczące zdarzeń związanych z wydajnością, które występują w zakresie śledzenia. Możesz na przykład utworzyć dane niestandardowe dotyczące liczby trafień i błędów w przypadku pamięci podręcznej lub liczby razy, kiedy interfejs nie odpowiadał na żądania przez zauważalny okres czasu.

Atrybuty i dane niestandardowe są widoczne w konsoli Firebaseobok atrybutów i danych domyślnych dotyczących ścieżki.

Dodaj niestandardowe logi czasu kodu

Użyj Performance Monitoring interfejsu Trace API do dodania niestandardowych logów kodu, aby monitorować określony kod aplikacji.

Pamiętaj:

  • Aplikacja może mieć wiele ścieżek śledzenia kodu niestandardowego.
  • Możesz uruchamiać jednocześnie więcej niż 1 śledzenie kodu niestandardowego.
  • Nazwy ścieżek kodu niestandardowego muszą spełniać te wymagania: nie mogą zawierać spacji na początku ani na końcu, znaku podkreślenia (_) na początku, a ich maksymalna długość to 100 znaków.
  • Ścieżki niestandardowego kodu umożliwiają dodawanie danych niestandardowychatrybutów niestandardowych.

Aby rozpocząć i zatrzymać śledzenie niestandardowego kodu, owiń kod, który chcesz śledzić, wierszami kodu podobnymi do tego:

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 logów czasu za pomocą interfejsu User Timing API

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

Aby korzystać z tej funkcji, owiń kod, który chcesz śledzić, za pomocą znaczników User Timing:

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

W przykładzie powyżej performance odnosi się do obiektu window.performance przeglądarki.

Gdy używasz interfejsu User Timing API, nie można dodawać niestandardowych danych ani atrybutów do niestandardowych logów czasu kodu. Jeśli chcesz dodać te elementy do niestandardowego śledzenia kodu, użyj Performance MonitoringTrace API.

Dodawanie danych niestandardowych do niestandardowych logów kodu

Aby dodać do niestandardowych logów kodu dane niestandardowe, użyj Performance Monitoring Trace API.

Pamiętaj:

  • Nazwy danych niestandardowych muszą spełniać te wymagania: nie mogą zawierać znaków niedrukowalnych ani spacjów na początku ani na końcu, nie mogą też zaczynać się od znaku podkreślenia (_). Ich maksymalna długość to 100 znaków.
  • Każdy niestandardowy ślad kodu może rejestrować maksymalnie 32 wskaźniki (wliczając domyślne dane Czas trwania).

Aby dodać dane niestandardowe, dodaj wiersz kodu podobnego do tego za każdym razem, gdy wystąpi zdarzenie. 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 niestandardowych atrybutów do śledzenia niestandardowego kodu

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

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

Pamiętaj:

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

    • Bez spacji na początku i na końcu, bez znaku podkreślenia (_) na początku
    • Brak pokoi
    • Maksymalna długość to 32 znaki
    • Dozwolone znaki w nazwie to A-Z, a-z_.
  • Każdy ślad kodu niestandardowego może rejestrować maksymalnie 5 atrybutów niestandardowych.

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

    Więcej informacji o tej wytycznej

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 do monitorowania wydajnoś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ę, jak zmieniają się Twoje kluczowe dane, dodaj je do panelu danych u góry panelu Skuteczność. Możesz szybko wykrywać regresje, obserwując zmiany z tygodnia na tydzień, lub sprawdzać, czy ostatnie zmiany w kodzie poprawiają skuteczność.

obraz tablicy danych w <span class=Panel monitorowania wydajności Firebase" />

Aby dodać dane do panelu danych:

  1. Otwórz panel wydajności w konsoli Firebase.
  2. Kliknij pustą kartę danych, a potem wybierz istniejące dane, które chcesz dodać do tablicy.
  3. Kliknij na karcie wskaźnika, aby wyświetlić więcej opcji, na przykład zastąpić lub usunąć wskaźnik.

Tablica danych pokazuje zebrane dane w ciągu czasu, zarówno w formie graficznej, jak i w postaci liczbowej zmiany procentowej.

Dowiedz się więcej o korzystaniu z panelu.

Wyświetlanie logów czasu i ich danych

Aby wyświetlić logi czasu, w konsoli Firebase otwórz panel Wydajność, przewiń w dół do tabeli logów czasu i kliknij odpowiednią podkartę. Tabela zawiera najważniejsze wskaźniki dla każdego logu czasu. Możesz nawet sortować listę według zmiany procentowej dla konkretnego wskaźnika.

Performance Monitoring udostępnia w konsoli Firebase stronę rozwiązywania problemów, na której wyróżnione są zmiany danych, co ułatwia szybkie rozwiązywanie problemów z wydajnością i minimalizowanie ich wpływu na aplikacje i użytkowników. Strony rozwiązywania problemów możesz używać, gdy dowiesz się o potencjalnych problemach z wydajnością, na przykład w takich sytuacjach:

  • Wybierasz odpowiednie dane na panelu i zauważysz dużą różnicę.
  • W tabeli śladów sortowanie odbywa się w taki sposób, aby największe wartości różnicy były wyświetlane u góry, a Ty widzisz znaczną zmianę procentową.
  • Otrzymasz e-maila z powiadomieniem o problemie ze skutecznością.

Dostęp do strony rozwiązywania problemów możesz uzyskać na kilka sposobów:

  • Na panelu danych kliknij przycisk Wyświetl szczegóły danych.
  • Na dowolnej karcie wskaźnika kliknij => Wyświetl szczegóły. Na stronie rozwiązywania problemów wyświetlają się informacje o wybranych danych.
  • W tabeli „Ścieżki” kliknij nazwę ścieżki lub dowolną wartość danych w wierszu powiązanym z tą ścieżką.
  • W powiadomieniu e-mail kliknij Zbadaj teraz.

Po kliknięciu nazwy śledzenia w tabeli śledzenia możesz rozwinąć interesujące Cię dane. Aby filtrować dane według atrybutu, kliknij przycisk Filtr, na przykład:

obraz: <span class=Filtrowanie danych Monitorowania wydajności Firebase według atrybutu” />
  • Filtrowanie według adresu URL strony w celu wyświetlania danych dotyczących konkretnej strony w witrynie
  • Filtruj według użytego rodzaju połączenia, aby dowiedzieć się, jak połączenie 3G wpływa na Twoją aplikację.
  • Filtruj według Kraju, aby mieć pewność, że lokalizacja bazy danych nie wpływa na konkretny region.

Dowiedz się więcej o wyświetlaniu danych dotyczących prześwietleń.

Następne kroki

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

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

  • Skonfiguruj alerty dotyczące zmian kodu, które pogarszają działanie aplikacji. Możesz na przykład skonfigurować alert e-mailowy dla zespołu, jeśli czas trwania określonego śledzenia kodu niestandardowego przekroczy ustawiony przez Ciebie próg.