फ़ीचर रोलआउट की प्रदर्शन निगरानी

1 अवलोकन

इस कोडलैब में, आप सीखेंगे कि फीचर रोलआउट के दौरान अपने ऐप के प्रदर्शन की निगरानी कैसे करें। हमारे नमूना ऐप में बुनियादी कार्यक्षमता होगी, और इसे फ़ायरबेस रिमोट कॉन्फ़िगरेशन ध्वज के आधार पर एक अलग पृष्ठभूमि छवि प्रदर्शित करने के लिए सेट किया गया है। हम ऐप के प्रदर्शन की निगरानी करने, ऐप में कॉन्फ़िगरेशन परिवर्तन लाने, प्रभाव की निगरानी करने और यह देखने के लिए कि हम प्रदर्शन को कैसे सुधार सकते हैं, इंस्ट्रूमेंटिंग ट्रेस पर जाएंगे।

आप क्या सीखेंगे

  • आउट-ऑफ-द-बॉक्स मेट्रिक्स प्राप्त करने के लिए अपने मोबाइल ऐप में फायरबेस परफॉर्मेंस मॉनिटरिंग कैसे जोड़ें (जैसे ऐप शुरू होने का समय और धीमा या जमे हुए फ्रेम)
  • अपनी उपयोगकर्ता यात्राओं के महत्वपूर्ण कोड पथों को समझने के लिए कस्टम ट्रेस कैसे जोड़ें
  • अपने मेट्रिक्स को समझने और किसी सुविधा के रोलआउट जैसे महत्वपूर्ण परिवर्तनों को ट्रैक करने के लिए प्रदर्शन मॉनिटरिंग डैशबोर्ड का उपयोग कैसे करें
  • अपने प्रमुख मेट्रिक्स की निगरानी के लिए प्रदर्शन अलर्ट कैसे सेटअप करें
  • फ़ायरबेस रिमोट कॉन्फ़िगरेशन परिवर्तन कैसे रोल आउट करें

आवश्यक शर्तें

  • एंड्रॉइड स्टूडियो 4.0 या उच्चतर
  • एपीआई स्तर 16 या उच्चतर वाला एक एंड्रॉइड एमुलेटर।
  • जावा संस्करण 8 या उच्चतर
  • फायरबेस रिमोट कॉन्फ़िगरेशन की बुनियादी समझ

2. नमूना प्रोजेक्ट सेट करें

कोड डाउनलोड करें

इस कोडलैब के लिए नमूना कोड क्लोन करने के लिए निम्न कमांड चलाएँ। यह आपकी मशीन पर codelab-perf-rc-android नामक एक फ़ोल्डर बनाएगा:

$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git

यदि आपकी मशीन पर Git नहीं है, तो आप सीधे GitHub से भी कोड डाउनलोड कर सकते हैं।

प्रोजेक्ट को एंड्रॉइड स्टूडियो में firebase-perf-rc-android-start फ़ोल्डर के तहत आयात करें। आपको संभवतः कुछ रनटाइम अपवाद या शायद गुम google-services.json फ़ाइल के बारे में एक चेतावनी दिखाई देगी। हम इसे अगले भाग में ठीक करेंगे.

इस कोडलैब में, आप अपने एंड्रॉइड ऐप को फायरबेस प्रोजेक्ट के साथ पंजीकृत करने के लिए फायरबेस असिस्टेंट प्लगइन का उपयोग करेंगे और अपने एंड्रॉइड प्रोजेक्ट में आवश्यक फायरबेस कॉन्फ़िगरेशन फ़ाइलें, प्लगइन्स और निर्भरताएं जोड़ेंगे - सभी एंड्रॉइड स्टूडियो के भीतर से !

अपने ऐप को फायरबेस से कनेक्ट करें

  1. यह सुनिश्चित करने के लिए कि आप एंड्रॉइड स्टूडियो और फायरबेस असिस्टेंट के नवीनतम संस्करणों का उपयोग कर रहे हैं, एंड्रॉइड स्टूडियो / सहायता > अपडेट की जांच करें पर जाएं।
  2. असिस्टेंट फलक खोलने के लिए टूल्स > फायरबेस चुनें।

c0e42ef063d21eab.png

  1. अपने ऐप में जोड़ने के लिए प्रदर्शन मॉनिटरिंग चुनें, फिर प्रदर्शन मॉनिटरिंग के साथ आरंभ करें पर क्लिक करें।
  2. अपने एंड्रॉइड प्रोजेक्ट को फायरबेस से कनेक्ट करने के लिए कनेक्ट टू फायरबेस पर क्लिक करें (इससे आपके ब्राउज़र में फायरबेस कंसोल खुल जाएगा)।
  3. फायरबेस कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें, फिर फायरबेस प्रोजेक्ट नाम दर्ज करें (यदि आपके पास पहले से ही फायरबेस प्रोजेक्ट है, तो आप इसके बजाय उस मौजूदा प्रोजेक्ट का चयन कर सकते हैं)। फ़ायरबेस प्रोजेक्ट और एक नया फ़ायरबेस ऐप बनाने के लिए जारी रखें पर क्लिक करें और शर्तें स्वीकार करें।

