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


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

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

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

في الرمز البرمجي، يمكنك تحديد بداية ونهاية عملية تتبُّع طلب شبكة مخصّص باستخدام واجهات برمجة التطبيقات التي توفّرها حزمة تطوير البرامج (SDK) الخاصة بـ 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();

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

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

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