Belirli ağ istekleri için özel izleme ekleme (Apple ve Android uygulamaları)


Performance Monitoring, uygulamanızın performansını izlemenize yardımcı olmak için izler toplar. İz, uygulamanızda iki zaman noktası arasında yakalanan performans verilerinin raporudur.

Performance Monitoring tarafından otomatik olarak toplanan ağ isteği izleri, uygulamanız için çoğu ağ isteğini içerir. Ancak bazı istekler raporlanmayabilir veya ağ istekleri yapmak için farklı bir kitaplık kullanabilirsiniz. Bu gibi durumlarda Performance Monitoring API'yi kullanarak özel ağ isteği izlerini manuel olarak ölçebilirsiniz. Özel ağ isteği izleri yalnızca Apple ve Android uygulamalarında desteklenir.

Özel ağ isteği izinin varsayılan metrikleri, Performance Monitoring tarafından otomatik olarak toplanan ağ isteği izlerinin metrikleriyle aynıdır. Bu metrikler özellikle yanıt süresi, yanıt ve istek yükü boyutu ile başarı oranıdır. Özel ağ isteği izleri, özel metrik eklemeyi desteklemez.

Kodunuzda, Performance Monitoring SDK'sı tarafından sağlanan API'leri kullanarak özel bir ağ isteği izinin başlangıcını ve sonunu tanımlarsınız.

Özel ağ isteği izleri, Firebase konsolunda Performance Monitoring tarafından otomatik olarak yakalanan ağ istekleriyle birlikte (izler tablosunun Ağ istekleri alt sekmesinde) görünür.

Özel ağ isteği izleri ekleme

Belirli ağ isteklerini izlemek üzere özel ağ isteği izleri eklemek için Performance Monitoring HttpMetric API'yi kullanın.

Performance Monitoring uygulamasında özel ağ isteklerini manuel olarak ölçmek için aşağıdakine benzer bir kod ekleyin:

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

Özel ağ isteği izleri, özel özellikler eklemeyi de destekler ancak özel metrikleri desteklemez.

Sonraki adımlar

  • Uygulamanızın performansını düşüren ağ istekleri için uyarılar ayarlayın. Örneğin, belirli bir URL kalıbının yanıt süresi belirlediğiniz eşiği aşarsa ekibiniz için bir e-posta uyarısı yapılandırabilirsiniz.