आपको अपने नए फायरबेस ऐप को अपने एंड्रॉइड स्टूडियो प्रोजेक्ट से कनेक्ट करने के लिए एक डायलॉग देखना चाहिए।

51a549ebde2fe57a.png

  1. कनेक्ट पर क्लिक करें.
  2. एंड्रॉइड स्टूडियो खोलें। सहायक फलक में, आपको पुष्टिकरण दिखाई देगा कि आपका ऐप फायरबेस से जुड़ा है।

40c24c4a56a45990.png

अपने ऐप में प्रदर्शन मॉनिटरिंग जोड़ें

एंड्रॉइड स्टूडियो में सहायक फलक में, अपने ऐप में प्रदर्शन मॉनिटरिंग जोड़ें पर क्लिक करें।

आपको परिवर्तनों को स्वीकार करने के लिए एक संवाद देखना चाहिए जिसके बाद एंड्रॉइड स्टूडियो को यह सुनिश्चित करने के लिए आपके ऐप को सिंक करना चाहिए कि सभी आवश्यक निर्भरताएं जोड़ दी गई हैं।

3046f3e1f5fea06f.png

अंत में, आपको एंड्रॉइड स्टूडियो में सहायक फलक में सफलता संदेश देखना चाहिए कि सभी निर्भरताएँ सही ढंग से सेट की गई हैं।

62e79fd18780e320.png

एक अतिरिक्त चरण के रूप में, "(वैकल्पिक) डिबग लॉगिंग सक्षम करें " चरण में दिए गए निर्देशों का पालन करके डिबग लॉगिंग सक्षम करें। यही निर्देश सार्वजनिक दस्तावेज़ में भी उपलब्ध हैं।

3. ऐप चलाएं

अब आपको अपने ऐप के मॉड्यूल (ऐप-स्तर) निर्देशिका में google-services.json फ़ाइल देखनी चाहिए, और आपका ऐप अब संकलित होना चाहिए। एंड्रॉइड स्टूडियो में, अपने एंड्रॉइड एमुलेटर पर ऐप बनाने और चलाने के लिए रन > रन 'ऐप' पर क्लिक करें।

जब ऐप चल रहा हो, तो आपको सबसे पहले इस तरह की एक स्प्लैश स्क्रीन देखनी चाहिए:

ffbd413a6983b205.png

फिर, कुछ सेकंड के बाद, डिफ़ॉल्ट छवि वाला मुख्य पृष्ठ प्रदर्शित होगा:

d946cab0df319e50.png

हुड के नीचे क्या हो रहा है?

स्प्लैश स्क्रीन स्प्लैशस्क्रीनएक्टिविटी में लागू की गई है और निम्नलिखित कार्य करती है:

  1. onCreate() में, हम फायरबेस रिमोट कॉन्फिग सेटिंग्स को इनिशियलाइज़ करते हैं और उन कॉन्फिग मानों को लाते हैं जिन्हें आप बाद में इस कोडलैब में रिमोट कॉन्फिग डैशबोर्ड में सेट करेंगे।
  2. executeTasksBasedOnRC() में, हम seasonal_image_url ध्वज का कॉन्फ़िगरेशन मान पढ़ते हैं। यदि कॉन्फ़िगरेशन मान द्वारा कोई URL प्रदान किया गया है, तो हम छवि को समकालिक रूप से डाउनलोड करते हैं।
  3. एक बार डाउनलोड पूरा हो जाने पर, ऐप मेनएक्टिविटी पर चला जाता है और SplashScreenActivity समाप्त करने के लिए finish() को कॉल करता है।

MainActivity में, यदि seasonal_image_url रिमोट कॉन्फिग के माध्यम से परिभाषित किया गया है, तो सुविधा सक्षम हो जाएगी और डाउनलोड की गई छवि मुख्य पृष्ठ की पृष्ठभूमि के रूप में प्रदर्शित होगी। अन्यथा, डिफ़ॉल्ट छवि (ऊपर दिखाई गई) प्रदर्शित की जाएगी।

4. रिमोट कॉन्फ़िगरेशन सेट करें

