Performance Monitoring erfasst Traces , um Ihnen bei der Überwachung der Leistung Ihrer App zu helfen. Ein Trace ist ein Bericht mit Leistungsdaten, die zwischen zwei Zeitpunkten in Ihrer App erfasst wurden.
Die von Performance Monitoring automatisch erfassten Traces für Netzwerkanfragen umfassen die meisten Netzwerkanfragen für Ihre App. Einige Anfragen werden jedoch möglicherweise nicht gemeldet oder Sie verwenden eine andere Bibliothek, um Netzwerkanfragen zu stellen. In diesen Fällen können Sie die Performance Monitoring API verwenden, um benutzerdefinierte Traces für Netzwerkanfragen manuell zu instrumentieren. Benutzerdefinierte Traces für Netzwerkanfragen werden nur für Apple- und Android-Apps unterstützt.
Die Standardmesswerte für einen benutzerdefinierten Trace für Netzwerkanfragen sind dieselben wie für die Traces für Netzwerkanfragen, die automatisch von Performance Monitoring erfasst werden, insbesondere Antwortzeit, Größe der Antwort- und Anfragennutzlast und Erfolgsrate. Bei benutzerdefinierten Traces für Netzwerkanfragen können keine benutzerdefinierten Messwerte hinzugefügt werden.
In Ihrem Code definieren Sie den Anfang und das Ende eines benutzerdefinierten Traces für Netzwerkanfragen mit den APIs, die vom Performance Monitoring SDK bereitgestellt werden.
Benutzerdefinierte Traces für Netzwerkanfragen werden in der Firebase Console neben den Netzwerkanfragen angezeigt, die von Performance Monitoring automatisch erfasst werden (auf dem Untertab Netzwerkanfragen der Tracetabelle).
Benutzerdefinierte Traces für Netzwerkanfragen hinzufügen
Verwenden Sie die Performance Monitoring HttpMetric API um benutzerdefinierte Traces für Netzwerkanfragen hinzuzufügen und bestimmte Netzwerkanfragen zu überwachen.
Wenn Sie benutzerdefinierte Netzwerkanfragen in Performance Monitoring manuell instrumentieren möchten, fügen Sie Code hinzu, der dem folgenden ähnelt:
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();
Bei benutzerdefinierten Traces für Netzwerkanfragen können auch benutzerdefinierte Attribute aber keine benutzerdefinierten Messwerte hinzugefügt werden.
Nächste Schritte
- Richten Sie Benachrichtigungen ein für Netzwerkanfragen, 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.