Performance Monitoring собирает трассировки, чтобы вы могли отслеживать эффективность приложения. Трассировка – это отчет о данных об эффективности, собранных между двумя моментами времени в приложении.
Трассировки сетевых запросов, автоматически собираемые Performance Monitoring, включают большинство сетевых запросов вашего приложения. Однако некоторые запросы могут не регистрироваться, или вы можете использовать другую библиотеку для выполнения сетевых запросов. В таких случаях вы можете использовать API Performance Monitoring, чтобы вручную настроить специальные трассировки сетевых запросов. Специальные трассировки сетевых запросов поддерживаются только для приложений Apple и Android.
Показатели по умолчанию для специальной трассировки сетевого запроса такие же, как и для трассировок сетевых запросов, автоматически собираемых Performance Monitoring, а именно: время ответа, размер полезной нагрузки ответа и запроса, а также доля успешных запросов. В пользовательские трассировки сетевых запросов нельзя добавлять специальные показатели.
В коде вы определяете начало и конец трассировки специального сетевого запроса с помощью API, предоставляемых Performance Monitoring SDK.
Специальные трассировки сетевых запросов отображаются в консоли Firebase вместе с сетевыми запросами, которые Performance Monitoring регистрирует автоматически (на вложенной вкладке Сетевые запросы таблицы трассировок).
Как добавить специальные трассировки сетевых запросов
Используйте Performance Monitoring HttpMetric API, чтобы добавить специальные трассировки сетевых запросов для отслеживания определенных сетевых запросов.
Чтобы вручную настроить сбор данных о специальных сетевых запросах в Performance Monitoring, добавьте код, похожий на следующий:
Kotlin
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();
В пользовательские трассировки сетевых запросов можно добавлять настраиваемые атрибуты, но не специальные показатели.
Дальнейшие действия
- Настройте оповещения о сетевых запросах, которые снижают производительность приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если время ответа для определенного шаблона URL превышает заданное вами пороговое значение.