Dodawanie niestandardowego monitorowania na potrzeby określonego kodu aplikacji


Performance Monitoring zbiera ślady, aby ułatwić Ci monitorowanie wydajności aplikacji. Śledzenie to raport z danymi o wydajności zarejestrowanymi w dwóch punktach czasu w aplikacji.

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

Domyślnym wskaźnikiem niestandardowego logu czasu jest „czas trwania” (czas między jego punktem początkowym a końcowym). 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. Niestandardowe ślady kodu można uruchamiać w dowolnym momencie po utworzeniu i są bezpieczne w wątkach.

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

Dane z tych logów czasu możesz wyświetlić na podkarcie Niestandardowe logi czasu tabeli logów czasu 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 ś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 (np. poziom gry lub 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 np. utworzyć dane niestandardowe obejmujące liczbę trafień i niepowodzeń w pamięci podręcznej lub liczby przypadków, gdy interfejs użytkownika nie odpowiada przez zauważalny okres.

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

Dodawanie niestandardowych ścieżek kodu

Za pomocą interfejsu Performance Monitoring Trace API możesz dodać niestandardowe logi czasu na potrzeby monitorowania określonego kodu aplikacji.

Pamiętaj:

  • Aplikacja może mieć wiele ścieżek śledzenia kodu niestandardowego.
  • Jednocześnie może być uruchomiony więcej niż 1 niestandardowy log czasu kodu.
  • Nazwy niestandardowych logów czasu kodu muszą spełniać te wymagania: brak spacji na początku ani na końcu, bez znaku podkreślenia (_) i maksymalnie 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. Interfejs User Timing API jest szczególnie przydatny, jeśli wolisz ładować pakiet SDK Performance Monitoring asynchronicznie. Po zainicjowaniu pakietu SDK zarejestruje 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. Użyj Performance Monitoring Trace API, jeśli chcesz dodać te elementy niestandardowe do niestandardowego logu czasu w kodzie.

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 ślad niestandardowego kodu 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 poniżej. 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

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 powiąże go z konkretnym niestandardowym logem czasu w kodzie. 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 znaków spacji na początku i na końcu, brak znaku podkreślenia (_) na początku.
    • Brak pokoi
    • Maksymalna długość to 32 znaki
    • Dozwolone znaki w nazwie to A-Z, a-z i _.
  • 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 na temat danych o skuteczności w czasie rzeczywistym

Śledzenie określonych 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, analizując zmiany z tygodnia na tydzień lub sprawdzać, czy ostatnie zmiany w kodzie poprawiają wydajność.

obraz tablicy danych w <span class=Panel Monitorowanie wydajności Firebase” />

Aby dodać dane do panelu danych:

  1. Otwórz panel Wydajność w konsoli Firebase.
  2. Kliknij pustą kartę wskaźnika, a potem wybierz jeden z istniejących rodzajów danych, który chcesz dodać do swojej tablicy.
  3. Aby uzyskać więcej opcji, na wypełnionej karcie danych kliknij . Możesz na przykład zastąpić lub usunąć dane.

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 ścieżek i ich danych

Aby wyświetlić ścieżki, otwórz panel Skuteczność w konsoli Firebase, przewiń w dół do tabeli ścieżek i kliknij odpowiednią kartę. Tabela zawiera wybrane dane dotyczące każdego śladu. Możesz nawet posortować listę według zmiany procentowej konkretnego rodzaju danych.

Performance Monitoring udostępnia stronę rozwiązywania problemów w konsoli Firebase, na której znajdziesz informacje o zmianach danych. Dzięki temu możesz szybko rozwiązać problemy z wydajnością oraz zminimalizować wpływ problemów z wydajnością na aplikacje i użytkowników. Znajdziesz na niej informacje o potencjalnych problemach z wydajnością, np. w takich sytuacjach:

  • Gdy wybierzesz odpowiednie dane na pulpicie, zauważysz sporą różnicę.
  • Po posortowaniu tabeli logów czasu największe delta wyświetlają się u góry. Zauważasz znaczną zmianę procentową.
  • Otrzymasz e-maila z powiadomieniem o problemie z wydajnoś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 wybranym wskaźniku.
  • W tabeli logów czasu kliknij nazwę logu czasu lub dowolną wartość wskaźnika w wierszu, który jest z nim powiązany.
  • W powiadomieniu e-mail kliknij Zbadaj teraz.

Po kliknięciu nazwy logu czasu w tabeli logów czasu możesz przeanalizować interesujące Cię wskaźniki. Kliknij przycisk Filtruj, aby przefiltrować dane według atrybutu, na przykład:

obraz: <span class=Dane Monitorowania wydajności Firebase są filtrowane według atrybutu" />
  • Aby wyświetlić dane na temat określonej strony w witrynie, zastosuj filtrowanie według adresu URL strony.
  • Filtruj według efektywnego typu połączenia, aby zobaczyć, 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 badania danych o skuteczności.

  • Dowiedz się więcej o tym, jak śledzić problemy 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 śledzenia kodu przekroczy ustawiony próg.