إضافة مراقبة مخصصة لطلبات شبكة محددة (تطبيقات Apple وAndroid)

تقوم مراقبة الأداء بجمع التتبعات لمساعدتك في مراقبة أداء تطبيقك. التتبع عبارة عن تقرير لبيانات الأداء التي تم التقاطها بين نقطتين زمنيتين في تطبيقك.

تتضمن تتبعات طلبات الشبكة التي يتم جمعها تلقائيًا بواسطة مراقبة الأداء معظم طلبات الشبكة لتطبيقك. ومع ذلك، قد لا يتم الإبلاغ عن بعض الطلبات أو قد تستخدم مكتبة مختلفة لتقديم طلبات الشبكة. في هذه الحالات، يمكنك استخدام واجهة برمجة تطبيقات مراقبة الأداء لإجراء عمليات تتبع طلبات الشبكة المخصصة يدويًا. لا يتم دعم عمليات تتبع طلبات الشبكة المخصصة إلا لتطبيقات Apple وAndroid.

المقاييس الافتراضية لتتبع طلب الشبكة المخصص هي نفس تلك الخاصة بتتبعات طلبات الشبكة التي يتم جمعها تلقائيًا بواسطة مراقبة الأداء، وتحديدًا وقت الاستجابة والاستجابة وحجم حمولة الطلب ومعدل النجاح. لا تدعم عمليات تتبع طلب الشبكة المخصصة إضافة مقاييس مخصصة.

في التعليمات البرمجية الخاصة بك، يمكنك تحديد بداية ونهاية تتبع طلب الشبكة المخصص باستخدام واجهات برمجة التطبيقات التي توفرها SDK لمراقبة الأداء.

تظهر آثار طلبات الشبكة المخصصة في وحدة تحكم Firebase جنبًا إلى جنب مع طلبات الشبكة التي تلتقطها مراقبة الأداء تلقائيًا (في علامة التبويب الفرعية لطلبات الشبكة بجدول التتبعات).

إضافة آثار طلب الشبكة المخصصة

استخدم واجهة برمجة تطبيقات HttpMetric لمراقبة الأداء لإضافة تتبعات طلب شبكة مخصصة لمراقبة طلبات شبكة معينة.

لإدارة طلبات الشبكة المخصصة يدويًا في مراقبة الأداء، قم بإضافة تعليمة برمجية مشابهة لما يلي:

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

تدعم عمليات تتبع طلب الشبكة المخصصة أيضًا إضافة سمات مخصصة وليس مقاييس مخصصة.

الخطوات التالية

  • قم بإعداد تنبيهات لطلبات الشبكة التي تؤدي إلى انخفاض أداء تطبيقك. على سبيل المثال، يمكنك تكوين تنبيه عبر البريد الإلكتروني لفريقك إذا تجاوز وقت الاستجابة لنمط عنوان URL محدد الحد الذي قمت بتعيينه.