अब जब आपका ऐप चल रहा है, तो आप नया फीचर फ़्लैग सेट कर सकते हैं।

  1. फायरबेस कंसोल के बाएं पैनल में, एंगेज अनुभाग का पता लगाएं, फिर रिमोट कॉन्फिग पर क्लिक करें।
  2. कॉन्फ़िगरेशन फॉर्म खोलने के लिए कॉन्फ़िगरेशन बनाएं बटन पर क्लिक करें और पैरामीटर कुंजी के रूप में seasonal_image_url जोड़ें।
  3. विवरण जोड़ें पर क्लिक करें, फिर यह विवरण दर्ज करें: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. नया जोड़ें -> सशर्त मान -> नई शर्त बनाएं पर क्लिक करें।
  5. शर्त नाम के लिए, Seasonal image rollout दर्ज करें।
  6. Applies if... अनुभाग के लिए, User in random percentile <= 0% चयन करें। (जब तक आप बाद के चरण में रोल आउट करने के लिए तैयार नहीं हो जाते तब तक आप सुविधा को अक्षम छोड़ना चाहते हैं।)
  7. शर्त बनाएं पर क्लिक करें. आप बाद में अपने उपयोगकर्ताओं के लिए नई सुविधा शुरू करने के लिए इस शर्त का उपयोग करेंगे।

7a07526eb9e81623.png

  1. अपना पहला पैरामीटर बनाएं फॉर्म खोलें और सीज़नल इमेज रोलआउट फ़ील्ड के लिए मान का पता लगाएं। वह URL दर्ज करें जहां मौसमी छवि डाउनलोड की जाएगी: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. डिफ़ॉल्ट मान को खाली स्ट्रिंग के रूप में छोड़ दें। इसका मतलब है कि यूआरएल से डाउनलोड की गई छवि के बजाय कोडबेस में डिफ़ॉल्ट छवि दिखाई जाएगी।
  3. सहेजें पर क्लिक करें.

99e6cd2ebcdced.png

आप देख सकते हैं कि नया कॉन्फिग ड्राफ्ट के रूप में बनाया गया है।

  1. परिवर्तन प्रकाशित करें पर क्लिक करें और अपने ऐप को अपडेट करने के लिए शीर्ष पर परिवर्तनों की पुष्टि करें।

39cd3e96d370c7ce.png

5. डेटा लोडिंग समय के लिए निगरानी जोड़ें

आपका ऐप MainActivity दिखाने से पहले कुछ डेटा प्री-लोड करता है और इस प्रक्रिया को छिपाने के लिए एक स्प्लैश स्क्रीन प्रदर्शित करता है। आप नहीं चाहते कि आपके उपयोगकर्ता इस स्क्रीन पर बहुत देर तक प्रतीक्षा करें, इसलिए आम तौर पर यह निगरानी करना फायदेमंद होता है कि स्प्लैश स्क्रीन कितनी देर तक प्रदर्शित होती है।

फायरबेस परफॉर्मेंस मॉनिटरिंग ऐसा करने का एक तरीका प्रदान करता है। आप अपने ऐप में विशिष्ट कोड के प्रदर्शन की निगरानी के लिए कस्टम कोड ट्रेस का उपयोग कर सकते हैं - जैसे डेटा के लिए लोडिंग समय और आपकी नई सुविधा का प्रसंस्करण समय।

यह ट्रैक करने के लिए कि स्प्लैश स्क्रीन कितनी देर तक प्रदर्शित होती है, आप SplashScreenActivity में एक कस्टम कोड ट्रेस जोड़ेंगे, जो कि वह Activity है जो स्प्लैश स्क्रीन को लागू करती है।

  1. splash_screen_trace नामक एक कस्टम कोड ट्रेस प्रारंभ करें, बनाएं और प्रारंभ करें:

स्पलैशस्क्रीनएक्टिविटी.जावा

// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...

public class SplashScreenActivity extends AppCompatActivity {

    private static final String TAG = "SplashScreenActivity";
    private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";

    // TODO: Initialize splash_screen_trace
    private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
    
    // ...
}
  1. SplashScreenActivity की onDestroy() विधि में ट्रेस को समाप्त करें:

स्पलैशस्क्रीनएक्टिविटी.जावा

@Override
protected void onDestroy() {
    super.onDestroy();

    // TODO: Stop the splash_screen_trace here
    splashScreenTrace.stop();
}

चूँकि आपकी नई सुविधा एक छवि को डाउनलोड और संसाधित करती है, आप एक दूसरा कस्टम कोड ट्रेस जोड़ेंगे जो आपके फीचर द्वारा SplashScreenActivity में जोड़े गए अतिरिक्त समय को ट्रैक करेगा।

  1. splash_seasonal_image_processing नामक एक कस्टम कोड ट्रेस प्रारंभ करें, बनाएं और प्रारंभ करें:

