Performance Monitoring ردیابیهایی را جمعآوری میکند تا به شما در نظارت بر عملکرد برنامهتان کمک کند. ردیابی، گزارشی از دادههای عملکرد است که بین دو نقطه زمانی در برنامه شما ثبت میشود.
ردیابی درخواستهای شبکه که به طور خودکار توسط Performance Monitoring جمعآوری میشوند، شامل اکثر درخواستهای شبکه برای برنامه شما میشوند. با این حال، ممکن است برخی از درخواستها گزارش نشوند یا ممکن است از کتابخانه دیگری برای ارسال درخواستهای شبکه استفاده کنید. در این موارد، میتوانید از Performance Monitoring API برای ابزار دقیق ردیابی درخواستهای شبکه سفارشی به صورت دستی استفاده کنید. ردیابی درخواستهای شبکه سفارشی فقط برای برنامههای اپل و اندروید پشتیبانی میشود.
معیارهای پیشفرض برای ردیابی درخواست شبکه سفارشی، همانند معیارهای ردیابی درخواست شبکهای است که بهطور خودکار توسط Performance Monitoring جمعآوری میشوند، بهویژه زمان پاسخ، اندازه بار مفید پاسخ و درخواست و میزان موفقیت. ردیابی درخواستهای شبکه سفارشی از اضافه کردن معیارهای سفارشی پشتیبانی نمیکند.
در کد خود، ابتدا و انتهای ردیابی درخواست شبکه سفارشی را با استفاده از APIهای ارائه شده توسط Performance Monitoring SDK تعریف میکنید.
ردیابی درخواستهای شبکه سفارشی در کنسول Firebase در کنار درخواستهای شبکهای که Performance Monitoring به طور خودکار ثبت میکند (در زیربرگه درخواستهای شبکه از جدول ردیابیها) ظاهر میشوند.
اضافه کردن ردیابی درخواست شبکه سفارشی
از API Performance Monitoring HTTPMetric ( Swift | Obj-C ) برای اضافه کردن ردیابی درخواستهای شبکه سفارشی جهت نظارت بر درخواستهای خاص شبکه استفاده کنید.
برای اندازهگیری دستی درخواستهای شبکه سفارشی در Performance Monitoring ، کدی مشابه کد زیر اضافه کنید:
سویفت
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()
هدف-سی
@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 خاص از آستانهای که شما تعیین کردهاید فراتر رود.