Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Dodaj niestandardowe monitorowanie dla określonego kodu aplikacji

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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.W przypadku aplikacji na Androida można również monitorować określone metody za pomocą adnotacji @AddTrace .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 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. 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 uruchomić i zatrzymać niestandardowe śledzenie kodu, otocz kod, który chcesz śledzić, wierszami 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 systemu Android obsługują również adnotację @AddTrace w celu instrumentowania niestandardowych śladów kodu. Korzystając z tej funkcji, śledzenie rozpoczyna się na początku określonej metody i zatrzymuje się, gdy metoda się zakończy, w tym wszystko, co zostało wywołane przez metodę.

Można na przykład utworzyć niestandardowy ślad kodu o nazwie onCreateTrace , który jest 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
@AddTrace(name = "onCreateTrace", enabled = true /* optional */)
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.

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, takie jak trafienia i chybienia w pamięci podręcznej (przy użyciu przykładowych nazw zdarzeń item_cache_hit i item_cache_miss oraz przyrostu 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();

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 śledzenia a 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

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 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 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 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.

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