स्पलैशस्क्रीनएक्टिविटी.जावा

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    if (!seasonalImageUrl.isEmpty()) {
        // TODO: Start the splash_seasonal_image_processing here
        final Trace seasonalImageProcessingTrace = FirebasePerformance
            .startTrace("splash_seasonal_image_processing");

        // ...
    }
}
  1. RequestListener के onLoadFailed() और onResourceReady() दोनों तरीकों में ट्रेस को समाप्त करें:

स्पलैशस्क्रीनएक्टिविटी.जावा

Glide.with(SplashScreenActivity.this.getApplicationContext())
    .asBitmap()
    .load(seasonalImageUrl)
    .signature(new ObjectKey(Utils.getCacheUUID()))
    .listener(new RequestListener<Bitmap>() {
        @Override
        public boolean onLoadFailed(
            @Nullable GlideException e,
            Object model, Target<Bitmap> target,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }

        @Override
        public boolean onResourceReady(Bitmap resource, Object model,
            Target<Bitmap> target, DataSource dataSource,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }
     })
     .preload();

अब जब आपने स्प्लैश स्क्रीन अवधि ( splash_screen_trace) और नई सुविधा के प्रसंस्करण समय ( splash_seasonal_image_processing ) को ट्रैक करने के लिए कस्टम कोड ट्रेस जोड़ दिए हैं, तो ऐप को एंड्रॉइड स्टूडियो में फिर से चलाएं । आपको एक लॉगिंग संदेश देखना चाहिए जिसमें Logging trace metric: splash_screen_trace , उसके बाद ट्रेस की अवधि। आपको splash_seasonal_image_processing के लिए लॉग संदेश नहीं दिखेगा क्योंकि आपने अभी तक नई सुविधा सक्षम नहीं की है।

6. ट्रेस में एक कस्टम विशेषता जोड़ें

कस्टम कोड ट्रेस के लिए, प्रदर्शन मॉनिटरिंग स्वचालित रूप से डिफ़ॉल्ट विशेषताओं (सामान्य मेटाडेटा जैसे ऐप संस्करण, देश, डिवाइस इत्यादि) को लॉग करती है ताकि आप फायरबेस कंसोल में ट्रेस के लिए डेटा फ़िल्टर कर सकें। आप कस्टम विशेषताएँ भी जोड़ और मॉनिटर कर सकते हैं।

अपने ऐप में, आपने स्प्लैश स्क्रीन अवधि और नई सुविधा के प्रसंस्करण समय की निगरानी के लिए दो कस्टम कोड ट्रेस जोड़े हैं। एक कारक जो इन अवधियों को प्रभावित कर सकता है वह यह है कि क्या प्रदर्शित छवि डिफ़ॉल्ट छवि है या क्या छवि को किसी यूआरएल से डाउनलोड किया जाना है। और कौन जानता है - अंततः आपके पास अलग-अलग यूआरएल हो सकते हैं जिनसे आप एक छवि डाउनलोड करते हैं।

तो, आइए इन कस्टम कोड ट्रेस में मौसमी छवि यूआरएल का प्रतिनिधित्व करने वाली एक कस्टम विशेषता जोड़ें। इस तरह, आप बाद में इन मानों के आधार पर अवधि डेटा फ़िल्टर कर सकते हैं।

  1. executeTasksBasedOnRC विधि की शुरुआत में splash_screen_trace के लिए कस्टम विशेषता ( seasonal_image_url_attribute ) जोड़ें:

स्पलैशस्क्रीनएक्टिविटी.जावा

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
    if (seasonalImageUrl.isEmpty()) {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
    } else {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
    }

    // ...
}
  1. startTrace("splash_seasonal_image_processing") कॉल के ठीक बाद splash_seasonal_image_processing के लिए वही कस्टम विशेषता जोड़ें:

स्पलैशस्क्रीनएक्टिविटी.जावा

if (!seasonalImageUrl.isEmpty()) {
    // TODO: Start the splash_seasonal_image_processing here
    final Trace seasonalImageProcessingTrace = FirebasePerformance
        .startTrace("splash_seasonal_image_processing");

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
    seasonalImageProcessingTrace
        .putAttribute("seasonal_image_url_attribute", seasonalImageUrl);

    // ...
}

अब जब आपने अपने दोनों कस्टम ट्रेस ( splash_screen_trace और splash_seasonal_image_processing ) के लिए एक कस्टम विशेषता ( seasonal_image_url_attribute ) जोड़ दी है, तो ऐप को एंड्रॉइड स्टूडियो में फिर से चलाएं । आपको एक लॉगिंग संदेश देखना चाहिए जिसमें Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. आपने अभी तक रिमोट कॉन्फिग पैरामीटर seasonalImageUrl को सक्षम नहीं किया है, यही कारण है कि विशेषता मान unset है।

