Performance Monitoring تجمع خدمة مراقبة الأداء عمليات التتبُّع لمساعدتك في مراقبة أداء تطبيقك. وعملية التتبُّع هي تقرير عن بيانات الأداء التي يتم تسجيلها بين نقطتين زمنيتَين في تطبيقك.
تتضمّن عمليات تتبُّع طلبات الشبكة التي تجمعها تلقائيًا Performance Monitoring معظم طلبات الشبكة لتطبيقك. ومع ذلك، قد لا يتم الإبلاغ عن بعض الطلبات أو قد تستخدم مكتبة مختلفة لإجراء طلبات الشبكة. في هذه الحالات، يمكنك استخدام Performance Monitoring API لتتبُّع عمليات تتبُّع طلبات الشبكة المخصّصة يدويًا. لا تتوفّر عمليات تتبُّع طلبات الشبكة المخصّصة إلا لتطبيقات 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 معيّن حدًا أقصى تحدّده.