Dodawanie niestandardowego monitorowania na potrzeby konkretnych żądań sieciowych (aplikacje Apple i na Androida)


Performance Monitoring zbiera ślady, które pomagają Ci monitorować wydajność aplikacji. O jest raport zawierający dane dotyczące wydajności zebrane między dwoma punktami w czasie do aplikacji.

ślady żądań sieciowych automatycznie zbierane przez Performance Monitoring uwzględnianie większości żądań sieciowych dla aplikacji. Niektóre żądania mogą jednak nie zostać lub używasz innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach możesz ręcznie zaimplementować interfejs API Performance Monitoring, aby tworzyć niestandardowe ścieżki żądań sieci. Niestandardowe logi czasu żądań sieciowych to tylko obsługiwane w aplikacjach Apple i na Androida.

Domyślne dane niestandardowego śledzenia żądań sieciowych są takie same jak w przypadku ślady żądań sieciowych zbierane automatycznie przez Performance Monitoring, a w szczególności czas odpowiedzi, odpowiedź i rozmiar ładunku żądań, a także wskaźnik sukcesu. Niestandardowy zakres dat w śladach żądań sieciowych nie można dodawać niestandardowych wskaźników.

W swoim kodzie definiujesz początek i koniec niestandardowego żądania sieciowego śledzić za pomocą interfejsów API dostępnych w pakiecie SDK Performance Monitoring.

Niestandardowe logi żądań sieciowych wyświetlają się w konsoli Firebase obok żądania sieciowe, które Performance Monitoring przechwytuje automatycznie (na podkarcie Żądania sieciowe tabeli logów czasu).

Dodaj niestandardowe logi czasu żądań sieciowych

Użyj funkcji Performance Monitoring Interfejs API HttpMetric możesz dodać niestandardowe logi czasu żądań sieciowych w celu monitorowania konkretnych żądań sieciowych.

Aby ręcznie instrumentować niestandardowe żądania sieci w Performance Monitoring, dodaj podobny kod na:

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 logi czasu żądań sieciowych obsługują też dodawanie atrybuty niestandardowe ale nie danych niestandardowych.

Dalsze kroki

  • Skonfiguruj alerty o żądaniach sieciowych, które pogarszają wyniki wydajność aplikacji. Możesz na przykład skonfigurować alert e-mail dla: Twojego zespołu, jeśli czas odpowiedzi dla określonego wzorca adresu URL przekracza wyznaczoną przez Ciebie wartość progową.