प्रदर्शन निगरानी एसडीके ट्रेस डेटा एकत्र करेगा और उन्हें फायरबेस पर भेजेगा। आप डेटा को फायरबेस कंसोल के प्रदर्शन डैशबोर्ड में देख सकते हैं, जिसे हम कोडलैब के अगले चरण में विस्तार से बताएंगे।

7. अपना प्रदर्शन मॉनिटरिंग डैशबोर्ड कॉन्फ़िगर करें

अपनी सुविधा की निगरानी के लिए अपने डैशबोर्ड को कॉन्फ़िगर करें

फायरबेस कंसोल में, उस प्रोजेक्ट का चयन करें जिसमें आपका फ्रेंडली ईट्स ऐप है।

बाएं पैनल में, रिलीज़ और मॉनिटर अनुभाग ढूंढें, फिर प्रदर्शन पर क्लिक करें।

आपको अपने मेट्रिक्स बोर्ड में अपने पहले डेटा बिंदुओं के साथ अपना प्रदर्शन डैशबोर्ड देखना चाहिए! प्रदर्शन मॉनिटरिंग एसडीके आपके ऐप से प्रदर्शन डेटा एकत्र करता है और संग्रह के कुछ ही मिनटों के भीतर इसे प्रदर्शित करता है।

f57e5450b70034c9.png

यह मेट्रिक्स बोर्ड वह जगह है जहां आप अपने ऐप के लिए प्रमुख मेट्रिक्स को ट्रैक कर सकते हैं। डिफ़ॉल्ट दृश्य में आपके ऐप प्रारंभ समय ट्रेस की अवधि शामिल होती है, लेकिन आप वे मेट्रिक्स जोड़ सकते हैं जिनकी आपको सबसे अधिक परवाह है। चूंकि आप अपने द्वारा जोड़ी गई नई सुविधा को ट्रैक कर रहे हैं, आप कस्टम कोड ट्रेस splash_screen_trace की अवधि प्रदर्शित करने के लिए अपने डैशबोर्ड को तैयार कर सकते हैं।

  1. खाली मीट्रिक चयन बक्सों में से किसी एक पर क्लिक करें।
  2. संवाद विंडो में, कस्टम ट्रेस के ट्रेस प्रकार और ट्रेस नाम splash_screen_trace का चयन करें।

1fb81f4dba3220e0.png

  1. मेट्रिक चुनें पर क्लिक करें, और आपको अपने डैशबोर्ड में splash_screen_trace जोड़े जाने की अवधि दिखनी चाहिए!

आप इन्हीं चरणों का उपयोग अन्य मेट्रिक्स को जोड़ने के लिए कर सकते हैं जिनकी आपको परवाह है ताकि आप तुरंत देख सकें कि समय के साथ और यहां तक ​​कि विभिन्न रिलीज के साथ उनका प्रदर्शन कैसे बदलता है।

1d465c021e58da3b.png

मेट्रिक्स बोर्ड आपके उपयोगकर्ताओं द्वारा अनुभव किए गए प्रमुख मेट्रिक्स के प्रदर्शन को ट्रैक करने के लिए एक शक्तिशाली उपकरण है। इस कोडलैब के लिए, आपके पास सीमित समय सीमा में डेटा का एक छोटा सा सेट है, इसलिए आप अन्य डैशबोर्ड दृश्यों का उपयोग करेंगे जो आपको फीचर रोलआउट के प्रदर्शन को समझने में मदद करेंगे।

8. अपना फीचर रोल आउट करें

अब जब आपने अपनी मॉनिटरिंग सेट कर ली है, तो आप फायरबेस रिमोट कॉन्फिग परिवर्तन ( seasonal_image_url) को रोल आउट करने के लिए तैयार हैं जिसे आपने पहले सेट किया था।

किसी परिवर्तन को लागू करने के लिए, आप अपनी लक्ष्यीकरण स्थिति के उपयोगकर्ता प्रतिशत को बढ़ाने के लिए फायरबेस कंसोल में रिमोट कॉन्फ़िगरेशन पृष्ठ पर वापस जाएंगे। आम तौर पर, आप उपयोगकर्ताओं के एक छोटे से हिस्से के लिए नई सुविधाएँ लागू करेंगे और इसे तभी बढ़ाएँगे जब आप आश्वस्त होंगे कि इसमें कोई समस्या नहीं है। हालाँकि, इस कोडलैब में, आप ऐप के एकमात्र उपयोगकर्ता हैं, इसलिए आप प्रतिशत को 100% में बदल सकते हैं।

  1. पृष्ठ के शीर्ष पर स्थित शर्तें टैब पर क्लिक करें।
  2. Seasonal image rollout शर्त पर क्लिक करें जिसे आपने पहले जोड़ा था।
  3. प्रतिशत को 100% में बदलें।
  4. स्थिति सहेजें पर क्लिक करें.
  5. परिवर्तन प्रकाशित करें पर क्लिक करें और परिवर्तनों की पुष्टि करें।

