Dodawanie niestandardowego monitorowania na potrzeby określonego kodu aplikacji


Performance Monitoring zbiera ślady, które pomagają Ci monitorować wydajność aplikacji. O jest raport zawierający dane dotyczące wydajności zebrane między dwoma punktami w czasie do aplikacji.

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.

Początek i koniec niestandardowego logu czasu w kodzie definiujesz za pomocą interfejsów API dostępnych w pakiecie SDK Performance Monitoring. W przypadku aplikacji na Androida możesz też monitorować określone metody za pomocą @AddTrace adnotacja. Ścieżki niestandardowego kodu można uruchomić w dowolnym momencie po ich utworzeniu i są one bezpieczne w wątku.

Jako że domyślne dane zbierane dla tych logów czasu to „duration”, są one czasem nazywany „logami czasu trwania”.

Dane z tych logów możesz wyświetlić na podkarcie Niestandardowe logi czasu. znajdującą się u dołu panelu Skuteczność (dowiedz się więcej o za pomocą konsoli na tej stronie).

Atrybuty domyślne, atrybuty niestandardowe i dane niestandardowe

W przypadku niestandardowych logów czasu Performance Monitoring automatycznie loguje się atrybuty domyślne (wspólne metadane, np. wersja aplikacji, kraj, urządzenie itp.) aby można było przefiltrować dane logu czasu w konsoli Firebase. Możesz też dodawać i monitorować atrybuty niestandardowe (np. poziom gry lub właściwości użytkownika).

Możesz dodatkowo skonfigurować niestandardowy log czasu, aby rejestrować danych niestandardowych do zdarzeń związanych ze skutecznością, występują w zakresie logu czasu. Możesz np. utworzyć dane niestandardowe o nazwie liczba trafień i braków w pamięci podręcznej lub liczba przypadków, gdy interfejs użytkownika nie odpowiada przez zauważalny okres.

Niestandardowe atrybuty i dane są wyświetlane w konsoli Firebase obok domyślnych atrybutów i domyślnych danych śledzenia.

Dodawanie niestandardowych ścieżek kodu

Użyj funkcji Performance Monitoring Interfejs Trace API , aby dodać niestandardowe ślady kodu w celu monitorowania konkretnego 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 znaków początkowych lub na końcu, bez znaku podkreślenia (_) i maksymalnej długości wynosi 100 znaków.
  • Niestandardowe logi czasu obsługują dodawanie niestandardowych danych atrybuty niestandardowe.

Aby rozpocząć i zatrzymać niestandardowy log czasu, opakuj kod, za pomocą którego chcesz śledzić kod wiersze kodu podobne do tych (w tym przykładzie użyto niestandardowej nazwy logu czasu 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ą też @AddTrace adnotacja w celu instrumentowania niestandardowych logów czasu. Dzięki tej funkcji ślad zaczyna się w początku określonej metody i zatrzymuje się po jej zakończeniu, w tym wszystkie elementy wywoływane przez tę metodę.

Możesz na przykład utworzyć niestandardowy ślad kodu o nazwie onCreateTrace, który jest wykonywany, gdy wywoływana jest metoda 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);
}

Dodawanie niestandardowych danych do niestandardowych logów kodu

Użyj funkcji Performance Monitoring Interfejs Trace API , aby dodać niestandardowe wskaźniki do niestandardowych logów czasu kodu.

Pamiętaj:

  • Nazwy danych niestandardowych muszą spełniać te wymagania: bez spacji na początku ani na końcu, bez znaku podkreślenia (_), a 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, 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, takie jak trafienia i niepowodzenia w pamięci podręcznej; (z zastosowaniem przykładowych nazw zdarzeń item_cache_hit i item_cache_miss oraz przyrost 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();

Tworzenie atrybutów niestandardowych na potrzeby niestandardowych logów czasu

Użyj Performance Monitoring Trace API do dodania atrybutów niestandardowych 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. Możesz określić w dowolnym momencie od rozpoczęcia śledzenia do jego zakończenia.

Pamiętaj:

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

    • Brak znaków odstępu 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_.
  • Każdy niestandardowy ślad kodu może rejestrować maksymalnie 5 atrybutów niestandardowych.

  • Upewnij się, że atrybuty niestandardowe nie zawierają żadnych informacji, które osobiście identyfikuje daną osobę w Google.

    Więcej informacji 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();

Śledzenie, wyświetlanie i filtrowanie danych o skuteczności

Śledzenie określonych danych w panelu

Aby poznać trendy dotyczące kluczowych wskaźników, dodaj je do tabeli danych u góry Panel 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 Monitorowanie wydajności Firebase />

Aby dodać wskaźnik do tablicy wskaźników, wykonaj te czynności:

  1. Przejdź do Panel wydajności 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. Kliknij na wypełnionej karcie danych, aby wyświetlić więcej opcji. np. zastąpienie lub usunięcie danych.

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, otwórz Panel Skuteczność W konsoli Firebase przewiń w dół do tabeli logów czasu i kliknij odpowiednią podkartę. 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 wyróżnione są dane. zmian, dzięki czemu można szybko rozwiązać problemy i zminimalizować wpływ problemów ze skutecznością aplikacji 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:

  • Gdy wybierasz odpowiednie dane na pulpicie, zauważasz dużą różnicę.
  • Po posortowaniu w tabeli logów czasu największe delta wyświetlają się u góry. znacznej zmiany procentowej.
  • Otrzymasz e-maila z powiadomieniem o problemie z wydajnością.

Stronę rozwiązywania problemów możesz otworzyć na kilka sposobów:

  • W panelu wskaźników kliknij przycisk Wyświetl szczegóły wskaźnika.
  • Na dowolnej karcie danych wybierz => Wyświetl szczegóły. Na stronie rozwiązywania problemów wyświetlane są informacje o wskaźniku wybrane przez Ciebie.
  • W tabeli logów czasu kliknij nazwę logu czasu lub dowolną wartość danych w wierszu, który jest z nim powiązany. śledzić.
  • W e-mailu z powiadomieniem kliknij Zbadaj.

Po kliknięciu nazwy śledzenia w tabeli śledzenia możesz rozwinąć interesujące Cię dane. Kliknij Filtruj – do filtrowania danych według atrybutu, na przykład:

obraz <span class=Dane Monitorowania wydajności Firebase są filtrowane według atrybutu" />
  • Aby wyświetlić dane o poprzedniej lub najnowszej wersji, zastosuj filtrowanie według wersji aplikacji.
  • Filtruj według kategorii Urządzenie, aby dowiedzieć się, jak starsze urządzenia obsługują Twoją aplikację.
  • Filtruj według kraju, aby sprawdzić, czy lokalizacja bazy danych nie ma wpływu na konkretny region

Dowiedz się więcej o wyświetlaniu danych dotyczących swoich ścieżek.

Następne kroki

  • Więcej informacji o za pomocą atrybutów, by analizować dane o skuteczności.

  • Dowiedz się więcej o tym, śledź problemy ze skutecznością w konsoli Firebase.

  • Skonfiguruj alerty o zmianach w kodzie, które mogą się pogarszać wydajność aplikacji. Możesz na przykład skonfigurować alert e-mail dla: Twojego zespołu, jeśli czas trwania niestandardowego śledzenia kodu przekracza wyznaczoną przez Ciebie wartość progową.

  • Wyświetl szczegółowe raporty na temat sesji użytkowników, podczas których możesz zobaczyć konkretny log czasu w kontekście osi czasu innych śladów zebranych podczas tego samego okresu, .