Performance Monitoring आपके ऐप्लिकेशन की परफ़ॉर्मेंस को मॉनिटर करने में मदद करने के लिए ट्रेस इकट्ठा करता है. ट्रेस, आपके ऐप्लिकेशन में किसी तय समयावधि के दौरान कैप्चर किए गए परफ़ॉर्मेंस डेटा की रिपोर्ट होती है.
परफ़ॉर्मेंस मॉनिटरिंग, नेटवर्क अनुरोधों के ट्रेस अपने-आप इकट्ठा करता है. इनमेंPerformance Monitoring आपके ऐप्लिकेशन के लिए ज़्यादातर नेटवर्क अनुरोध शामिल होते हैं. हालांकि, हो सकता है कि कुछ अनुरोधों की रिपोर्ट न की जाए या नेटवर्क अनुरोध करने के लिए, किसी दूसरी लाइब्रेरी का इस्तेमाल किया जाए. ऐसे मामलों में, Performance Monitoring एपीआई का इस्तेमाल करके, नेटवर्क अनुरोधों के कस्टम ट्रेस को मैन्युअल तरीके से इंस्ट्रूमेंट किया जा सकता है. नेटवर्क अनुरोधों के कस्टम ट्रेस की सुविधा, सिर्फ़ 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) जोड़ने की सुविधा भी उपलब्ध है. हालांकि, इसमें कस्टम मेट्रिक नहीं जोड़ी जा सकतीं.
अगले चरण
- नेटवर्क के उन अनुरोधों के लिए चेतावनियां सेट अप करें जिनकी वजह से आपके ऐप्लिकेशन की परफ़ॉर्मेंस खराब हो रही है. उदाहरण के लिए, अगर किसी खास यूआरएल पैटर्न के लिए रिस्पॉन्स टाइम, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा हो जाता है, तो अपनी टीम के लिए ईमेल से मिलने वाली चेतावनी कॉन्फ़िगर की जा सकती है.