70f993502b27e7a0.png

एंड्रॉइड स्टूडियो में वापस, नई सुविधा देखने के लिए अपने एमुलेटर में ऐप को पुनरारंभ करें। स्प्लैश स्क्रीन के बाद, आपको नई खाली स्थिति वाली मुख्य स्क्रीन देखनी चाहिए!

b0cc91b6e48fb842.png

9. प्रदर्शन परिवर्तन की जाँच करें

आइए अब फायरबेस कंसोल में परफॉर्मेंस डैशबोर्ड का उपयोग करके स्प्लैश स्क्रीन लोडिंग के प्रदर्शन की जांच करें। कोडलैब के इस चरण में, आप प्रदर्शन डेटा देखने के लिए डैशबोर्ड के विभिन्न हिस्सों का उपयोग करेंगे।

  1. मुख्य डैशबोर्ड टैब पर, ट्रेस तालिका तक नीचे स्क्रॉल करें, फिर कस्टम ट्रेस टैब पर क्लिक करें। इस तालिका में, आप पहले जोड़े गए कस्टम कोड के निशान और कुछ आउट-ऑफ़-द-बॉक्स निशान देखेंगे।
  2. अब जब आपने नई सुविधा सक्षम कर ली है, तो कस्टम कोड ट्रेस splash_seasonal_image_processing देखें, जो छवि को डाउनलोड करने और संसाधित करने में लगने वाले समय को मापता है। ट्रेस के अवधि मान से, आप देख सकते हैं कि इस डाउनलोड और प्रसंस्करण में काफी समय लगता है।

439adc3ec71805b7.png

  1. चूंकि आपके पास splash_seasonal_image_processing के लिए डेटा है, आप इस ट्रेस की अवधि को डैशबोर्ड टैब के शीर्ष पर अपने मेट्रिक्स बोर्ड में जोड़ सकते हैं।

पहले की तरह, खाली मीट्रिक चयन बक्सों में से किसी एक पर क्लिक करें। संवाद विंडो में, ट्रेस प्रकार कस्टम ट्रेस और ट्रेस नाम splash_seasonal_image_processing चुनें। अंत में, इस मीट्रिक को मेट्रिक्स बोर्ड में जोड़ने के लिए मीट्रिक का चयन करें पर क्लिक करें।

7fb64d2340410576.png

  1. मतभेदों की और पुष्टि करने के लिए, आप splash_screen_trace के डेटा पर करीब से नज़र डाल सकते हैं। मेट्रिक्स बोर्ड में splash_screen_trace कार्ड पर क्लिक करें, फिर मेट्रिक विवरण देखें पर क्लिक करें।

b1c275c30679062a.png

  1. विवरण पृष्ठ में, आपको नीचे बाईं ओर विशेषताओं की एक सूची दिखाई देगी, जिसमें आपके द्वारा पहले बनाई गई कस्टम विशेषता भी शामिल है। दाईं ओर प्रत्येक मौसमी छवि URL के लिए स्प्लैश स्क्रीन अवधि देखने के लिए कस्टम विशेषता seasonal_image_url_attribute पर क्लिक करें:

8fa1a69019bb045e.png

  1. आपकी स्प्लैश स्क्रीन अवधि का मान शायद ऊपर दिए गए स्क्रीनशॉट की तुलना में थोड़ा अलग होगा, लेकिन जब छवि यूआरएल से डाउनलोड की जाती है तो डिफ़ॉल्ट छवि ("अनसेट" द्वारा दर्शायी गई) का उपयोग करने की तुलना में आपके पास लंबी अवधि होनी चाहिए।

