Benutzerdefiniertes Monitoring für bestimmten Anwendungscode hinzufügen


Performance Monitoring erfasst Traces, damit Sie die Leistung Ihrer Anwendung überwachen können. A Trace ist ein Bericht der Leistungsdaten, die zwischen zwei Zeitpunkten in für Ihre App.

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

Der Standardmesswert für einen benutzerdefinierten Code-Trace ist seine „Dauer“ (die Zeit zwischen Start- und Endpunkte des Trace). Sie können jedoch benutzerdefinierte Messwerte.

In Ihrem Code definieren Sie den Anfang und das Ende eines benutzerdefinierten Code-Traces mithilfe der APIs, die vom Performance Monitoring SDK bereitgestellt werden. Bei Android-Apps können Sie bestimmte Methoden auch mithilfe der @AddTrace-Anmerkung. Benutzerdefinierte Code-Traces können nach ihrer Erstellung jederzeit gestartet werden und Thread-sicher sind.

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

Sie können die Daten dieser Traces auf dem Unter-Tab Benutzerdefinierte Traces der Traces ansehen. Die entsprechende Tabelle finden Sie unten auf dem Dashboard Leistung. über die Console weiter unten auf dieser Seite).

Standardattribute, benutzerdefinierte Attribute und benutzerdefinierte Messwerte

Für benutzerdefinierte 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 benutzerdefinierten Messwerten für leistungsbezogene Ereignisse, die im Geltungsbereich des Trace liegen. Sie können beispielsweise einen benutzerdefinierten Messwert für die Anzahl der Cache-Treffer und -Fehler oder die Häufigkeit, mit der die Benutzeroberfläche über einen längeren Zeitraum nicht reagieren.

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

Benutzerdefinierte Code-Traces hinzufügen

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

Wichtige Hinweise:

  • Eine App kann mehrere benutzerdefinierte Code-Traces haben.
  • Es können mehrere benutzerdefinierte Code-Traces gleichzeitig ausgeführt werden.
  • Namen für benutzerdefinierte Code-Traces müssen die folgenden Anforderungen erfüllen: keine anführenden oder nachgestellten Leerzeichen, kein anführendes Unterstrichzeichen (_) und eine maximale Länge von 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 @AddTrace Anmerkung um benutzerdefinierte Code-Traces 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);
}

Benutzerdefinierte Messwerte zu benutzerdefinierten Code-Traces hinzufügen

Verwenden Sie die Performance Monitoring Trace API, um benutzerdefinierten Code-Traces benutzerdefinierte Messwerte hinzuzufügen.

Wichtige Hinweise:

  • Namen für benutzerdefinierte Messwerte müssen die folgenden Anforderungen erfüllen: kein vorangestelltes oder nachgestelltes Leerzeichen, kein führender Unterstrich (_)-Zeichen, Die maximale Länge beträgt 100 Zeichen.
  • Jeder benutzerdefinierte Code-Trace kann bis zu 32 Messwerte aufzeichnen (einschließlich der Dauer).

Um einen benutzerdefinierten Messwert hinzuzufügen, fügen Sie jedes Mal eine Codezeile ähnlich der folgenden hinzu dass das Ereignis eintritt. 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

Verwenden Sie die Performance Monitoring Trace API, um benutzerdefinierten Code-Traces benutzerdefinierte Attribute hinzuzufü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-Spuren verknüpft. Sie können die benutzerdefinierte jederzeit zwischen dem Start des Trace und dem Beenden des Trace.

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 eindeutig 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, aufrufen und filtern

Bestimmte Messwerte in Ihrem Dashboard verfolgen

Wenn Sie wissen möchten, wie sich Ihre wichtigsten Messwerte entwickeln, fügen Sie sie Ihrer Messwerttafel oben in der Dashboard zur Leistungsüberwachung Sie können Regressionen schnell erkennen, indem Sie sich wöchentliche oder überprüfen Sie, ob die letzten Änderungen an Ihrem Code die Leistung verbessern.

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

So fügen Sie Ihrem Messwertbereich einen Messwert hinzu:

  1. Gehen Sie zur Dashboard zur Leistungsüberwachung in der Firebase-Konsole
  2. Klicken Sie auf eine leere Messwertkarte und wählen Sie dann einen vorhandenen Messwert aus, um ihn Ihrem Board hinzuzufügen.
  3. Klicken Sie auf einer ausgefüllten Messwertkarte auf , um weitere Optionen aufzurufen, z. B. um einen Messwert zu ersetzen oder zu entfernen.

Auf dem Messwert-Dashboard werden erfasste Messwertdaten im Zeitverlauf sowohl grafisch als auch als numerische prozentuale Änderung dargestellt.

Weitere Informationen zur Verwendung des Dashboards

Traces und zugehörige Daten ansehen

Ihre Traces finden Sie in der Dashboard zur Leistungsüberwachung Scrollen Sie in der Firebase-Konsole nach unten zur Traces-Tabelle 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 sogar nach den prozentuale Veränderung für einen bestimmten Messwert.

Performance Monitoring bietet in der Firebase-Konsole eine Seite zur Fehlerbehebung, auf der der Messwert hervorgehoben ist. So lassen sich die Auswirkungen von Leistungsproblemen Apps und Nutzer. Sie können die Seite zur Fehlerbehebung verwenden, wenn Sie Leistungsprobleme auftreten, z. B. in folgenden Szenarien:

  • Sie wählen relevante Messwerte im Dashboard aus und stellen eine große Abweichung 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 im Messwert-Dashboard auf die Schaltfläche Messwertdetails ansehen.
  • Klicken Sie auf einer Messwertkarte auf > Details ansehen. Auf der Seite zur Fehlerbehebung werden Informationen zum Messwert angezeigt. die Sie ausgewählt haben.
  • Klicken Sie in der Trace-Tabelle auf einen Trace-Namen oder einen beliebigen Messwert in der zugehörigen Zeile. Trace.
  • Klicken Sie in einer E-Mail-Benachrichtigung auf Jetzt prüfen.

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

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.
  • Filtern Sie nach Gerät, um zu sehen, wie ältere Geräte mit Ihrer App umgehen.
  • Filtern Sie nach Land, um sicherzustellen, dass sich der Speicherort Ihrer Datenbank nicht auf eine bestimmte Region auswirkt.

Weitere Informationen über Daten für Ihre Traces.

Nächste Schritte

  • Detaillierte Berichte zu Nutzersitzungen aufrufen, in denen Sie einen bestimmten Trace im Zeitachsenkontext anderer Traces sehen, die während derselben Sitzung erfasst wurden