Performance Monitoring 会收集跟踪记录,帮助您监控应用的性能。跟踪记录是两个时间点之间在应用中捕获的性能数据的报告。
Performance Monitoring 自动收集的网络请求跟踪记录包括应用的大多数网络请求。但是,该跟踪记录可能不会报告某些请求,或者您可能会使用其他库来发出网络请求。在这些情况下,您可以使用 Performance Monitoring API 手动对自定义网络请求跟踪记录进行插桩。只有 Apple 和 Android 应用支持自定义网络请求跟踪记录。
自定义网络请求跟踪记录的默认指标与 Performance Monitoring 自动收集的网络请求跟踪记录的默认指标相同,具体而言,这些指标包括响应时间、响应和请求载荷大小及成功率。自定义网络请求跟踪记录不支持添加自定义指标。
在代码中,您可以使用 Performance Monitoring SDK 提供的 API 指定自定义网络请求跟踪记录的开始和结束。
自定义网络请求跟踪记录与 Performance Monitoring 自动捕获的网络请求一起显示在 Firebase 控制台中(在跟踪记录表的“网络请求”子标签页中)。
添加自定义网络请求跟踪记录
使用 Performance Monitoring HttpMetric API 添加自定义网络请求跟踪记录以监控特定网络请求。
如需在 Performance Monitoring 中手动对自定义网络请求进行插桩,请添加类似于以下内容的代码:
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();
自定义网络请求跟踪记录还支持添加自定义属性,但不支持添加自定义指标。
后续步骤
- 针对会降低应用性能的网络请求设置提醒。例如,您可以为您的团队配置电子邮件提醒,在特定网址格式的响应时间超过您设置的阈值时收到提醒。