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

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

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

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

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

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

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

استخدِم واجهة برمجة تطبيقات HTTPMetric لمراقبة الأداء (Swift | Obj-C) لإضافة عمليات تتبع طلبات الشبكة المخصصة لمراقبة طلبات الشبكة المحددة.

لقياس أداء طلبات الشبكة المخصّصة يدويًا في "مراقبة الأداء"، يمكنك إضافة رمز مشابه لما يلي:

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 معيّن يتجاوز الحدّ الأدنى الذي ضبطته.