इस पेज पर, Performance Monitoring का इस्तेमाल शुरू करने या Performance Monitoring की सुविधाओं और टूल का इस्तेमाल करने से जुड़ी समस्याओं को हल करने के बारे में सलाह दी गई है.
समस्या हल करने के लिए, सबसे पहले की जाने वाली जांचें
यहां दो सामान्य जांचों के बारे में बताया गया है. हमारा सुझाव है कि समस्या को हल करने के लिए आगे बढ़ने से पहले, हर व्यक्ति को ये जांचें कर लेनी चाहिए.
1. परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज देखना
अपने लॉग मैसेज देखें, ताकि यह पक्का किया जा सके कि Performance Monitoring SDK, परफ़ॉर्मेंस इवेंट कैप्चर कर रहा है.
परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज देखने का तरीका
बिल्ड के समय Performance Monitoring के लिए डीबग लॉगिंग चालू करें. इसके लिए, अपने ऐप्लिकेशन की
AndroidManifest.xmlफ़ाइल में<meta-data>एलिमेंट जोड़ें. जैसे:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>गड़बड़ी के मैसेज के लिए, अपने लॉग मैसेज देखें.
Performance Monitoring अपने लॉग मैसेज को
FirebasePerformanceसे टैग करता है. logcat फ़िल्टरिंग का इस्तेमाल करके, खास तौर पर अवधि के ट्रेस और एचटीटीपी/एस नेटवर्क अनुरोध की लॉगिंग देखी जा सकती है. इसके लिए, यह कमांड चलाएं:adb logcat -s FirebasePerformance
इन लॉग की जांच करें. इनसे पता चलता है कि Performance Monitoring परफ़ॉर्मेंस इवेंट लॉग कर रहा है:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URLLogging network request trace: URL
Firebase कंसोल में अपना डेटा देखने के लिए, यूआरएल पर क्लिक करें. डैशबोर्ड में डेटा अपडेट होने में कुछ समय लग सकता है.
अगर आपका ऐप्लिकेशन परफ़ॉर्मेंस इवेंट लॉग नहीं कर रहा है, तो समस्या हल करने के सुझाव देखें.
2. Firebase का स्टेटस डैशबोर्ड देखना
अगर Firebase या Performance Monitoring में कोई ऐसी समस्या है जिसके बारे में पहले से जानकारी है, तो Firebase का स्टेटस डैशबोर्ड देखें.
Performance Monitoring का इस्तेमाल शुरू करना
अगर आपको Performance Monitoring (iOS+ | Android | Web) का इस्तेमाल शुरू करना है, तो समस्या हल करने से जुड़ी ये सलाह आपके काम आ सकती हैं. इनसे उन समस्याओं को हल करने में मदद मिल सकती है जिनमें Firebase को SDK टूल का पता लगाने या Firebase कंसोल में परफ़ॉर्मेंस का पहला डेटा दिखाने में समस्या आ रही है.
ऐप्लिकेशन में एसडीके जोड़ दिया गया है, लेकिन कंसोल में अब भी एसडीके जोड़ने का मैसेज दिख रहा है
जब Firebase को आपके ऐप्लिकेशन से इवेंट की जानकारी (जैसे, ऐप्लिकेशन के साथ इंटरैक्शन) मिलती है, तब वह यह पता लगा सकता है कि आपने अपने ऐप्लिकेशन में Performance Monitoring SDK टूल को सही तरीके से जोड़ा है या नहीं. आम तौर पर, ऐप्लिकेशन शुरू करने के 10 मिनट के अंदर, Firebase कंसोल के परफ़ॉर्मेंस डैशबोर्ड पर "SDK टूल का पता चला" मैसेज दिखता है. इसके बाद, 30 मिनट के अंदर डैशबोर्ड पर प्रोसेस किया गया शुरुआती डेटा दिखता है.
अगर आपने अपने ऐप्लिकेशन में एसडीके का नया वर्शन जोड़े हुए 10 मिनट से ज़्यादा हो गए हैं और आपको अब भी कोई बदलाव नहीं दिख रहा है, तो अपने लॉग मैसेज देखें. इससे यह पक्का किया जा सकेगा कि Performance Monitoring इवेंट लॉग कर रहा है. एसडीके का पता लगाने में देरी होने से जुड़ा मैसेज मिलने की समस्या हल करने के लिए, यहां बताया गया तरीका आज़माएं.
ऐप्लिकेशन इवेंट लॉग कर रहा है: समस्या हल करने का तरीका
पक्का करें कि Performance Monitoring Android SDK 19.1.0 या उसके बाद का वर्शन (या Firebase BoM 26.3.0 या उसके बाद का वर्शन) इस्तेमाल किया जा रहा हो. इसके बारे में जानने के लिए, रिलीज़ नोट देखें.
अगर अब भी स्थानीय तौर पर डेवलपमेंट किया जा रहा है, तो डेटा इकट्ठा करने के लिए ज़्यादा इवेंट जनरेट करें:
- अपने ऐप्लिकेशन को बैकग्राउंड और फ़ोरग्राउंड के बीच कई बार स्विच करके इवेंट जनरेट करें. इसके अलावा, स्क्रीन पर नेविगेट करके अपने ऐप्लिकेशन के साथ इंटरैक्ट करें और/या नेटवर्क अनुरोध ट्रिगर करें.
पक्का करें कि आपकी Firebase कॉन्फ़िगरेशन फ़ाइल (
google-services.json) को आपके ऐप्लिकेशन में सही तरीके से जोड़ा गया हो और आपने फ़ाइल में कोई बदलाव न किया हो. खास तौर पर, इनकी जांच करें:कॉन्फ़िगरेशन फ़ाइल के नाम में
(2)जैसे अतिरिक्त वर्ण नहीं जोड़े गए हैं.कॉन्फ़िगरेशन फ़ाइल, आपके ऐप्लिकेशन की मॉड्यूल (ऐप्लिकेशन-लेवल) डायरेक्ट्री में होती है.
कॉन्फ़िगरेशन फ़ाइल में दिया गया Firebase Android ऐप्लिकेशन आईडी (
mobilesdk_app_id) आपके ऐप्लिकेशन के लिए सही है. अपना Firebase ऐप्लिकेशन आईडी देखने के लिए, settings प्रोजेक्ट की सेटिंग में जाकर, आपके ऐप्लिकेशन कार्ड पर जाएं.
अगर आपको अपने ऐप्लिकेशन की कॉन्फ़िगरेशन फ़ाइल में कोई गड़बड़ी दिखती है, तो यह तरीका आज़माएं:
अपने ऐप्लिकेशन में मौजूद कॉन्फ़िगरेशन फ़ाइल मिटाएं.
नई कॉन्फ़िगरेशन फ़ाइल डाउनलोड करने और उसे अपने Android ऐप्लिकेशन में जोड़ने के लिए, इन निर्देशों का पालन करें.
अगर एसडीके इवेंट लॉग कर रहा है और सब कुछ सही तरीके से सेट अप किया गया है, लेकिन आपको अब भी एसडीके का पता चलने से जुड़ा मैसेज या प्रोसेस किया गया डेटा नहीं दिख रहा है (10 मिनट बाद), तो Firebase की सहायता टीम से संपर्क करें.
ऐप्लिकेशन, इवेंट लॉग नहीं कर रहा है: समस्या हल करने का तरीका
Performance Monitoring Gradle प्लगिन का सेटअप इस तरह से देखें:
पक्का करें कि आपने प्लगिन को सही तरीके से जोड़ा हो. खास तौर पर, इनकी जांच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-लेवल
build.gradleफ़ाइल में, प्लगिन () के लिए क्लासपाथ डिपेंडेंसी शामिल की हो.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
instrumentationEnabledbuild.gradleफ़ाइल - अपनी
gradle.propertiesफ़ाइल मेंfirebasePerformanceInstrumentationEnabled
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
जांच करें कि आपकी
AndroidManifest.xmlफ़ाइल में मौजूद इन फ़्लैग में से किसी एक के ज़रिए, Performance Monitoring एसडीके को बंद न किया गया हो:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
पक्का करें कि Performance Monitoring, नहीं किया गया हो.
अगर आपको अपने ऐप्लिकेशन में बंद की गई कोई सुविधा नहीं दिख रही है, तो Firebase की सहायता टीम से संपर्क करें.
Console में यह दिखता है कि SDK टूल का पता चल गया है, लेकिन कोई डेटा नहीं दिखता
Performance Monitoring परफ़ॉर्मेंस इवेंट डेटा को प्रोसेस करता है. इसके बाद, इसे परफ़ॉर्मेंस डैशबोर्ड में दिखाता है.
अगर "SDK का पता चला" मैसेज दिखने के 24 घंटे से ज़्यादा समय बीत चुका है और आपको अब भी डेटा नहीं दिख रहा है, तो Firebase के स्टेटस डैशबोर्ड पर जाकर देखें कि क्या कोई समस्या है. अगर कोई समस्या नहीं है, तो Firebase की सहायता टीम से संपर्क करें.
सामान्य समस्याएं हल करना
अगर आपने SDK टूल को जोड़ लिया है और अपने ऐप्लिकेशन में Performance Monitoring का इस्तेमाल किया जा रहा है, तो समस्या हल करने से जुड़ी यहां दी गई सलाह से, Performance Monitoring की सुविधाओं और टूलिंग से जुड़ी सामान्य समस्याओं को हल करने में मदद मिल सकती है.
ऐप्लिकेशन, परफ़ॉर्मेंस इवेंट लॉग नहीं कर रहा है
अगर आपको परफ़ॉर्मेंस इवेंट के लिए लॉग मैसेज नहीं दिख रहे हैं, तो समस्या हल करने के लिए यह तरीका आज़माएं:
Performance Monitoring Gradle प्लगिन का सेटअप इस तरह से देखें:
पक्का करें कि आपने प्लगिन को सही तरीके से जोड़ा हो. खास तौर पर, इनकी जांच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-लेवल
build.gradleफ़ाइल में, प्लगिन () के लिए क्लासपाथ डिपेंडेंसी शामिल की हो.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
instrumentationEnabledbuild.gradleफ़ाइल - अपनी
gradle.propertiesफ़ाइल मेंfirebasePerformanceInstrumentationEnabled
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
जांच करें कि आपकी
AndroidManifest.xmlफ़ाइल में मौजूद इन फ़्लैग में से किसी एक के ज़रिए, Performance Monitoring एसडीके को बंद न किया गया हो:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
पक्का करें कि Performance Monitoring, नहीं किया गया हो.
अगर आपको अपने ऐप्लिकेशन में बंद की गई कोई सुविधा नहीं दिख रही है, तो Firebase की सहायता टीम से संपर्क करें.
परफ़ॉर्मेंस डैशबोर्ड में स्क्रीन ट्रेस डेटा मौजूद नहीं है
अगर आपको स्क्रीन रेंडरिंग ट्रेस का डेटा नहीं दिख रहा है, तो समस्या हल करने के लिए यह तरीका आज़माएं:
पक्का करें कि Android SDK के सबसे नए वर्शन (v22.0.5) का इस्तेमाल किया जा रहा हो. स्क्रीन रेंडरिंग के ट्रेस, सिर्फ़ v15.2.0 या इसके बाद के वर्शन में उपलब्ध हैं.
पक्का करें कि आपने किसी स्क्रीन के लिए, हार्डवेयर से तेज़ी लाएं सुविधा को मैन्युअल तरीके से बंद न किया हो.
पक्का करें कि DexGuard या Jack का इस्तेमाल न किया जा रहा हो. Performance Monitoring इन टूलचेन के साथ काम नहीं करता.
DexGuard, ऐप्लिकेशन के शुरू होने, ऐप्लिकेशन के फ़ोरग्राउंड में होने, और ऐप्लिकेशन के बैकग्राउंड में होने के ट्रेस को अपने-आप इकट्ठा होने से रोकता है. हालांकि, अगर आपका ऐप्लिकेशन DexGuard का इस्तेमाल करता है, तो कस्टम कोड ट्रेस सामान्य तरीके से काम करने चाहिए.
Jack अब काम नहीं करता. इसलिए, आम तौर पर इसका इस्तेमाल आपके ऐप्लिकेशन में नहीं किया जाना चाहिए.
परफ़ॉर्मेंस डैशबोर्ड में कस्टम ट्रेस डेटा मौजूद नहीं है
क्या आपको अपने-आप इकट्ठा किए गए ट्रेस के लिए परफ़ॉर्मेंस डेटा दिख रहा है, लेकिन कस्टम कोड ट्रेस के लिए नहीं? समस्या हल करने के लिए, यह तरीका आज़माएं:
अगर आपने Trace API की मदद से कस्टम कोड ट्रेस किए हैं, तो ट्रेस के सेटअप की जांच करें. खास तौर पर, इनकी जांच करें:
- कस्टम कोड ट्रेस और कस्टम मेट्रिक के नाम इन शर्तों को पूरा करते हों: नाम की शुरुआत या आखिर में कोई खाली जगह न हो, नाम की शुरुआत में अंडरस्कोर (
_) वर्ण न हो, और नाम की ज़्यादा से ज़्यादा लंबाई 32 वर्ण हो. - सभी ट्रेस शुरू और बंद किए जाने चाहिए. ऐसे किसी भी ट्रेस को लॉग नहीं किया जाएगा जिसे शुरू नहीं किया गया है, बंद नहीं किया गया है या शुरू होने से पहले ही बंद कर दिया गया है.
- कस्टम कोड ट्रेस और कस्टम मेट्रिक के नाम इन शर्तों को पूरा करते हों: नाम की शुरुआत या आखिर में कोई खाली जगह न हो, नाम की शुरुआत में अंडरस्कोर (
अगर आपने
@AddTraceनोटेशन की मदद से कस्टम कोड ट्रेस किए हैं, तो Performance Monitoring Gradle प्लगिन का सेटअप देखें:पक्का करें कि आपने प्लगिन को सही तरीके से जोड़ा हो. खास तौर पर, इनकी जांच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-लेवल
build.gradleफ़ाइल में, प्लगिन () के लिए क्लासपाथ डिपेंडेंसी शामिल की हो.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
instrumentationEnabledbuild.gradleफ़ाइल - अपनी
gradle.propertiesफ़ाइल मेंfirebasePerformanceInstrumentationEnabled
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
अपने लॉग मैसेज देखें, ताकि यह पक्का किया जा सके कि Performance Monitoring, उम्मीद के मुताबिक कस्टम कोड ट्रेस लॉग कर रहा है.
अगर Performance Monitoring इवेंट लॉग कर रहा है, लेकिन 24 घंटे बाद भी कोई डेटा नहीं दिखता है, तो Firebase की सहायता टीम से संपर्क करें.
परफ़ॉर्मेंस डैशबोर्ड में नेटवर्क अनुरोध का डेटा मौजूद नहीं है
अगर आपको नेटवर्क अनुरोध का डेटा नहीं दिख रहा है, तो समस्या हल करने के लिए यहां दिया गया तरीका आज़माएं:
Android ऐप्लिकेशन के लिए, Performance Monitoring Gradle प्लग इन, इंस्ट्रुमेंटेशन की सुविधा चालू करता है. इससे एचटीटीपी/एस नेटवर्क अनुरोधों की अपने-आप निगरानी की जा सकती है. इनकी जांच करें:
पक्का करें कि आपने प्लगिन को सही तरीके से जोड़ा हो. खास तौर पर, इनकी जांच करें:
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
build.gradleफ़ाइल में प्लगिन () जोड़ा है.apply plugin: 'com.google.firebase.firebase-perf' - आपने अपनी प्रोजेक्ट-लेवल
build.gradleफ़ाइल में, प्लगिन () के लिए क्लासपाथ डिपेंडेंसी शामिल की हो.classpath 'com.google.firebase:perf-plugin:2.0.2'
- आपने मॉड्यूल (ऐप्लिकेशन-लेवल)
पक्का करें कि इनमें से किसी भी फ़्लैग के ज़रिए, प्लगिन को बंद न किया गया हो:
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
instrumentationEnabledbuild.gradleफ़ाइल - अपनी
gradle.propertiesफ़ाइल मेंfirebasePerformanceInstrumentationEnabled
- आपके मॉड्यूल (ऐप्लिकेशन-लेवल) में
देखें कि नेटवर्क लाइब्रेरी, आपके सिस्टम के साथ काम करती है या नहीं. Performance Monitoring इन नेटवर्किंग लाइब्रेरी का इस्तेमाल करने वाले नेटवर्क अनुरोधों के लिए, मेट्रिक अपने-आप इकट्ठा करता है: OkHttp 3.x.x, Java's URLConnection, और Apache HttpClient.
ध्यान दें कि नेटवर्क अनुरोधों के लिए कस्टम मॉनिटरिंग जोड़ी जा सकती है.
इन बातों का ध्यान रखें:
आपके कोड और कोड में इस्तेमाल की गई नेटवर्किंग लाइब्रेरी के व्यवहार के आधार पर, ऐसा हो सकता है कि Performance Monitoring सिर्फ़ उन नेटवर्क अनुरोधों की रिपोर्ट करे जो पूरे हो चुके हैं. इसका मतलब है कि खुले हुए एचटीटीपी/एस कनेक्शन की रिपोर्ट नहीं की जा सकती.
Performance Monitoring, DexGuard और Jack के साथ काम नहीं करता.
- DexGuard, एचटीटीपी/एस नेटवर्क अनुरोधों की निगरानी करने की सुविधा बंद कर देता है.
- Jack अब काम नहीं करता. इसलिए, आम तौर पर इसका इस्तेमाल आपके ऐप्लिकेशन में नहीं किया जाना चाहिए.
Performance Monitoring, अमान्य
Content-Typeहेडर वाले नेटवर्क अनुरोधों की रिपोर्ट नहीं करता. हालांकि,Content-Typeहेडर के बिना किए गए नेटवर्क अनुरोध अब भी स्वीकार किए जाएंगे.
नेटवर्क अनुरोध का डेटा, उम्मीद के मुताबिक एग्रीगेट नहीं हो रहा है
यूआरएल पैटर्न के तहत, Performance Monitoring नेटवर्क अनुरोध के डेटा को कैसे एग्रीगेट करता है, इस बारे में ज़्यादा जानें.
कस्टम यूआरएल के पैटर्न भी आज़माए जा सकते हैं!
अक्सर पूछे जाने वाले सवाल
प्रोजेक्ट के होम पेज पर मौजूद परफ़ॉर्मेंस कार्ड में, सबसे ज़्यादा समस्याएं दिखाने वाली सुविधा का क्या हुआ?
हमने सबसे ज़्यादा समस्याएं सेक्शन को हाल के अलर्ट सेक्शन से बदल दिया है. ऐसा इसलिए किया गया है, क्योंकि हमने हाल ही में अलर्ट की सुविधा लॉन्च की है. इस सुविधा के तहत, तय किए गए थ्रेशोल्ड पार होने पर आपको अपने-आप सूचना मिल जाती है. समस्याएं अब नहीं दिखेंगी. इनकी जगह अब चेतावनियां दिखेंगी.
परफ़ॉर्मेंस कार्ड में सबसे ऊपर मौजूद ऐप्लिकेशन चुनने वाले टूल की मदद से, हाल ही की सूचनाएं में मौजूद सूचनाओं को फ़िल्टर किया जा सकता है. चुने गए ऐप्लिकेशन के लिए, सिर्फ़ तीन सबसे हाल की सूचनाएं दिखती हैं.
सूचनाओं के बारे में ज़्यादा जानने के लिए, परफ़ॉर्मेंस से जुड़ी समस्याओं के लिए सूचनाएं सेट अप करना लेख पढ़ें.
कंसोल में समस्याओं के लिए थ्रेशोल्ड सेट करने की सुविधा का क्या हुआ?
Performance Monitoring, तय की गई सीमा से ज़्यादा होने वाली मेट्रिक के लिए सूचनाएं पाने की सुविधा देता है. परफ़ॉर्मेंस मेट्रिक के लिए कॉन्फ़िगर किए जा सकने वाले इन थ्रेशोल्ड की वजह से भ्रम की स्थिति पैदा हो सकती है. इसलिए, हमने समस्याओं के लिए थ्रेशोल्ड कॉन्फ़िगर करने की सुविधा हटा दी है.
Firebase कंसोल में, जानकारी और मेट्रिक सेक्शन में मौजूद जानकारी का क्या हुआ?
हमने समस्याओं को हल करने के तरीके को बेहतर बनाने के लिए, 'जानकारी' और 'मेट्रिक' पेजों को नए सिरे से डिज़ाइन किए गए, सेंट्रलाइज़्ड यूज़र इंटरफ़ेस (यूआई) से बदल दिया है. समस्या हल करने वाले इस नए यूज़र इंटरफ़ेस (यूआई) में, वही मुख्य सुविधाएं मिलती हैं जो 'जानकारी और मेट्रिक' सेक्शन में मिलती थीं. समस्या हल करने के बारे में ज़्यादा जानने के लिए, किसी खास ट्रेस के लिए ज़्यादा डेटा देखना लेख पढ़ें.
नमूनों की संख्या मेरी उम्मीद के मुताबिक क्यों नहीं है?
Performance Monitoring, आपके ऐप्लिकेशन के उपयोगकर्ताओं के डिवाइसों से परफ़ॉर्मेंस का डेटा इकट्ठा करता है. अगर आपके ऐप्लिकेशन का इस्तेमाल कई लोग करते हैं या ऐप्लिकेशन से परफ़ॉर्मेंस से जुड़ी कई गतिविधियां जनरेट होती हैं, तो Performance Monitoring, डेटा कलेक्शन को डिवाइसों के सबसेट तक सीमित कर सकता है. ऐसा प्रोसेस किए गए इवेंट की संख्या को कम करने के लिए किया जाता है. ये सीमाएं इतनी ज़्यादा हैं कि कम इवेंट होने पर भी, मेट्रिक की वैल्यू से यह पता चलता है कि उपयोगकर्ता को ऐप्लिकेशन इस्तेमाल करने का कैसा अनुभव मिला.
हम जो डेटा इकट्ठा करते हैं उसकी मात्रा को मैनेज करने के लिए, Performance Monitoring इन सैंपलिंग विकल्पों का इस्तेमाल करता है:
डिवाइस पर दर सीमित करना: किसी डिवाइस को अचानक कई ट्रेस भेजने से रोकने के लिए, हम किसी डिवाइस से भेजे गए कोड और नेटवर्क अनुरोध ट्रेस की संख्या को सीमित करते हैं. इसके तहत, हर 10 मिनट में 300 इवेंट भेजे जा सकते हैं. इस तरीके से, डिवाइस को लूप की गई इंस्ट्रूमेंटेशन से बचाया जाता है. ये इंस्ट्रूमेंटेशन, परफ़ॉर्मेंस का ज़्यादा डेटा भेज सकते हैं. साथ ही, यह किसी एक डिवाइस को परफ़ॉर्मेंस मेज़रमेंट को गलत तरीके से पेश करने से रोकता है.
डाइनैमिक सैंपलिंग: Performance Monitoring हर दिन, ऐप्लिकेशन के सभी उपयोगकर्ताओं के लिए, ऐप्लिकेशन के हिसाब से कोड ट्रेस और नेटवर्क अनुरोध ट्रेस की सीमित संख्या इकट्ठा करता है. डिवाइसों पर डाइनैमिक सैंपलिंग रेट (Firebase Remote Config का इस्तेमाल करके) फ़ेच किया जाता है, ताकि यह तय किया जा सके कि किसी डिवाइस को ट्रेस कैप्चर करके भेजना चाहिए या नहीं. सैंपलिंग के लिए नहीं चुना गया डिवाइस, कोई भी इवेंट नहीं भेजता है. डाइनैमिक सैंपलिंग रेट, ऐप्लिकेशन के हिसाब से तय होता है. यह इस तरह से अडजस्ट होता है कि इकट्ठा किए गए डेटा का कुल वॉल्यूम, तय सीमा से कम रहे.
जिन प्रोजेक्ट के लिए BigQuery इंटिग्रेशन चालू है उन्हें नेटवर्क अनुरोध ट्रेस की संख्या के लिए ज़्यादा सीमा मिलती है.
उपयोगकर्ता सेशन, उपयोगकर्ता के डिवाइस से ज़्यादा और ज़्यादा जानकारी वाला डेटा भेजते हैं. इसलिए, डेटा को कैप्चर और भेजने के लिए ज़्यादा संसाधनों की ज़रूरत होती है. उपयोगकर्ता सेशन के असर को कम करने के लिए, Performance Monitoring सेशन की संख्या को भी सीमित कर सकता है.
सर्वर-साइड रेट लिमिटिंग: यह पक्का करने के लिए कि ऐप्लिकेशन, सैंपलिंग की सीमा से ज़्यादा डेटा न भेजें, Performance Monitoring सर्वर-साइड सैंपलिंग का इस्तेमाल कर सकता है. इससे डिवाइसों से मिले कुछ इवेंट को ड्रॉप किया जा सकता है. हालांकि, इस तरह की सीमा तय करने से हमारी मेट्रिक की परफ़ॉर्मेंस पर कोई असर नहीं पड़ता. हालांकि, इससे पैटर्न में मामूली बदलाव हो सकते हैं. इनमें ये शामिल हैं:
- ट्रेस की संख्या, कोड के किसी हिस्से को एक्ज़ीक्यूट किए जाने की संख्या से अलग हो सकती है.
- कोड में एक-दूसरे से जुड़े ट्रेस में, हर ट्रेस के लिए अलग-अलग संख्या में सैंपल हो सकते हैं.
कंसोल में समस्याएं टैब का क्या हुआ?
हमने 'समस्याएं' टैब की जगह, सूचनाएं पाने की सुविधा शुरू की है. यह सुविधा, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा होने पर, आपको अपने-आप सूचना देती है. अब आपको थ्रेशोल्ड की स्थिति का पता लगाने के लिए, Firebase कंसोल को मैन्युअल तरीके से देखने की ज़रूरत नहीं है. सूचनाओं के बारे में जानने के लिए, परफ़ॉर्मेंस से जुड़ी समस्याओं के लिए सूचनाएं सेट अप करना लेख पढ़ें.
कंसोल में डिवाइस पर और नेटवर्क टैब का क्या हुआ? उन पेजों पर मौजूद ट्रेस कैसे देखें?
हमने Firebase कंसोल के Performance Monitoring सेक्शन को फिर से डिज़ाइन किया है, ताकि डैशबोर्ड टैब में आपको एक ही जगह पर अपनी मुख्य मेट्रिक और सभी ट्रेस दिखें. रीडिज़ाइन के तहत, हमने डिवाइस पर और नेटवर्क पेज हटा दिए हैं.
डैशबोर्ड टैब में सबसे नीचे मौजूद ट्रेस टेबल में वही सारी जानकारी होती है जो डिवाइस पर और नेटवर्क टैब में दिखती है. हालांकि, इसमें कुछ और सुविधाएं भी शामिल होती हैं. जैसे, किसी खास मेट्रिक के लिए प्रतिशत बदलाव के हिसाब से अपने ट्रेस को क्रम से लगाने की सुविधा. किसी खास ट्रेस के लिए, सभी मेट्रिक और डेटा देखने के लिए, ट्रेस टेबल में ट्रेस के नाम पर क्लिक करें.
ट्रेस टेबल के इन सबटैब में अपने ट्रेस देखें:
- नेटवर्क के अनुरोधों के ट्रेस (आउट-ऑफ़-द-बॉक्स और कस्टम, दोनों) — नेटवर्क के अनुरोध सब-टैब
- कस्टम कोड ट्रेस — कस्टम ट्रेस सब-टैब
- ऐप्लिकेशन शुरू होने, ऐप्लिकेशन फ़ोरग्राउंड में होने, और ऐप्लिकेशन बैकग्राउंड में होने के ट्रेस — कस्टम ट्रेस सबटैब
- स्क्रीन रेंडरिंग ट्रेस — स्क्रीन रेंडरिंग सब-टैब
- पेज लोड ट्रेस — पेज लोड सब-टैब
ट्रेस टेबल और मेट्रिक और डेटा देखने के बारे में ज़्यादा जानने के लिए, कंसोल के खास जानकारी वाले पेज (iOS+ | Android | वेब) पर जाएं.
ज़्यादा समय लेने वाले और फ़्रीज़ होने वाले फ़्रेम की संख्या, मेरी उम्मीद के मुताबिक क्यों नहीं है?
धीमी रेंडरिंग फ़्रेम और रुके हुए फ़्रेम का हिसाब, डिवाइस की रीफ़्रेश दर 60 हर्ट्ज़ मानकर लगाया जाता है. अगर किसी डिवाइस का रीफ़्रेश रेट 60 हर्ट्ज़ से कम है, तो हर फ़्रेम को रेंडर होने में ज़्यादा समय लगेगा, क्योंकि हर सेकंड में कम फ़्रेम रेंडर होते हैं. रेंडर होने में ज़्यादा समय लगने की वजह से, रेंडर होने में बहुत ज़्यादा समय लेने वाले फ़्रेम या फ़्रीज़ होने वाले फ़्रेम की ज़्यादा शिकायतें मिल सकती हैं. ऐसा इसलिए, क्योंकि ज़्यादा फ़्रेम धीरे-धीरे रेंडर होंगे या फ़्रीज़ हो जाएंगे. हालांकि, अगर किसी डिवाइस का रीफ़्रेश रेट 60 हर्ट्ज़ से ज़्यादा है, तो हर फ़्रेम को रेंडर होने में कम समय लगेगा. इससे कम फ़्रेम रेट या फ़्रीज़ हुए फ़्रेम की रिपोर्ट की जा सकती है. Performance Monitoring SDK टूल में फ़िलहाल यह सुविधा उपलब्ध नहीं है.
मुझे फ़्रैगमेंट ट्रेस क्यों नहीं दिख रहे हैं?
ऐप्लिकेशन गतिविधि के साथ-साथ फ़्रैगमेंट की परफ़ॉर्मेंस देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन Performance Monitoring Android SDK के 20.1.0 या इसके बाद के वर्शन का इस्तेमाल कर रहा हो. ज़्यादा जानने के लिए, अपने ऐप्लिकेशन में परफ़ॉर्मेंस मॉनिटरिंग की सुविधा जोड़ना लेख पढ़ें.
मुझे कैसे पता चलेगा कि कौनसे ट्रेस, फ़्रैगमेंट और ऐक्टिविटी से जुड़े हैं?
फ़्रैगमेंट और ऐक्टिविटी के हर ट्रेस को, आपके ऐप्लिकेशन में तय किए गए क्लास नेम के आधार पर बनाया जाता है. स्क्रीन ट्रेस में, st प्रीफ़िक्स होता है. इसके बाद, क्लास का नाम होता है. Firebase कंसोल में, प्रीफ़िक्स हटा दिया जाता है. ज़्यादा जानने के लिए, स्क्रीन रेंडरिंग की परफ़ॉर्मेंस से जुड़े डेटा के बारे में जानें (Apple और Android ऐप्लिकेशन) लेख पढ़ें.
मुझे अन्य ट्रेस की तुलना में फ़्रैगमेंट ट्रेस कम क्यों दिख रहे हैं?
Performance Monitoring किसी डिवाइस पर इकट्ठा किए गए सभी इवेंट के लिए, इवेंट सैंपलिंग करता है. इस तरीके से, हमें उपयोगकर्ता के डिवाइसों से सिर्फ़ ज़रूरी इवेंट इकट्ठा करने में मदद मिलती है. इससे हम परफ़ॉर्मेंस मेट्रिक उपलब्ध करा पाते हैं.
मेरे ऐप्लिकेशन की रेंडरिंग परफ़ॉर्मेंस में कोई समस्या होने पर, मुझे इसकी सूचना कैसे मिलती है?
Performance Monitoring की मदद से, अपनी ज़रूरत की मेट्रिक के लिए सूचनाएं सेट अप की जा सकती हैं. जनरेट किए गए स्क्रीन रेंडरिंग ट्रेस के लिए, सूचनाएं सेट अप की जा सकती हैं. इससे आपको तब सूचना मिलेगी, जब धीमे और फ़्रीज़ हुए फ़्रेम का प्रतिशत, आपके सेट किए गए थ्रेशोल्ड से ज़्यादा हो जाएगा.
Performance Monitoring Gradle प्लगिन चालू करने के बाद, मेरे बिल्ड में ज़्यादा समय लग रहा है. मैं इसे कैसे बेहतर बनाऊं?
Performance Monitoring for Android, बाइटकोड इंस्ट्रुमेंटेशन का इस्तेमाल करता है. इससे कुछ ऐसी सुविधाएं मिलती हैं जो पहले से उपलब्ध होती हैं. जैसे, एचटीटीपी/एचटीटीपीएस नेटवर्क अनुरोधों की निगरानी करना. संकलन के दौरान, इस प्रोसेस में आपके ऐप्लिकेशन की सभी क्लास (डिपेंडेंसी भी शामिल हैं) को दोहराना पड़ता है. ऐसा इसलिए किया जाता है, ताकि उस कोड को इंस्ट्रुमेंट किया जा सके जो आपके ऐप्लिकेशन के नेटवर्क अनुरोध की परफ़ॉर्मेंस को मेज़र करने के लिए ज़रूरी है.
यहां कुछ मुख्य वजहें दी गई हैं जिनकी वजह से, बिल्ड प्रोसेस में लगने वाला समय बढ़ जाता है:
- क्लास या फ़ाइलों की संख्या
- उनमें से हर क्लास का साइज़ (कोड की लाइनें)
- मशीन का कॉन्फ़िगरेशन
- पहली बार बनाया गया वर्शन बनाम बाद में बनाया गया वर्शन (बाद में बनाए गए वर्शन, आम तौर पर पहली बार बनाए गए वर्शन से ज़्यादा तेज़ी से बनते हैं)
बिल्ड प्रोसेस में लगने वाले समय को ऑप्टिमाइज़ करने के लिए, अपने कोड को मॉड्यूल में बांटें.
Performance Monitoring प्लगिन के v1.3.3 वर्शन से, हमने इंक्रीमेंटल बिल्ड प्रोसेसिंग और लाइब्रेरी इनपुट की कैश मेमोरी को बेहतर बनाने पर ध्यान दिया है. बिल्ड प्रोसेस में लगने वाले समय को बेहतर बनाने के लिए, प्लगिन (v2.0.2) का नया वर्शन इस्तेमाल करें.
ध्यान दें कि अगर आपको बिल्ड में ज़्यादा समय लगने से बचना है, तो स्थानीय तौर पर अपनी डीबग बिल्ड के लिए, Performance Monitoring प्लगिन बंद किया जा सकता है. हालांकि, प्रोडक्शन बिल्ड के लिए इस तरीके का सुझाव नहीं दिया जाता, क्योंकि इससे आपके ऐप्लिकेशन में नेटवर्क अनुरोधों के लिए परफ़ॉर्मेंस मेज़रमेंट छूट सकता है.
अगर मुझे Performance Monitoring Gradle प्लगिन के साथ काम न करने वाली लाइब्रेरी की वजह से, बिल्ड से जुड़ी गड़बड़ियां मिलती हैं, तो मुझे क्या करना चाहिए?
Performance Monitoring for Android, बाइटकोड इंस्ट्रुमेंटेशन का इस्तेमाल करता है. इससे कुछ ऐसी सुविधाएं मिलती हैं जो पहले से उपलब्ध होती हैं. जैसे, एचटीटीपी/एचटीटीपीएस नेटवर्क अनुरोधों की निगरानी करना. संकलन के दौरान, इस प्रोसेस में आपके ऐप्लिकेशन की सभी क्लास (डिपेंडेंसी भी शामिल हैं) को दोहराना पड़ता है. ऐसा इसलिए किया जाता है, ताकि उस कोड को इंस्ट्रुमेंट किया जा सके जो आपके ऐप्लिकेशन के नेटवर्क अनुरोध की परफ़ॉर्मेंस को मेज़र करने के लिए ज़रूरी है.
अगर आपको Performance Monitoring प्लगिन के साथ इंटिग्रेट करने के बाद, JSR/RET are not supported with
computeFrames option या इसी तरह की अन्य गड़बड़ियां दिखती हैं, तो इसकी वजह यह हो सकती है कि आपकी लाइब्रेरी, Performance Monitoring Gradle प्लगिन के साथ काम नहीं करती है.
इस समस्या को ठीक करने के लिए, इन चरणों को पूरा करके, उन क्लास/लाइब्रेरी को इंस्ट्रुमेंटेशन से बाहर रखा जा सकता है जो काम नहीं करती हैं:
- Performance Monitoring Gradle प्लगिन को नए वर्शन (कम से कम v1.4.0) पर अपडेट करें.
- Android Gradle प्लगिन के वर्शन को v7.2.0 या इसके बाद के वर्शन पर अपडेट करें.
- मॉड्यूल (ऐप्लिकेशन-लेवल) की
build.gradleफ़ाइल में यह फ़्लैग जोड़ें, ताकि काम न करने वाली क्लास/लाइब्रेरी को इंस्ट्रुमेंटेशन से बाहर रखा जा सके: Android Gradle प्लगिन केandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
Instrumentationएपीआई कीexcludeप्रॉपर्टी के बारे में ज़्यादा जानने के लिए, इंस्ट्रुमेंटेशन देखें.
अगर आपको ऐसी लाइब्रेरी की वजह से बिल्ड से जुड़ी गड़बड़ियां मिलती हैं जो काम नहीं करती हैं, तो कृपया Github पर समस्या की शिकायत करें. इससे इन लाइब्रेरी को Performance Monitoring प्लगिन में इंस्ट्रुमेंट किए जाने से भी रोका जा सकेगा.
मेरे Performance Monitoring डेटा को BigQuery में एक्सपोर्ट होने में, उम्मीद से ज़्यादा समय लग रहा है. क्या यह रीयल टाइम में नहीं है?
अगर आपने Firebase Performance Monitoring के लिए BigQuery इंटिग्रेशन चालू किया है, तो आपका डेटा दिन खत्म होने के 12 से 24 घंटे बाद (पैसिफ़िक समय) BigQuery में एक्सपोर्ट किया जाएगा.
उदाहरण के लिए, 19 अप्रैल का डेटा, BigQuery में 20 अप्रैल को दोपहर 12 बजे से आधी रात के बीच उपलब्ध होगा. सभी तारीखें और समय, पैसिफ़िक समय के हिसाब से हैं.
कितने कस्टम यूआरएल पैटर्न बनाए जा सकते हैं?
हर ऐप्लिकेशन के लिए, ज़्यादा से ज़्यादा 400 कस्टम यूआरएल पैटर्न बनाए जा सकते हैं. साथ ही, उस ऐप्लिकेशन के हर डोमेन के लिए, ज़्यादा से ज़्यादा 100 कस्टम यूआरएल पैटर्न बनाए जा सकते हैं.
डेटा को करीब-करीब रीयल-टाइम में प्रोसेस और डिसप्ले करना
"करीब-करीब रीयल टाइम" परफ़ॉर्मेंस डेटा का क्या मतलब है?
Firebase Performance Monitoring, परफ़ॉर्मेंस डेटा को इकट्ठा करके उसे प्रोसेस करता है. इससे Firebase कंसोल में, करीब-करीब रीयल-टाइम में डेटा दिखता है. प्रोसेस किया गया डेटा, इकट्ठा होने के कुछ ही मिनटों में कंसोल में दिखने लगता है. इसलिए, इसे "रीयल-टाइम के आस-पास" कहा जाता है.
करीब-करीब रीयल-टाइम में डेटा प्रोसेस करने की सुविधा का फ़ायदा लेने के लिए, पक्का करें कि आपका ऐप्लिकेशन, रीयल-टाइम के साथ काम करने वाले SDK टूल के वर्शन का इस्तेमाल करता हो.
मुझे अपने ऐप्लिकेशन के लिए, रीयल टाइम के आस-पास का परफ़ॉर्मेंस डेटा कैसे मिलेगा?
रीयल-टाइम के आस-पास डेटा प्रोसेस करने की सुविधा का फ़ायदा पाने के लिए, आपको सिर्फ़ यह पक्का करना होगा कि आपका ऐप्लिकेशन, Performance Monitoring SDK टूल के ऐसे वर्शन का इस्तेमाल करता हो जो रीयल-टाइम डेटा प्रोसेसिंग के साथ काम करता हो.
ये ऐसे SDK वर्शन हैं जो रीयल-टाइम में काम करते हैं:
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — v8.9.0 या उसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हम हमेशा एसडीके के नए वर्शन का इस्तेमाल करने का सुझाव देते हैं. हालांकि, ऊपर दिए गए किसी भी वर्शन से, Performance Monitoring को आपके डेटा को रीयल टाइम में प्रोसेस करने की सुविधा मिलेगी.
Performance Monitoring SDK के किन वर्शन को रीयल-टाइम के साथ काम करने वाला माना जाता है?
रीयल-टाइम में डेटा प्रोसेस करने की सुविधा के साथ काम करने वाले एसडीके के वर्शन ये हैं:
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — v8.9.0 या उसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हम हमेशा एसडीके के नए वर्शन का इस्तेमाल करने का सुझाव देते हैं. हालांकि, ऊपर दिए गए किसी भी वर्शन से, Performance Monitoring को आपके डेटा को रीयल टाइम में प्रोसेस करने की सुविधा मिलेगी.
अगर मैंने अपने ऐप्लिकेशन को, रीयल-टाइम में काम करने वाले एसडीके के वर्शन का इस्तेमाल करने के लिए अपडेट नहीं किया, तो क्या होगा?
अगर आपका ऐप्लिकेशन, रीयल-टाइम रिपोर्टिंग की सुविधा के साथ काम करने वाले एसडीके टूल के वर्शन का इस्तेमाल नहीं करता है, तो भी आपको Firebase कंसोल में अपने ऐप्लिकेशन की परफ़ॉर्मेंस का पूरा डेटा दिखेगा. हालांकि, परफ़ॉर्मेंस डेटा दिखने में, डेटा इकट्ठा होने के समय से करीब 36 घंटे लगेंगे.
मैंने रीयल-टाइम में काम करने वाले SDK टूल के वर्शन पर अपडेट कर लिया है, लेकिन मेरे कुछ उपयोगकर्ता अब भी मेरे ऐप्लिकेशन के पुराने वर्शन इस्तेमाल कर रहे हैं. क्या मुझे Firebase कंसोल में, उनके परफ़ॉर्मेंस डेटा को देखना जारी रखना चाहिए?
हां! ऐप्लिकेशन का कोई इंस्टेंस, एसडीके के जिस भी वर्शन का इस्तेमाल करता है उससे कोई फ़र्क़ नहीं पड़ता. आपको अपने सभी उपयोगकर्ताओं का परफ़ॉर्मेंस डेटा दिखेगा.
हालांकि, अगर आपको हाल ही का डेटा (लगभग 36 घंटे से कम पुराना) देखना है, तो दिखाया गया डेटा, ऐप्लिकेशन इंस्टेंस के उन उपयोगकर्ताओं का होता है जो रीयल-टाइम के साथ काम करने वाले एसडीके वर्शन का इस्तेमाल करते हैं. हालांकि, हाल ही का नहीं डेटा में, आपके ऐप्लिकेशन के सभी वर्शन का परफ़ॉर्मेंस डेटा शामिल होता है.
मुझे परफ़ॉर्मेंस डेटा का रीयल टाइम डिसप्ले क्यों नहीं दिख रहा है?
रीयल टाइम में परफ़ॉर्मेंस डेटा देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन, Performance Monitoringएसडीके के ऐसे वर्शन का इस्तेमाल करता हो जो रीयल टाइम में डेटा प्रोसेस करने के साथ काम करता हो.
- iOS — v7.3.0 या इसके बाद का वर्शन
- tvOS — v8.9.0 या उसके बाद का वर्शन
- Android — v19.0.10 या इसके बाद का वर्शन (या Firebase Android BoM v26.1.0 या इसके बाद का वर्शन)
- वेब — v7.14.0 या इसके बाद का वर्शन
ध्यान दें कि हम हमेशा एसडीके के नए वर्शन का इस्तेमाल करने का सुझाव देते हैं. हालांकि, ऊपर दिए गए किसी भी वर्शन से, Performance Monitoring को आपके डेटा को रीयल टाइम में प्रोसेस करने की सुविधा मिलेगी.
Firebase की सहायता टीम से संपर्क करना
अगर आपको Firebase सहायता टीम से संपर्क करना है, तो हमेशा अपना Firebase ऐप्लिकेशन आईडी शामिल करें. अपना Firebase ऐप्लिकेशन आईडी ढूंढने के लिए, settings प्रोजेक्ट की सेटिंग में जाकर, आपके ऐप्लिकेशन कार्ड पर जाएं.