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