Check out what’s new from Firebase at Google I/O 2022. Learn more

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

تجمع مراقبة الأداء آثارًا لمساعدتك في مراقبة أداء تطبيقك. التتبع هو تقرير عن بيانات الأداء التي تم التقاطها بين نقطتين زمنيتين في تطبيقك.

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

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

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

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

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

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

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

سويفت

ملاحظة: لا يتوفر منتج 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()

ج موضوعية

ملاحظة: لا يتوفر منتج 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 معين حدًا قمت بتعيينه.