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


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

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

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

في الرمز البرمجي، يمكنك تحديد بداية ونهاية تتبُّع طلبات الشبكة المخصّصة باستخدام واجهات برمجة التطبيقات التي توفّرها حزمة تطوير البرامج (SDK) لخدمة "Performance Monitoring".

تظهر عمليات تتبُّع طلبات الشبكة المخصّصة في وحدة تحكّم "Firebase" إلى جانب طلبات الشبكة التي تلتقطها "Performance Monitoring" تلقائيًا (في علامة التبويب الفرعية طلبات الشبكة ضمن جدول عمليات التتبُّع).

إضافة عمليات تتبُّع مخصّصة لطلبات الشبكة

استخدِم واجهة برمجة التطبيقات Performance Monitoring HTTPMetric (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 معيّن الحدّ الذي وضعته.