Dodaj niestandardowe monitorowanie dla określonego kodu aplikacji

Monitorowanie wydajności zbiera ślady , które pomagają monitorować wydajność aplikacji. Ślad to raport danych dotyczących wydajności zarejestrowanych między dwoma punktami w czasie w aplikacji.

Możesz tworzyć własne ślady, aby monitorować dane dotyczące wydajności powiązane z określonym kodem w 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 wykonanie zapytania do bazy danych.

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

W kodzie definiujesz początek i koniec niestandardowego śledzenia kodu przy użyciu interfejsów API udostępnianych przez zestaw SDK do monitorowania wydajności.W przypadku aplikacji na Androida można także monitorować określone metody, korzystając z adnotacji @AddTrace .Śledzenie kodu niestandardowego można uruchomić w dowolnym momencie po jego utworzeniu i jest ono bezpieczne dla wątków.

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

Możesz wyświetlić dane z tych śladów na podkarcie Ślady niestandardowe tabeli śladów, która znajduje się na dole panelu kontrolnego Wydajność (więcej informacji o korzystaniu z konsoli znajdziesz w dalszej części tej strony).

Atrybuty domyślne, atrybuty niestandardowe i metryki niestandardowe

W przypadku niestandardowych śladów kodu funkcja Monitorowanie wydajności automatycznie rejestruje atrybuty domyślne (typowe metadane, takie jak wersja aplikacji, kraj, urządzenie 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. Można na przykład utworzyć niestandardowy wskaźnik liczby trafień i chybień w pamięci podręcznej lub liczby przypadków, w których interfejs użytkownika przestanie odpowiadać 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 dla śledzenia.

Dodaj niestandardowe ślady kodu

Użyj interfejsu API śledzenia monitorowania wydajności, aby dodać niestandardowe ślady kodu w celu monitorowania kodu określonej aplikacji.

Zwróć uwagę na następujące kwestie:

  • Aplikacja może mieć wiele niestandardowych śladów kodu.
  • Jednocześnie można uruchomić więcej niż jedno śledzenie kodu niestandardowego.
  • Nazwy niestandardowych śladów kodu muszą spełniać następujące wymagania: brak początkowych i końcowych białych znaków, brak początkowego znaku podkreślenia ( _ ), a maksymalna długość to 100 znaków.
  • Niestandardowe ślady kodu obsługują dodawanie niestandardowych metryk i atrybutów niestandardowych .

Aby rozpocząć i zatrzymać niestandardowe śledzenie kodu, zawiń kod, który chcesz śledzić, liniami kodu podobnymi do poniższych (w tym przykładzie użyto niestandardowej nazwy śledzenia test_trace ):

Kotlin+KTX

// Import these Performance Monitoring classes at the top of your `.kt` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;

val myTrace = Firebase.performance.newTrace("test_trace")
myTrace.start()

// code that you want to trace

myTrace.stop()

Java

// Import these Performance Monitoring classes at the top of your `.java` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;

Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace");
myTrace.start();

// code that you want to trace

myTrace.stop();

(Opcjonalnie) Monitoruj określone metody za pomocą @AddTrace

Aplikacje na Androida obsługują także adnotację @AddTrace w celu instrumentowania niestandardowych śladów kodu. Dzięki tej funkcji śledzenie rozpoczyna się na początku określonej metody i kończy po zakończeniu metody, łącznie ze wszystkimi wywołaniami metody.

Można na przykład utworzyć niestandardowy kod śledzenia o nazwie onCreateTrace , który będzie uruchamiany po wywołaniu metody onCreate() .

Kotlin+KTX

// Import these Performance Monitoring classes at the top of your `.kt` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.AddTrace;

// Add the `@AddTrace` annotation above the method you want to trace
// the `enabled` argument is optional and defaults to true
@AddTrace(name = "onCreateTrace", enabled = true)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
}

Java

// Import these Performance Monitoring classes at the top of your `.java` file
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.AddTrace;

// Add the `@AddTrace` annotation above the method you want to trace
@Override
@AddTrace(name = "onCreateTrace", enabled = true /* optional */)
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

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.

Zwróć uwagę na następujące kwestie:

  • Nazwy metryk niestandardowych muszą spełniać następujące wymagania: nie mogą zawierać początkowych ani końcowych białych znaków, nie mogą mieć początkowego znaku podkreślenia ( _ ), a maksymalna długość to 100 znaków.
  • Każdy niestandardowy ślad kodu może rejestrować do 32 metryk (w tym domyślną metrykę Czas trwania ).

Aby dodać niestandardową metrykę, za każdym razem, gdy wystąpi zdarzenie, dodaj wiersz kodu podobny do poniższego. Na przykład ta niestandardowa metryka zlicza zdarzenia związane z wydajnością, które występują w Twojej aplikacji, takie jak trafienia i chybienia w pamięci podręcznej (używając przykładowych nazw zdarzeń item_cache_hit i item_cache_miss oraz przyrostu o 1 ).

