Dodaj niestandardowe monitorowanie dla określonych żądań sieciowych (aplikacje Apple i Android)

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.