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