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


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

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

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

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

מעקבים מותאמים אישית לבקשות רשת מופיעים במסוף Firebase לצד בקשות רשת שנקלטות ב-Performance Monitoring באופן אוטומטי (בכרטיסיית המשנה בקשות רשת של טבלת המעקב).

הוספת מעקבים מותאמים אישית לבקשת רשת

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

כדי לבצע ניתוב ידני של בקשות רשת מותאמות אישית ב-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();

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

השלבים הבאים

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