Benutzerdefiniertes Monitoring für bestimmten Anwendungscode hinzufügen


Performance Monitoring erfasst Traces, mit denen Sie die Leistung Ihrer Anwendung überwachen können. Ein Trace ist ein Bericht von Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer Anwendung erfasst wurden.

Sie können eigene Traces erstellen, um Leistungsdaten zu überwachen, die mit bestimmtem Code in Ihrer App verknüpft sind. Mit einem benutzerdefinierten Code-Trace können Sie messen, wie lange es dauert, bis Ihre App eine bestimmte Aufgabe oder eine Reihe von Aufgaben erledigt, z. B. das Laden einer Reihe von Bildern oder das Abfragen Ihrer Datenbank.

Der Standardmesswert für einen benutzerdefinierten Code-Trace ist „Dauer“ (die Zeit zwischen dem Start- und Endpunkt des Traces). Sie können aber auch benutzerdefinierte Messwerte hinzufügen.

In Ihrem Code definieren Sie den Anfang und das Ende eines benutzerdefinierten Code-Trace mithilfe der vom Performance Monitoring SDK bereitgestellten APIs. Bei Android-Apps können Sie bestimmte Methoden auch mithilfe der @AddTrace-Annotation überwachen. Benutzerdefinierte Code-Traces können nach der Erstellung jederzeit gestartet werden und sind threadsicher.

Da für diese Protokolle standardmäßig der Messwert „Dauer“ erfasst wird, werden sie manchmal auch als „Dauerprotokolle“ bezeichnet.

Sie können Daten aus diesen Traces auf dem Untertab Benutzerdefinierte Traces der Traces-Tabelle unten im Dashboard Leistung aufrufen. Weitere Informationen zur Verwendung der Console finden Sie weiter unten auf dieser Seite.

Standardattribute, benutzerdefinierte Attribute und benutzerdefinierte Messwerte

Bei benutzerdefinierten Code-Traces protokolliert Performance Monitoring automatisch Standardattribute (allgemeine Metadaten wie App-Version, Land, Gerät usw.), damit Sie die Daten für den Trace in der Firebase-Konsole filtern können. Sie können auch benutzerdefinierte Attribute hinzufügen und überwachen, z. B. Spielebenen oder Nutzereigenschaften.

Sie können ein benutzerdefiniertes Code-Trace weiter konfigurieren, um benutzerdefinierte Messwerte für leistungsbezogene Ereignisse im Trace-Bereich aufzuzeichnen. Sie können beispielsweise einen benutzerdefinierten Messwert für die Anzahl der Cache-Treffer und ‑Ausfälle oder für die Häufigkeit erstellen, mit der die Benutzeroberfläche für einen längeren Zeitraum nicht reagiert.

Benutzerdefinierte Attribute und benutzerdefinierte Messwerte werden in der Firebase-Konsole neben den Standardattributen und dem Standardmesswert für den Trace angezeigt.

Benutzerdefinierte Code-Traces hinzufügen

Mit der Trace API von Performance Monitoring können Sie benutzerdefinierte Code-Traces hinzufügen, um bestimmten Anwendungscode zu überwachen.

Wichtige Hinweise:

  • Eine App kann mehrere benutzerdefinierte Code-Traces haben.
  • Es kann mehr als ein benutzerdefinierter Code-Trace gleichzeitig ausgeführt werden.
  • Namen für benutzerdefinierte Code-Traces müssen die folgenden Anforderungen erfüllen: Vor- oder nachgestellte Leerzeichen, Unterstriche (_) dürfen nicht vorangestellt werden und die maximale Länge beträgt 100 Zeichen.
  • Benutzerdefinierte Code-Traces unterstützen das Hinzufügen von benutzerdefinierten Messwerten und benutzerdefinierten Attributen.

Wenn Sie eine benutzerdefinierte Code-Spur starten und beenden möchten, umschließen Sie den Code, den Sie erfassen möchten, mit Codezeilen wie den folgenden. In diesem Beispiel wird der benutzerdefinierte Trace-Name test_trace verwendet:

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

(Optional) Bestimmte Methoden mit @AddTrace überwachen

Android-Apps unterstützen auch die Annotation @AddTrace, um benutzerdefinierte Codetraces zu instrumentieren. Bei dieser Funktion beginnt die Ablaufverfolgung am Anfang der angegebenen Methode und endet, wenn die Methode abgeschlossen ist. Dazu gehören auch alle von der Methode aufgerufenen Elemente.

Sie können beispielsweise einen benutzerdefinierten Code-Trace namens onCreateTrace erstellen, der ausgeführt wird, wenn die Methode onCreate() aufgerufen wird.

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

Benutzerdefinierten Code-Traces benutzerdefinierte Messwerte hinzufügen

Mit der Trace API von Performance Monitoring können Sie benutzerdefinierten Code-Traces benutzerdefinierte Messwerte hinzufügen.

Wichtige Hinweise:

  • Namen für benutzerdefinierte Messwerte müssen die folgenden Anforderungen erfüllen: Sie dürfen keine anführenden oder nachgestellten Leerzeichen, keinen anführenden Unterstrich (_) und eine maximale Länge von 100 Zeichen haben.
  • Für jeden benutzerdefinierten Code-Trace können bis zu 32 Messwerte erfasst werden, einschließlich des Standardmesswerts Dauer.

