يجمع Performance Monitoring عمليات التتبُّع لمساعدتك في تتبُّع أداء تطبيقك. ويُعدّ التتبُّع تقريرًا لبيانات الأداء التي تم تسجيلها بين نقطتَين زمنيتَين في تطبيقك.
إنّ عمليات تتبُّع طلبات الشبكة التي يجمعها Performance Monitoring تلقائيًا تشمل معظم طلبات الشبكة لتطبيقك. ومع ذلك، قد لا يتم تسجيل بعض الطلبات أو قد تستخدم مكتبة مختلفة لتقديم طلبات الشبكة. في هذه الحالات، يمكنك استخدام واجهة برمجة تطبيقات Performance Monitoring لإعداد عمليات تتبُّع مخصّصة لطلبات الشبكة يدويًا. لا تتوفّر ميزة تتبُّع طلبات الشبكة المخصّصة إلا لتطبيقات Apple وAndroid.
المقاييس التلقائية لتتبُّع طلب شبكة مخصّص هي نفسها مقاييس تتبُّعات طلبات الشبكة التي يجمعها Performance Monitoring تلقائيًا، وتحديدًا وقت الاستجابة وحجم الحمولة في كلّ من الاستجابة والطلب ونسبة النجاح. لا تتيح عمليات تتبُّع طلبات الشبكة المخصّصة إضافة مقاييس مخصّصة.
في الرمز البرمجي، يمكنك تحديد بداية ونهاية عملية تتبُّع طلب شبكة مخصّص باستخدام واجهات برمجة التطبيقات التي يوفّرها حزمة تطوير البرامج Performance Monitoring SDK.
تظهر عمليات تتبُّع طلبات الشبكة المخصّصة في وحدة تحكّم Firebase إلى جانب طلبات الشبكة التي يسجّلها Performance Monitoring تلقائيًا (في علامة التبويب الفرعية طلبات الشبكة ضمن جدول عمليات التتبُّع).
إضافة عمليات تتبُّع مخصّصة لطلبات الشبكة
استخدِم Performance Monitoring HTTPMetric API (Swift | Obj-C) لإضافة عمليات تتبُّع مخصّصة لطلبات الشبكة من أجل مراقبة طلبات شبكة معيّنة.
لإعداد طلبات الشبكة المخصّصة يدويًا في Performance Monitoring، أضِف رمزًا مشابهًا للتالي:
Swift
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
@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 معيّن الحدّ القصوى الذي تحدّده.