Thêm giám sát tùy chỉnh cho các yêu cầu mạng cụ thể (ứng dụng Apple và Android)

Giám sát hiệu suất thu thập dấu vết để giúp bạn theo dõi hiệu suất ứng dụng của mình. Dấu vết là báo cáo về dữ liệu hiệu suất được ghi lại giữa hai thời điểm trong ứng dụng của bạn.

Dấu vết yêu cầu mạng được Giám sát hiệu suất tự động thu thập bao gồm hầu hết các yêu cầu mạng cho ứng dụng của bạn. Tuy nhiên, một số yêu cầu có thể không được báo cáo hoặc bạn có thể sử dụng thư viện khác để thực hiện các yêu cầu mạng. Trong những trường hợp này, bạn có thể sử dụng API giám sát hiệu suất để theo dõi các dấu vết yêu cầu mạng tùy chỉnh theo cách thủ công. Dấu vết yêu cầu mạng tùy chỉnh chỉ được hỗ trợ cho ứng dụng Apple và Android.

Các số liệu mặc định cho dấu vết yêu cầu mạng tùy chỉnh giống với các số liệu dành cho dấu vết yêu cầu mạng được Giám sát hiệu suất tự động thu thập, cụ thể là thời gian phản hồi, kích thước tải trọng yêu cầu và phản hồi cũng như tỷ lệ thành công. Dấu vết yêu cầu mạng tùy chỉnh không hỗ trợ thêm số liệu tùy chỉnh.

Trong mã của mình, bạn xác định phần đầu và phần cuối của dấu vết yêu cầu mạng tùy chỉnh bằng cách sử dụng các API do SDK giám sát hiệu suất cung cấp.

Dấu vết yêu cầu mạng tùy chỉnh xuất hiện trong bảng điều khiển Firebase cùng với các yêu cầu mạng mà Giám sát hiệu suất tự động ghi lại (trong tab phụ Yêu cầu mạng của bảng dấu vết).

Thêm dấu vết yêu cầu mạng tùy chỉnh

Sử dụng API HttpMetric Giám sát hiệu suất để thêm dấu vết yêu cầu mạng tùy chỉnh nhằm giám sát các yêu cầu mạng cụ thể.

Để thiết lập các yêu cầu mạng tùy chỉnh theo cách thủ công trong Giám sát hiệu suất, hãy thêm mã tương tự như sau:

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

Dấu vết yêu cầu mạng tùy chỉnh cũng hỗ trợ thêm thuộc tính tùy chỉnh nhưng không hỗ trợ thêm số liệu tùy chỉnh.

Bước tiếp theo

  • Thiết lập cảnh báo cho các yêu cầu mạng đang làm giảm hiệu suất ứng dụng của bạn. Ví dụ: bạn có thể định cấu hình cảnh báo qua email cho nhóm của mình nếu thời gian phản hồi cho một mẫu URL cụ thể vượt quá ngưỡng bạn đặt.