Monitorowanie wydajności zbiera ślady , które pomagają monitorować wydajność aplikacji. Ślad to raport danych dotyczących wydajności zarejestrowanych między dwoma punktami w czasie w aplikacji.
Ślady żądań sieciowych zbierane automatycznie przez monitorowanie wydajności obejmują większość żądań sieciowych dla Twojej aplikacji. Jednak niektóre żądania mogą nie zostać zgłoszone lub możesz użyć innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach można użyć interfejsu API monitorowania wydajności do ręcznego instrumentowania niestandardowych śladów żądań sieciowych . Niestandardowe ślady żądań sieciowych są obsługiwane tylko w przypadku aplikacji Apple i Android.
Domyślne metryki dla niestandardowego śledzenia żądań sieciowych są takie same, jak te dla śladów żądań sieciowych zbieranych automatycznie przez monitorowanie wydajności, w szczególności czas odpowiedzi, rozmiar ładunku odpowiedzi i żądań oraz współczynnik powodzenia. Niestandardowe ślady żądań sieciowych nie obsługują dodawania niestandardowych metryk.
W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia żądań sieciowych przy użyciu interfejsów API udostępnianych przez zestaw SDK do monitorowania wydajności.
Niestandardowe ślady żądań sieciowych pojawiają się w konsoli Firebase wraz z żądaniami sieciowymi, które Monitorowanie wydajności przechwytuje automatycznie (w podkarcie Żądania sieciowe tabeli śladów).
Dodaj niestandardowe ślady żądań sieciowych
Użyj interfejsu API HttpMetric monitorowania wydajności, aby dodać niestandardowe ślady żądań sieciowych w celu monitorowania określonych żądań sieciowych.
Aby ręcznie instrumentować niestandardowe żądania sieciowe w Monitorowaniu wydajności, dodaj kod podobny do następującego:
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();
Niestandardowe ślady żądań sieciowych obsługują również dodawanie niestandardowych atrybutów , ale nie niestandardowych metryk.
Następne kroki
- Skonfiguruj alerty dla żądań sieciowych, które obniżają wydajność Twojej aplikacji. Możesz na przykład skonfigurować alert e-mail dla swojego zespołu, jeśli czas odpowiedzi dla określonego wzorca adresu URL przekroczy ustawiony próg.