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

Monitorowanie wydajności zbiera ślady, które ułatwiają monitorowanie działania aplikacji. O jest raport zawierający dane dotyczące wydajności zebrane między dwoma punktami w czasie do aplikacji.

dane śledzenia żądań sieciowych automatycznie zbierane przez Monitor wydajności 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 tych możesz za pomocą interfejsu Performance Monitoring API niestandardowych danych śledzenia żądań sieciowych. 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 dane śledzenia żądań sieciowych automatycznie zbierane przez Monitor wydajnoś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 udostępnianych przez pakiet SDK Performance Monitoring.

Niestandardowe logi żądań sieciowych wyświetlają się w konsoli Firebase obok żądań sieciowych rejestrowanych automatycznie przez Monitorowanie wydajności (na podkarcie Żądania sieciowe tabeli logów czasu).

Dodaj niestandardowe logi czasu żądań sieciowych

Korzystanie z Monitorowania wydajności 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 Monitorowaniu wydajności, 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ą.