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