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


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

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

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

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

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

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

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

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

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

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

مراحل بعدی