Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

為特定網絡請求添加自定義監控(Apple 和 Android 應用程序)

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

性能監控收集跟踪以幫助您監控應用程序的性能。跟踪是在應用程序的兩個時間點之間捕獲的性能數據報告。

性能監控自動收集的網絡請求跟踪包括應用程序的大多數網絡請求。但是,某些請求可能不會被報告,或者您可能使用不同的庫來發出網絡請求。在這些情況下,您可以使用性能監控 API 手動檢測自定義網絡請求跟踪。僅 Apple 和 Android 應用程序支持自定義網絡請求跟踪。

自定義網絡請求跟踪的默認指標與性能監控自動收集的網絡請求跟踪的指標相同,特別是響應時間、響應和請求有效負載大小以及成功率。自定義網絡請求跟踪不支持添加自定義指標。

在您的代碼中,您可以使用性能監控 SDK 提供的 API 定義自定義網絡請求跟踪的開始和結束。

自定義網絡請求跟踪與性能監控自動捕獲的網絡請求一起顯示在 Firebase 控制台中(在跟踪表的網絡請求子選項卡中)。

添加自定義網絡請求跟踪

使用性能監控HttpMetric API添加自定義網絡請求跟踪以監控特定網絡請求。

要在性能監控中手動檢測自定義網絡請求,請添加類似於以下內容的代碼:

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();

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()
}

自定義網絡請求跟踪還支持添加自定義屬性,但不支持自定義指標。

下一步

  • 為降低應用程序性能的網絡請求設置警報。例如,如果特定 URL 模式的響應時間超過您設置的閾值,您可以為您的團隊配置電子郵件警報。