Performance Monitoring ردگیریها را جمعآوری میکند تا به شما کمک کند عملکرد برنامهتان را پایش کنید. ردگیری گزارشی از دادههای عملکرد است که بین دو نقطه زمانی در برنامهتان ثبت شده است.
ردپاهای درخواست شبکه که بهطور خودکار توسط Performance Monitoring جمعآوری شدهاند شامل اکثر درخواستهای شبکه برای برنامه شما است. بااینحال، ممکن است برخیاز درخواستها گزارش نشوند یا ممکن است از کتابخانه دیگری برای درخواستهای شبکه استفاده کنید. در این موارد، میتوانید از میانای برنامهسازی کاربردی Performance Monitoring برای ابزارسازی دستی ردپاهای درخواست شبکه سفارشی استفاده کنید. ردپای درخواست شبکه سفارشی فقط برای برنامههای Apple و Android پشتیبانی میشود.
سنجههای پیشفرض برای ردگیری درخواست شبکه سفارشی همانند سنجههای ردگیری درخواست شبکه است که بهطور خودکار توسط Performance Monitoring جمعآوری میشود، بهویژه زمان پاسخ، اندازه بار خالص پاسخ و درخواست، و نرخ موفقیت. ردگیریهای درخواست شبکه سفارشی از افزودن سنجههای سفارشی پشتیبانی نمیکنند.
در کدتان، ابتدا و انتهای ردگیری درخواست شبکه سفارشی را بااستفاده از میاناهای برنامهسازی کاربردی ارائهشده توسط کیت توسعه نرمافزار Performance Monitoring تعریف میکنید.
ردپاهای درخواست شبکه سفارشی در کنسول Firebase در کنار درخواستهای شبکهای که Performance Monitoring بهطور خودکار ضبط میکند (در زبانه فرعی درخواستهای شبکه جدول ردپاها) نشان داده میشود.
افزودن ردپای درخواست شبکه سفارشی
از Performance Monitoring HttpMetric API برای افزودن ردپای درخواست شبکه سفارشی برای نظارت بر درخواستهای شبکه خاص استفاده کنید.
برای ابزارسازی دستی درخواستهای شبکه سفارشی در 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();
ردگیریهای درخواست شبکه سفارشی از افزودن مشخصههای سفارشی نیز پشتیبانی میکنند اما از سنجههای سفارشی پشتیبانی نمیکنند.
مراحل بعدی
- برای درخواستهای شبکهای که عملکرد برنامهتان را کاهش میدهند، هشدار تنظیم کنید. برای مثال، میتوانید هشدار ایمیلی برای تیمتان پیکربندی کنید تا اگر زمان پاسخ برای الگوی نشانی وب خاصی از آستانهای که تنظیم کردهاید فراتر رفت، هشدار دریافت کنند.