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

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

تشير رسالة الأشكال البيانية تتبُّع طلبات الشبكة التي يتم جمعها تلقائيًا من قِبل 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 معيّن الذي تضعه أنت.