Wenn Sie einen benutzerdefinierten Messwert hinzufügen möchten, fügen Sie jedes Mal, wenn das Ereignis eintritt, eine Codezeile hinzu, die der folgenden ähnelt. Mit diesem benutzerdefinierten Messwert werden beispielsweise leistungsbezogene Ereignisse in Ihrer App gezählt, z. B. Cache-Treffer und -Fehlschläge (mit den Beispielereignisnamen item_cache_hit und item_cache_miss und einem Increment von 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();

Benutzerdefinierte Attribute für benutzerdefinierte Code-Traces erstellen

Mit der Trace API von Performance Monitoring können Sie benutzerdefinierten Code-Traces benutzerdefinierte Attribute hinzufügen.

Wenn Sie benutzerdefinierte Attribute verwenden möchten, fügen Sie Ihrer App Code hinzu, der das Attribut definiert und mit einer bestimmten benutzerdefinierten Code-Spurenverknüpfung verknüpft. Sie können das benutzerdefinierte Attribut jederzeit zwischen dem Start und dem Ende der Aufzeichnung festlegen.

Wichtige Hinweise:

  • Namen für benutzerdefinierte Attribute müssen die folgenden Anforderungen erfüllen:

    • Keine führenden oder nachgestellten Leerzeichen, kein vorangestelltes Unterstrichzeichen (_)
    • Keine Leerzeichen
    • Darf maximal 32 Zeichen lang sein
    • Zulässige Zeichen für den Namen sind A-Z, a-z und _.
  • Für jede benutzerdefinierte Code-Spuren können bis zu fünf benutzerdefinierte Attribute erfasst werden.

  • Benutzerdefinierte Attribute dürfen keine Informationen enthalten, die eine Person für Google identifizieren.

    Weitere Informationen zu dieser Richtlinie

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

Leistungsdaten erfassen, ansehen und filtern

Bestimmte Messwerte in Ihrem Dashboard verfolgen

Wenn Sie wissen möchten, wie sich Ihre wichtigsten Messwerte entwickeln, fügen Sie sie oben im Dashboard Leistung Ihrem Messwertbereich hinzu. Sie können schnell Regressionen erkennen, indem Sie die Änderungen von Woche zu Woche analysieren, oder prüfen, ob die Leistung durch die letzten Änderungen am Code verbessert wurde.

Bild des Messwert-Dashboards im <span class=Dashboard „Firebase Performance Monitoring“ />

So fügen Sie Ihrem Messwertbereich einen Messwert hinzu:

  1. Rufen Sie in der Firebase-Konsole das Dashboard „Leistung“ auf.
  2. Klicken Sie auf eine leere Messwertkarte und wählen Sie einen vorhandenen Messwert aus, um ihn dem Dashboard hinzuzufügen.
  3. Klicken Sie auf einer Messwertkarte mit Werten auf , um weitere Optionen aufzurufen und beispielsweise einen Messwert zu ersetzen oder zu entfernen.

Die Messwerttafel zeigt gesammelte Messwertdaten im Zeitverlauf sowohl in grafischer Form als auch als numerische prozentuale Änderung.

Weitere Informationen zur Verwendung des Dashboards

Traces und zugehörige Daten ansehen

Wenn Sie sich Ihre Traces ansehen möchten, rufen Sie in der Firebase-Konsole das Dashboard Leistung auf, scrollen Sie nach unten zur Tabelle mit den Traces und klicken Sie dann auf den entsprechenden Untertab. In der Tabelle werden einige der wichtigsten Messwerte für jeden Trace angezeigt. Sie können die Liste auch nach der prozentualen Änderung für einen bestimmten Messwert sortieren.

Performance Monitoring bietet in der Firebase-Konsole eine Seite zur Fehlerbehebung, auf der Messwertänderungen hervorgehoben werden. So können Sie Leistungsprobleme schnell beheben und deren Auswirkungen auf Ihre Apps und Nutzer minimieren. Sie können die Seite zur Fehlerbehebung verwenden, wenn Sie potenzielle Leistungsprobleme feststellen, z. B. in den folgenden Fällen:

  • Sie wählen relevante Messwerte im Dashboard aus und stellen ein großes Delta fest.
  • In der Tabelle mit den Traces sortieren Sie die Daten so, dass die größten Deltas oben angezeigt werden. Sie sehen eine deutliche prozentuale Änderung.
  • Sie erhalten eine E-Mail-Benachrichtigung über ein Leistungsproblem.

Sie haben folgende Möglichkeiten, um auf die Seite zur Fehlerbehebung zuzugreifen:

  • Klicken Sie auf dem Messwert-Dashboard auf die Schaltfläche Messwertdetails ansehen.
  • Klicken Sie auf einer Messwertkarte auf > Details ansehen. Auf der Seite zur Fehlerbehebung werden Informationen zum ausgewählten Messwert angezeigt.
  • Klicken Sie in der Tabelle „Traces“ auf einen Trace-Namen oder einen Messwert in der Zeile, die mit diesem Trace verknüpft ist.
  • Klicken Sie in einer E-Mail-Benachrichtigung auf Jetzt untersuchen.

Wenn Sie in der Tabelle „Traces“ auf einen Trace-Namen klicken, können Sie die Messwerte aufschlüsseln. Klicken Sie auf die Schaltfläche Filter, um die Daten nach Attribut zu filtern, z. B.:

ein Bild von <span class=Firebase Performance Monitoring-Daten werden nach Attribut gefiltert" />
  • Filtern Sie nach App-Version, um Daten zu einem früheren oder aktuellen Release aufzurufen.
  • Filtere nach Gerät, um zu sehen, wie ältere Geräte deine App verwenden
  • Filtern Sie nach Land, um sicherzustellen, dass sich der Speicherort Ihrer Datenbank nicht auf eine bestimmte Region auswirkt.

Weitere Informationen zum Ansehen von Daten für Ihre Traces

Nächste Schritte

  • Sehen Sie sich detaillierte Berichte zu Nutzersitzungen an, in denen Sie ein bestimmtes Trace in einem Zeitachsenkontext anderer Traces sehen können, die während derselben Sitzung erfasst wurden.