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 izleme toplar. İzleme, uygulamanızdaki iki zaman noktası arasında yakalanan performans verilerinin bir raporudur.

Performance Monitoring tarafından otomatik olarak toplanan ağ isteği izleri, uygulamanızla ilgili çoğu ağ isteğini içerir. Ancak bazı istekler raporlanmayabilir veya ağ isteği göndermek için farklı bir kitaplık kullanıyor olabilirsiniz. Bu durumlarda, Performance Monitoring API'yi kullanarak özel ağ istek izlerini manuel olarak enstrümante edebilirsiniz. Özel ağ isteği izleri yalnızca Apple ve Android uygulamaları için desteklenir.

Özel ağ isteği izlemesi için varsayılan metrikler, Performance Monitoring tarafından otomatik olarak toplanan ağ isteği izlemelerinin metrikleriyle (özellikle yanıt süresi, yanıt ve istek yükü boyutu ve başarı oranı) aynıdır. Özel ağ isteği izlemeleri, özel metrik eklemeyi desteklemez.

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

Özel ağ isteği izleri, Performance Monitoring'ın otomatik olarak yakaladığı ağ isteklerinin yanında Firebase konsolunda görünür (izlemeler tablosunun Ağ istekleri alt sekmesinde).

Özel ağ isteği izleri ekleme

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

Performance Monitoring'te özel ağ isteklerini manuel olarak enstrümante etmek için aşağıdakine benzer bir kod ekleyin:

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

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

Sonraki adımlar

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