Kotlin+KTX

val myTrace = Firebase.performance.newTrace("test_trace")
myTrace.start()

// code that you want to trace (and log custom metrics)
val item = cache.fetch("item")
if (item != null) {
    myTrace.incrementMetric("item_cache_hit", 1)
} else {
    myTrace.incrementMetric("item_cache_miss", 1)
}

myTrace.stop()

Java

Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace");
myTrace.start();

// code that you want to trace (and log custom metrics)
Item item = cache.fetch("item");
if (item != null) {
    myTrace.incrementMetric("item_cache_hit", 1);
} else {
    myTrace.incrementMetric("item_cache_miss", 1);
}

myTrace.stop();

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

Użyj interfejsu API śledzenia monitorowania wydajności, 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 śledzeniem kodu niestandardowego. Atrybut niestandardowy można ustawić w dowolnym momencie pomiędzy rozpoczęciem a zakończeniem śledzenia.

Zwróć uwagę na następujące kwestie:

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

    • Żadnych początkowych i końcowych białych znaków, żadnego 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 zarejestrować do 5 niestandardowych atrybutów.

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

    Dowiedz się więcej o tych wytycznych

Kotlin+KTX

Firebase.performance.newTrace("test_trace").trace {
    // Update scenario.
    putAttribute("experiment", "A")

    // Reading scenario.
    val experimentValue = getAttribute("experiment")

    // Delete scenario.
    removeAttribute("experiment")

    // Read attributes.
    val traceAttributes = this.attributes
}

Java

Trace trace = FirebasePerformance.getInstance().newTrace("test_trace");

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

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

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

// Read attributes.
Map<String, String> traceAttributes = trace.getAttributes();

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

Śledź określone wskaźniki na swoim pulpicie nawigacyjnym

Aby dowiedzieć się, jakie są trendy w zakresie kluczowych wskaźników, dodaj je do tablicy wskaźników u góry pulpitu nawigacyjnego Wydajność . Możesz szybko zidentyfikować regresje, obserwując zmiany z tygodnia na tydzień lub sprawdzając, czy ostatnie zmiany w kodzie poprawiają wydajność.

obraz tablicy wskaźników na pulpicie nawigacyjnym monitorowania wydajności Firebase

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

  1. Przejdź do panelu Wydajność 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ąpić lub usunąć metrykę.

Tablica metryk przedstawia zebrane dane metryk w czasie, zarówno w formie graficznej, jak i jako liczbowa zmiana procentowa.

Dowiedz się więcej o korzystaniu z panelu kontrolnego .

Wyświetl ślady i ich dane

Aby wyświetlić swoje ślady, przejdź do panelu Wydajność w konsoli Firebase, przewiń w dół do tabeli śladów, a następnie kliknij odpowiednią podkartę. W tabeli wyświetlane są najważniejsze metryki dla każdego śladu. Można nawet posortować listę według procentowej zmiany określonej metryki.

Monitorowanie wydajności udostępnia stronę rozwiązywania problemów w konsoli Firebase, która podkreśla zmiany wskaźników, co ułatwia szybkie rozwiązywanie problemów z wydajnością i minimalizowanie ich wpływu na aplikacje i użytkowników. Ze strony rozwiązywania problemów możesz skorzystać, 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ę.
  • Sortujesz tabelę śladów, aby wyświetlić największe delty na górze i widzisz znaczną zmianę procentową.
  • Otrzymasz powiadomienie 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 panelu metryki kliknij przycisk Wyświetl szczegóły metryki .
  • Na dowolnej karcie metrycznej wybierz => Zobacz szczegóły . Strona rozwiązywania problemów wyświetla informacje o wybranej metryce.
  • W tabeli śladów kliknij nazwę śledzenia lub dowolną wartość metryki w wierszu powiązanym z tym śladem.
  • W alercie e-mailowym kliknij Zbadaj teraz .

Klikając nazwę śledzenia w tabeli śladów, możesz przejść do interesujących Cię metryk. Kliknij Przycisk filtr , aby filtrować dane według atrybutu, na przykład:

obraz danych Firebase Performance Monitoring filtrowanych według atrybutów
  • Filtruj według wersji aplikacji, aby wyświetlić dane o poprzedniej lub najnowszej wersji
  • Filtruj według urządzenia , aby dowiedzieć się, jak starsze urządzenia obsługują Twoją aplikację
  • Filtruj według kraju , aby upewnić się, że lokalizacja bazy danych nie ma wpływu na konkretny region

Dowiedz się więcej o przeglądaniu danych dotyczących śladów .

Następne kroki

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

  • Przeglądaj szczegółowe raporty sesji użytkowników , w których możesz zobaczyć konkretny ślad w kontekście osi czasu innych śladów zebranych podczas tej samej sesji.