הוספת מעקב מותאם אישית לבקשות רשת ספציפיות (אפליקציות ל-Apple ול-Android)


Performance Monitoring אוסף מעקבים כדי לעזור לכם לעקוב אחרי הביצועים של האפליקציה. מעקב הוא דוח של נתוני ביצועים שצולמו בין שתי נקודות זמן באפליקציה.

מעקב הבקשות מהרשת שנאסף באופן אוטומטי על ידי Performance Monitoring כולל את רוב הבקשות מהרשת של האפליקציה. עם זאת, יכול להיות שחלק מהבקשות לא ידווחו, או שאתם משתמשים בספרייה אחרת כדי לשלוח בקשות מהרשת. במקרים כאלה, אפשר להשתמש ב-API Performance Monitoring כדי להטמיע באופן ידני מעקב אחר בקשות רשת בהתאמה אישית. אפשר להשתמש בנתוני מעקב בהתאמה אישית של בקשות רשת רק באפליקציות ל-Apple ול-Android.

מדדי ברירת המחדל של מעקב מותאם אישית אחר בקשות רשת זהים לאלה של מעקב הבקשות ברשת שנאסף באופן אוטומטי על ידי Performance Monitoring, ובפרט זמן התגובה, גודל המטען הייעודי של התגובה והבקשה ושיעור ההצלחה. אין תמיכה בהוספת מדדים מותאמים אישית למעקב אחר בקשות רשת בהתאמה אישית.

בקוד, מגדירים את ההתחלה והסיום של מעקב מותאם אישית של בקשת רשת באמצעות ממשקי ה-API שסופקו על ידי ה-SDK של Performance Monitoring.

שרטוטים מותאמים אישית של בקשות רשת מופיעים במסוף 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();

בנוסף, בניתוח נתוני הבקשות מהרשת בהתאמה אישית אפשר להוסיף מאפיינים מותאמים אישית, אבל לא מדדים מותאמים אישית.

השלבים הבאים

  • להגדיר התראות לבקשות רשת שגורמות לירידה בביצועים של האפליקציה. לדוגמה, אפשר להגדיר התראה באימייל לצוות אם זמן התגובה של דפוס כתובת URL ספציפי חורג מסף שהגדרתם.