Fügen Sie eine benutzerdefinierte Überwachung für bestimmte Netzwerkanforderungen hinzu (Apple- und Android-Apps).

Die Leistungsüberwachung sammelt Ablaufverfolgungen , um Ihnen bei der Überwachung der Leistung Ihrer App zu helfen. Eine Ablaufverfolgung ist ein Bericht über Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer App erfasst wurden.

Die von der Leistungsüberwachung automatisch erfassten Netzwerkanfrage-Traces umfassen die meisten Netzwerkanfragen für Ihre App. Einige Anfragen werden jedoch möglicherweise nicht gemeldet, oder Sie verwenden möglicherweise eine andere Bibliothek, um Netzwerkanfragen zu stellen. In diesen Fällen können Sie die Performance Monitoring API verwenden, um benutzerdefinierte Netzwerkanforderungs-Traces manuell zu instrumentieren. Benutzerdefinierte Netzwerkanforderungs-Traces werden nur für Apple- und Android-Apps unterstützt.

Die Standardmetriken für eine benutzerdefinierte Netzwerkanforderungsverfolgung sind dieselben wie für die von der Leistungsüberwachung automatisch erfassten Netzwerkanforderungsverfolgungen, insbesondere Antwortzeit, Antwort- und Anforderungsnutzlastgröße und Erfolgsquote. Benutzerdefinierte Netzwerkanforderungs-Traces unterstützen das Hinzufügen benutzerdefinierter Metriken nicht.

In Ihrem Code definieren Sie den Anfang und das Ende eines benutzerdefinierten Netzwerkanforderungs-Trace mithilfe der vom Performance Monitoring SDK bereitgestellten APIs.

Benutzerdefinierte Netzwerkanfrage-Traces werden in der Firebase-Konsole neben den Netzwerkanfragen angezeigt, die Performance Monitoring automatisch erfasst (auf der Unterregisterkarte „Netzwerkanfragen“ der Traces-Tabelle).

Fügen Sie benutzerdefinierte Netzwerkanforderungs-Traces hinzu

Verwenden Sie die Performance Monitoring HttpMetric-API , um benutzerdefinierte Netzwerkanfrage-Traces hinzuzufügen, um bestimmte Netzwerkanfragen zu überwachen.

Um benutzerdefinierte Netzwerkanforderungen in der Leistungsüberwachung manuell zu instrumentieren, fügen Sie Code ähnlich dem folgenden hinzu:

Kotlin+KTX

val url = URL("https://www.google.com")
val metric = Firebase.performance.newHttpMetric(
    "https://www.google.com",
    FirebasePerformance.HttpMethod.GET,
)
metric.trace {
    val conn = url.openConnection() as HttpURLConnection
    conn.doOutput = true
    conn.setRequestProperty("Content-Type", "application/json")
    try {
        val outputStream = DataOutputStream(conn.outputStream)
        outputStream.write(data)
    } catch (ignored: IOException) {
    }

    // Set HttpMetric attributes
    setRequestPayloadSize(data.size.toLong())
    setHttpResponseCode(conn.responseCode)

    printStreamContent(conn.inputStream)

    conn.disconnect()
}

Java

HttpMetric metric =
        FirebasePerformance.getInstance().newHttpMetric("https://www.google.com",
                FirebasePerformance.HttpMethod.GET);
final URL url = new URL("https://www.google.com");
metric.start();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
try {
    DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream());
    outputStream.write(data);
} catch (IOException ignored) {
}
metric.setRequestPayloadSize(data.length);
metric.setHttpResponseCode(conn.getResponseCode());
printStreamContent(conn.getInputStream());

conn.disconnect();
metric.stop();

Benutzerdefinierte Netzwerkanforderungs-Traces unterstützen auch das Hinzufügen benutzerdefinierter Attribute , jedoch nicht benutzerdefinierter Metriken.

Nächste Schritte

  • Richten Sie Benachrichtigungen für Netzwerkanfragen ein , die die Leistung Ihrer App beeinträchtigen. Sie können beispielsweise eine E-Mail-Benachrichtigung für Ihr Team konfigurieren, wenn die Antwortzeit für ein bestimmtes URL-Muster einen von Ihnen festgelegten Schwellenwert überschreitet.