Performance Monitoring আপনার অ্যাপের পারফরম্যান্স নিরীক্ষণ করতে সাহায্য করার জন্য ট্রেস সংগ্রহ করে। ট্রেস হলো আপনার অ্যাপের দুটি ভিন্ন সময়ের মধ্যবর্তী সময়ে সংগৃহীত পারফরম্যান্স ডেটার একটি রিপোর্ট।
Performance Monitoring দ্বারা স্বয়ংক্রিয়ভাবে সংগৃহীত নেটওয়ার্ক রিকোয়েস্ট ট্রেসগুলিতে আপনার অ্যাপের বেশিরভাগ নেটওয়ার্ক রিকোয়েস্ট অন্তর্ভুক্ত থাকে। তবে, কিছু রিকোয়েস্ট রিপোর্ট করা নাও হতে পারে অথবা আপনি নেটওয়ার্ক রিকোয়েস্ট করার জন্য একটি ভিন্ন লাইব্রেরি ব্যবহার করতে পারেন। এই ক্ষেত্রে, আপনি Performance Monitoring এপিআই ব্যবহার করে ম্যানুয়ালি কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেস ইনস্ট্রুমেন্ট করতে পারেন। কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেস শুধুমাত্র অ্যাপল এবং অ্যান্ড্রয়েড অ্যাপের জন্য সমর্থিত।
একটি কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেসের জন্য ডিফল্ট মেট্রিকগুলো Performance Monitoring দ্বারা স্বয়ংক্রিয়ভাবে সংগৃহীত নেটওয়ার্ক রিকোয়েস্ট ট্রেসের মেট্রিকগুলোর মতোই, বিশেষত রেসপন্স টাইম, রেসপন্স ও রিকোয়েস্ট পেলোড সাইজ এবং সাকসেস রেট। কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেসে কাস্টম মেট্রিক যোগ করার সুবিধা নেই।
আপনার কোডে, আপনি Performance Monitoring SDK দ্বারা প্রদত্ত API ব্যবহার করে একটি কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেসের শুরু এবং শেষ নির্ধারণ করেন।
কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেসগুলো Firebase কনসোলে, Performance Monitoring স্বয়ংক্রিয়ভাবে ক্যাপচার করা নেটওয়ার্ক রিকোয়েস্টগুলোর পাশাপাশি (ট্রেস টেবিলের ' নেটওয়ার্ক রিকোয়েস্ট' সাবট্যাবে) প্রদর্শিত হয়।
কাস্টম নেটওয়ার্ক অনুরোধ ট্রেস যোগ করুন
নির্দিষ্ট নেটওয়ার্ক অনুরোধ নিরীক্ষণ করতে কাস্টম নেটওয়ার্ক অনুরোধ ট্রেস যোগ করার জন্য Performance Monitoring HTTPMetric API ( 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];
}
কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেস কাস্টম অ্যাট্রিবিউট ( সুইফট | অবজেক্টিভ-সি ) যোগ করা সমর্থন করে, কিন্তু কাস্টম মেট্রিক্স সমর্থন করে না।
পরবর্তী পদক্ষেপ
- যেসব নেটওয়ার্ক রিকোয়েস্ট আপনার অ্যাপের পারফরম্যান্স কমিয়ে দিচ্ছে, সেগুলোর জন্য অ্যালার্ট সেট আপ করুন । উদাহরণস্বরূপ, কোনো নির্দিষ্ট ইউআরএল প্যাটার্নের রেসপন্স টাইম আপনার সেট করা একটি থ্রেশহোল্ড অতিক্রম করলে, আপনি আপনার টিমের জন্য একটি ইমেল অ্যালার্ট কনফিগার করতে পারেন।