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


Performance Monitoring zbiera ślady, aby ułatwić Ci monitorowanie skuteczności aplikacji. Ślad to raport danych o skuteczności, który jest rejestrowany w aplikacji między 2 momentami w czasie.

Logi czasu żądań sieciowych zbierane automatycznie przez Performance Monitoring obejmują większość żądań sieciowych Twojej aplikacji. Niektóre żądania mogą jednak nie być zgłaszane lub możesz używać innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach możesz ręcznie zaimplementować Performance Monitoring API, aby tworzyć niestandardowe ścieżki żądań sieci. Niestandardowe logi żądań sieciowych są obsługiwane tylko w przypadku aplikacji na urządzenia z systemem Android i Apple.

Domyślne dane w przypadku niestandardowego logowania żądań sieciowych są takie same jak dane logowania żądań sieciowych automatycznie zbierane przez Performance Monitoring, a w szczególności czas odpowiedzi, rozmiar odpowiedzi i zapytania oraz odsetek powodzeń. Niestandardowe ścieżki żądań sieci nie obsługują dodawania niestandardowych rodzajów danych.

W kodzie określasz początek i koniec niestandardowego śledzenia żądań sieci za pomocą interfejsów API dostępnych w pakiecie SDK Performance Monitoring.

Niestandardowe logi czasu żądań sieciowych pojawiają się w konsoli Firebase obok żądań sieciowych, które Performance Monitoring rejestruje automatycznie (w podzakładce Żądania sieciowe w tabeli z logami).

Dodawanie niestandardowych logów żądań sieciowych

Aby dodać niestandardowe ścieżki żądań sieciowych w celu monitorowania określonych żądań sieciowych, użyj Performance Monitoring HttpMetric API.

Aby ręcznie skonfigurować niestandardowe żądania sieci w pliku Performance Monitoring, dodaj kod podobny do tego:

KotlinJava
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()
}
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 ścieżki żądań sieci obsługują też dodawanie atrybutów niestandardowych, ale nie danych niestandardowych.

Dalsze kroki

  • Skonfiguruj alerty dotyczące żądań sieciowych, które pogarszają działanie aplikacji. Możesz na przykład skonfigurować alert e-mailowy dla swojego zespołu, jeśli czas odpowiedzi na określony wzorzec adresu URL przekroczy ustawiony przez Ciebie próg.