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


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

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

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

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

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

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

משתמשים ב-Performance Monitoring HTTPMetric API (Swift | Obj-C) כדי להוסיף מעקב אחר בקשות רשת בהתאמה אישית, כדי לעקוב אחרי בקשות רשת ספציפיות.

כדי להטמיע באופן ידני בקשות מותאמות אישית לרשת ב-Performance Monitoring, מוסיפים קוד שדומה לקוד הבא:

Swift

הערה: מוצר Firebase הזה לא זמין ב-macOS, ב-Mac Catalyst ובמטרות watchOS.
guard let metric = HTTPMetric(url: "https://www.google.com", httpMethod: .get) else { return }

metric.start()
guard let url = URL(string: "https://www.google.com") else { return }
let request: URLRequest = URLRequest(url:url)
let session = URLSession(configuration: .default)
let dataTask = session.dataTask(with: request) { (urlData, response, error) in
        if let httpResponse = response as? HTTPURLResponse {
         metric.responseCode = httpResponse.statusCode
        }
        metric.stop()
}
dataTask.resume()

Objective-C

הערה: מוצר Firebase הזה לא זמין ב-macOS, ב-Mac Catalyst ובמטרות watchOS.
@property (nonatomic) FIRHTTPMetric *metric;

- (void)beginManualNetworkInstrumentation {
  self.metric =
      [[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@"https://www.google.com"]
                              HTTPMethod:FIRHTTPMethodGET];

  [self.metric start];

  NSURLRequest *request =
      [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]];
  NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                                delegate:self];
  [connection resume];
}

- (void)connection:(NSURLConnection *)connection
    didReceiveResponse:(NSURLResponse *) response {
  NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response
  self.metric.responseCode = httpResponse.statusCode;
  [self.metric stop];
}

בנוסף, אפשר להוסיף מאפיינים מותאמים אישית למעקב אחרי בקשות רשת מותאמות אישית (Swift | Obj-C), אבל אי אפשר להוסיף מדדים מותאמים אישית.

השלבים הבאים

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