Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

Monitorowanie wydajności zbiera ślady , aby pomóc Ci monitorować wydajność Twojej aplikacji. Ślad to raport danych o wydajności przechwyconych między dwoma punktami w czasie w Twojej aplikacji.

Ślady żądań sieciowych zbierane automatycznie przez monitorowanie wydajności obejmują większość żądań sieciowych dotyczących Twojej aplikacji. Jednak niektóre żądania mogą nie być zgłaszane lub możesz użyć innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach można użyć interfejsu Performance Monitoring API do ręcznej instrumentacji śledzenia niestandardowych żądań sieciowych . Niestandardowe śledzenie żądań sieciowych jest obsługiwane tylko w przypadku aplikacji Apple i Android.

Domyślne metryki dla niestandardowego śledzenia żądań sieciowych są takie same, jak dla śledzenia żądań sieciowych automatycznie zbieranych przez monitorowanie wydajności, w szczególności czas odpowiedzi, rozmiar ładunku odpowiedzi i żądania oraz współczynnik powodzenia. Śledzenie niestandardowych żądań sieciowych nie obsługuje dodawania niestandardowych metryk.

W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia żądania sieciowego za pomocą interfejsów API udostępnianych przez zestaw SDK do monitorowania wydajności.

Ślady niestandardowych żądań sieciowych pojawiają się w konsoli Firebase obok żądań sieciowych przechwytywanych automatycznie przez monitorowanie wydajności (na podkarcie Żądania sieciowe w tabeli śledzenia).

Dodaj niestandardowe ślady żądań sieciowych

Użyj interfejsu API monitorowania wydajności HttpMetric , 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();

Śledzenie niestandardowych żądań sieciowych obsługuje również dodawanie niestandardowych atrybutów , ale nie niestandardowych metryk.

Następne kroki

  • Skonfiguruj alerty dotyczące żądań sieciowych, które obniżają wydajność Twojej aplikacji. Na przykład możesz skonfigurować alert e-mail dla swojego zespołu, jeśli czas odpowiedzi dla określonego wzorca adresu URL przekroczy ustawiony próg.