इस कोडलैब में, इस लंबी अवधि का कारण सीधा हो सकता है, लेकिन एक वास्तविक ऐप में, यह इतना स्पष्ट नहीं हो सकता है। एकत्रित अवधि का डेटा विभिन्न नेटवर्क कनेक्शन स्थितियों में ऐप चलाने वाले विभिन्न उपकरणों से आएगा, और ये स्थितियाँ आपकी अपेक्षा से भी बदतर हो सकती हैं। आइए देखें कि यदि यह वास्तविक दुनिया की स्थिति होती तो आप इस मुद्दे की जांच कैसे करते।

  1. डैशबोर्ड मुख्य टैब पर वापस जाने के लिए पृष्ठ के शीर्ष पर प्रदर्शन पर क्लिक करें: 640b696b79d90103.png
  2. पृष्ठ के नीचे ट्रेस तालिका में, नेटवर्क अनुरोध टैब पर क्लिक करें। इस तालिका में, आप अपने ऐप से सभी नेटवर्क अनुरोधों को छवियों images.unsplash.com/** यूआरएल पैटर्न सहित यूआरएल पैटर्न में एकत्रित देखेंगे। यदि आप इस प्रतिक्रिया समय के मूल्य की तुलना छवि डाउनलोड और प्रसंस्करण में लगने वाले कुल समय से करते हैं (यानी, splash_seasonal_image_processing ट्रेस की अवधि), तो आप देख सकते हैं कि छवि डाउनलोड करने में बड़ी मात्रा में समय खर्च होता है।

6f92ce0f23494507.png

प्रदर्शन निष्कर्ष

फायरबेस प्रदर्शन मॉनिटरिंग का उपयोग करते हुए, आपने नई सुविधा सक्षम होने के साथ अंतिम उपयोगकर्ताओं पर निम्नलिखित प्रभाव देखा:

  1. SplashScreenActivity पर बिताया जाने वाला समय बढ़ गया है।
  2. splash_seasonal_image_processing की अवधि बहुत बड़ी थी।
  3. देरी छवि डाउनलोड के लिए प्रतिक्रिया समय और छवि के लिए आवश्यक प्रसंस्करण समय के कारण थी।

अगले चरण में, आप सुविधा को वापस लाकर और यह पहचान कर कि आप सुविधा के कार्यान्वयन में सुधार कैसे कर सकते हैं, प्रदर्शन पर प्रभाव को कम करेंगे।

10. सुविधा को वापस रोल करें

स्प्लैश स्क्रीन के दौरान आपके उपयोगकर्ताओं के प्रतीक्षा समय को बढ़ाना वांछनीय नहीं है। रिमोट कॉन्फिग के प्रमुख लाभों में से एक आपके उपयोगकर्ताओं के लिए कोई अन्य संस्करण जारी किए बिना आपके रोलआउट को रोकने और उलटने की क्षमता है। यह आपको समस्याओं पर तुरंत प्रतिक्रिया करने की अनुमति देता है (जैसे प्रदर्शन संबंधी समस्याएं जो आपने पिछले चरण में पाई थीं) और नाखुश उपयोगकर्ताओं की संख्या को कम करने की अनुमति देता है।

त्वरित शमन के रूप में, आप रोलआउट प्रतिशत को वापस 0 पर रीसेट कर देंगे ताकि आपके सभी उपयोगकर्ता डिफ़ॉल्ट छवि फिर से देख सकें:

  1. फायरबेस कंसोल में रिमोट कॉन्फिग पेज पर वापस जाएं।
  2. पृष्ठ के शीर्ष पर शर्तों पर क्लिक करें।
  3. आपके द्वारा पहले जोड़ी गई Seasonal image rollout शर्त पर क्लिक करें।
  4. प्रतिशत को 0% में बदलें।
  5. स्थिति सहेजें पर क्लिक करें.
  6. परिवर्तन प्रकाशित करें पर क्लिक करें और परिवर्तनों की पुष्टि करें।

18c4f1cbac955a04.png

एंड्रॉइड स्टूडियो में ऐप को पुनरारंभ करें, और आपको मूल खाली स्थिति मुख्य स्क्रीन देखनी चाहिए:

d946cab0df319e50.png

11. प्रदर्शन संबंधी समस्याओं को ठीक करें

आपको पहले कोडलैब में पता चला था कि आपकी स्प्लैश स्क्रीन के लिए एक छवि डाउनलोड करने से आपके ऐप की गति धीमी हो रही थी। डाउनलोड की गई छवि को करीब से देखने पर, आप देखते हैं कि आप छवि के मूल रिज़ॉल्यूशन का उपयोग कर रहे हैं, जो 2 एमबी से अधिक था! आपकी प्रदर्शन समस्या का एक त्वरित समाधान गुणवत्ता को अधिक उचित रिज़ॉल्यूशन तक कम करना है ताकि छवि को डाउनलोड होने में कम समय लगे।

रिमोट कॉन्फ़िगरेशन मान को फिर से रोल आउट करें

  1. फायरबेस कंसोल में रिमोट कॉन्फिग पेज पर वापस जाएं।
  2. seasonal_image_url पैरामीटर के लिए संपादन आइकन पर क्लिक करें।
  3. मौसमी छवि रोलआउट के लिए मान को https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 पर अपडेट करें, फिर सहेजें पर क्लिक करें।

828dd1951a2ec4a4.png

  1. पृष्ठ के शीर्ष पर स्थित शर्तें टैब पर क्लिक करें।
  2. सीज़नल इमेज रोलआउट पर क्लिक करें, फिर प्रतिशत को वापस 100% पर सेट करें।
  3. स्थिति सहेजें पर क्लिक करें.

1974fa3bb789f36c.png

  1. परिवर्तन प्रकाशित करें बटन पर क्लिक करें।

12. समाधान का परीक्षण करें और अलर्ट सेट करें

ऐप को स्थानीय रूप से चलाएँ

एक अलग डाउनलोड छवि यूआरएल का उपयोग करने के लिए नए कॉन्फ़िगरेशन मान सेट के साथ, ऐप को फिर से चलाएं। इस बार, आपको ध्यान देना चाहिए कि स्प्लैश स्क्रीन पर बिताया गया समय पहले की तुलना में कम है।

b0cc91b6e48fb842.png

परिवर्तनों का प्रदर्शन देखें

मेट्रिक्स कैसे दिखते हैं यह देखने के लिए फायरबेस कंसोल में प्रदर्शन डैशबोर्ड पर लौटें।

  1. इस बार आप विवरण पृष्ठ पर नेविगेट करने के लिए ट्रेस तालिका का उपयोग करेंगे। ट्रेस तालिका में नीचे, कस्टम ट्रेस टैब में, इसकी अवधि मीट्रिक का अधिक विस्तृत दृश्य फिर से देखने के लिए कस्टम ट्रेस splash_seasonal_image_processing पर क्लिक करें।

2d7aaca03112c062.png

  1. कस्टम विशेषताओं का विवरण फिर से देखने के लिए कस्टम विशेषता seasonal_image_url_attribute पर क्लिक करें। यदि आप यूआरएल पर होवर करते हैं, तो आपको एक मान दिखाई देगा जो कम आकार की छवि के लिए नए यूआरएल से मेल खाता है: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 ( ?w=640 के साथ) अंत में)। इस छवि से जुड़ा अवधि मान पिछली छवि के मान से काफी कम है और आपके उपयोगकर्ताओं के लिए अधिक स्वीकार्य है!

10e30c037a4237a2.png

  1. अब जब आपने अपनी स्प्लैश स्क्रीन के प्रदर्शन में सुधार कर लिया है, तो आप जब कोई ट्रेस आपके द्वारा निर्धारित सीमा से अधिक हो जाता है तो आपको सूचित करने के लिए अलर्ट सेट कर सकते हैं। प्रदर्शन डैशबोर्ड खोलें और स्प्लैश_स्क्रीन_ट्रेस के लिए ओवरफ्लो मेनू (तीन बिंदु) आइकन पर क्लिक करें और अलर्ट सेटिंग्स पर क्लिक करें।

4bd0a2a1faa14479.png

  1. अवधि अलर्ट सक्षम करने के लिए टॉगल पर क्लिक करें। थ्रेसहोल्ड मान को उस मान से थोड़ा ऊपर सेट करें जो आप देख रहे थे ताकि यदि आपका स्प्लैश_स्क्रीन_ट्रेस थ्रेशोल्ड से अधिक हो, तो आपको एक ईमेल प्राप्त होगा।
  1. अपना अलर्ट बनाने के लिए सहेजें पर क्लिक करें। निशान तालिका तक नीचे स्क्रॉल करें, फिर यह देखने के लिए कस्टम निशान टैब पर क्लिक करें कि आपका अलर्ट सक्षम है!

2bb93639e2218d1.png

13. बधाई हो!

बधाई हो! आपने फायरबेस परफॉर्मेंस मॉनिटरिंग एसडीके को सक्षम किया और एक नई सुविधा के प्रदर्शन को मापने के लिए निशान एकत्र किए! आपने एक नई सुविधा के रोलआउट के लिए मुख्य प्रदर्शन मेट्रिक्स की निगरानी की और प्रदर्शन समस्या का पता चलने पर तुरंत प्रतिक्रिया दी। यह सब रिमोट कॉन्फिग के साथ कॉन्फिग परिवर्तन करने और वास्तविक समय में प्रदर्शन समस्याओं की निगरानी करने की क्षमता से संभव हुआ।

हमने क्या कवर किया है

  • अपने ऐप में फायरबेस परफॉर्मेंस मॉनिटरिंग एसडीके जोड़ना
  • किसी विशिष्ट सुविधा को मापने के लिए अपने कोड में एक कस्टम कोड ट्रेस जोड़ना
  • किसी नई सुविधा को नियंत्रित/रोलआउट करने के लिए रिमोट कॉन्फ़िगरेशन पैरामीटर और सशर्त मान सेट करना
  • रोलआउट के दौरान समस्याओं की पहचान करने के लिए प्रदर्शन निगरानी डैशबोर्ड का उपयोग करने का तरीका समझना
  • जब आपके ऐप का प्रदर्शन आपके द्वारा निर्धारित सीमा को पार कर जाता है तो आपको सूचित करने के लिए प्रदर्शन अलर्ट सेट करना

और अधिक जानें