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