Performance Monitoring erfasst Traces, mit denen Sie die Leistung Ihrer App überwachen können. Ein Trace ist ein Bericht mit Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer App erfasst wurden.
Die von Performance Monitoring automatisch erfassten Netzwerkanfrage-Traces umfassen die meisten Netzwerkanfragen für Ihre App. Einige Anfragen werden jedoch möglicherweise nicht erfasst oder Sie verwenden eine andere Bibliothek für Netzwerkanfragen. In diesen Fällen können Sie die Performance Monitoring API verwenden, um benutzerdefinierte Netzwerkanfrage-Traces manuell zu instrumentieren. Benutzerdefinierte Netzwerkanfrage-Traces werden nur für Apple- und Android-Apps unterstützt.
Die Standardmesswerte für einen benutzerdefinierten Netzwerkanfrage-Trace sind dieselben wie für die automatisch von Performance Monitoring erfassten Netzwerkanfrage-Traces, insbesondere Antwortzeit, Antwort- und Anfragenutzlastgröße sowie Erfolgsquote. Benutzerdefinierte Netzwerkanfrage-Traces unterstützen das Hinzufügen benutzerdefinierter Messwerte nicht.
In Ihrem Code definieren Sie den Anfang und das Ende eines benutzerdefinierten Netzwerkanfrage-Trace mithilfe der APIs, die vom Performance Monitoring SDK bereitgestellt werden.
Benutzerdefinierte Netzwerkanfrage-Traces werden in der Firebase-Konsole zusammen mit den Netzwerkanfragen angezeigt, die Performance Monitoring automatisch erfasst (auf dem Untertab Netzwerkanfragen der Trace-Tabelle).
Benutzerdefinierte Netzwerkanfrage-Traces hinzufügen
Verwenden Sie die Performance Monitoring HttpMetric API, um benutzerdefinierte Netzwerkanfrage-Traces hinzuzufügen und bestimmte Netzwerkanfragen zu überwachen.
Wenn Sie benutzerdefinierte Netzwerkanfragen in Performance Monitoring manuell instrumentieren möchten, fügen Sie Code wie den folgenden hinzu:
Kotlin
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 Netzwerkanfrage-Traces unterstützen auch das Hinzufügen von benutzerdefinierten Attributen, aber keine benutzerdefinierten Messwerte.
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 Grenzwert überschreitet.