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


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

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

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

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

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

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

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