افزودن نظارت سفارشی برای درخواست‌های شبکه خاص (برنامه‌های اپل و اندروید)


Performance Monitoring ردیابی‌هایی را جمع‌آوری می‌کند تا به شما در نظارت بر عملکرد برنامه‌تان کمک کند. ردیابی، گزارشی از داده‌های عملکرد است که بین دو نقطه زمانی در برنامه شما ثبت می‌شود.

ردیابی درخواست‌های شبکه که به طور خودکار توسط Performance Monitoring جمع‌آوری می‌شوند، شامل اکثر درخواست‌های شبکه برای برنامه شما می‌شوند. با این حال، ممکن است برخی از درخواست‌ها گزارش نشوند یا ممکن است از کتابخانه دیگری برای ارسال درخواست‌های شبکه استفاده کنید. در این موارد، می‌توانید از Performance Monitoring API برای ابزار دقیق ردیابی درخواست‌های شبکه سفارشی به صورت دستی استفاده کنید. ردیابی درخواست‌های شبکه سفارشی فقط برای برنامه‌های اپل و اندروید پشتیبانی می‌شود.

معیارهای پیش‌فرض برای ردیابی درخواست شبکه سفارشی، همانند معیارهای ردیابی درخواست شبکه‌ای است که به‌طور خودکار توسط Performance Monitoring جمع‌آوری می‌شوند، به‌ویژه زمان پاسخ، اندازه بار مفید پاسخ و درخواست و میزان موفقیت. ردیابی درخواست‌های شبکه سفارشی از اضافه کردن معیارهای سفارشی پشتیبانی نمی‌کند.

در کد خود، ابتدا و انتهای ردیابی درخواست شبکه سفارشی را با استفاده از APIهای ارائه شده توسط Performance Monitoring SDK تعریف می‌کنید.

ردیابی درخواست‌های شبکه سفارشی در کنسول Firebase در کنار درخواست‌های شبکه‌ای که Performance Monitoring به طور خودکار ثبت می‌کند (در زیربرگه درخواست‌های شبکه از جدول ردیابی‌ها) ظاهر می‌شوند.

اضافه کردن ردیابی درخواست شبکه سفارشی

از API HttpMetric Performance Monitoring برای اضافه کردن ردیابی درخواست‌های شبکه سفارشی جهت نظارت بر درخواست‌های خاص شبکه استفاده کنید.

برای اندازه‌گیری دستی درخواست‌های شبکه سفارشی در Performance Monitoring ، کدی مشابه کد زیر اضافه کنید:

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

ردیابی درخواست‌های شبکه سفارشی همچنین از افزودن ویژگی‌های سفارشی پشتیبانی می‌کند اما از معیارهای سفارشی پشتیبانی نمی‌کند.

مراحل بعدی

  • برای درخواست‌های شبکه‌ای که عملکرد برنامه شما را کاهش می‌دهند ، هشدار تنظیم کنید . به عنوان مثال، می‌توانید یک هشدار ایمیلی برای تیم خود پیکربندی کنید اگر زمان پاسخگویی برای یک الگوی URL خاص از آستانه‌ای که شما تعیین کرده‌اید فراتر رود.