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