Datadog, ProfilingManager की मदद से परफ़ॉर्मेंस से जुड़ी लाखों अहम जानकारी देता है
पढ़ने में 4 मिनट लगेंगे
परफ़ॉर्मेंस में गिरावट की समस्या को दोहराना बहुत मुश्किल होता है. इसलिए, यह मोबाइल डेवलपर के लिए एक बड़ी समस्या बन जाती है. हालांकि, एएनआर रेट जैसे सिग्नल से यह पता चलता है कि प्रोडक्शन में कौनसी समस्याएं आती हैं. परफ़ॉर्मेंस से जुड़ी समस्या पैदा करने वाले कोड की खास लाइन का पता लगाने के लिए, पहले मैन्युअल तरीके से पूरी तरह से जांच करनी पड़ती थी या अनुमान के आधार पर बार-बार प्रयोग करने पड़ते थे.
Datadog ने Google के साथ मिलकर काम किया है, ताकि इस समस्या को कम किया जा सके. इसके लिए, उसने ProfilingManager API (Android 15 और इसके बाद के वर्शन वाले डिवाइसों पर उपलब्ध) को अपने Real User Monitoring (RUM) और Continuous Profiling प्लैटफ़ॉर्म में इंटिग्रेट किया है. इस इंटिग्रेशन से, डीबग करने का वर्कफ़्लो बदल जाता है. इससे डेवलपर, परफ़ॉर्मेंस से जुड़ी समस्या के बारे में ज़्यादा जानकारी पा सकते हैं. साथ ही, यह पता लगा सकते हैं कि परफ़ॉर्मेंस में रुकावट क्यों आ रही है.
सिस्टम-लेवल के इस एपीआई का इस्तेमाल करके, Datadog अब दुनिया भर में हर हफ़्ते लाखों प्रोडक्शन प्रोफ़ाइल प्रोसेस करता है. यह जानकारी, जून 2026 के Datadog के इंटरनल डेटा के मुताबिक है. यह इंजीनियरिंग टीमों को, असल दुनिया में ऐप्लिकेशन की परफ़ॉर्मेंस के बारे में ज़्यादा जानकारी देता है. साथ ही, प्रोडक्शन-स्केल पर परफ़ॉर्मेंस मॉनिटरिंग के लिए, रनटाइम ओवरहेड को कम रखता है.
ProfilingManager का असर
ProfilingManager, Android 15 में शुरू की गई एक सिस्टम सेवा है. इसकी मदद से ऐप्लिकेशन, परफ़ॉर्मेंस डेटा को प्रोग्राम के हिसाब से इकट्ठा कर सकते हैं. जैसे, कॉल स्टैक के सैंपल, फ़ील्ड ट्रेस, और मेमोरी हीप डंप. यह डेटा सीधे तौर पर प्रोडक्शन एनवायरमेंट से इकट्ठा किया जाता है. इस सुविधा की मदद से, इंजीनियरिंग के पैराडाइम को मैन्युअल तरीके से दोहराने के बजाय, फ़ील्ड के डेटा का पहले से ही विश्लेषण किया जा सकता है.
उदाहरण के लिए, Google के कम्यूनिकेशन ऐप्लिकेशन ने फ़ील्ड ट्रेस का इस्तेमाल करके यह पता लगाया कि नए और ज़्यादा बेहतर हार्डवेयर पर, कोल्ड स्टार्ट होने में ज़्यादा समय क्यों लगता है. इंजीनियर ने फ़ील्ड में इकट्ठा किए गए ट्रेस की जांच की. साथ ही, अलग-अलग डिवाइस टाइप के ट्रेस की तुलना की. इससे उसे शेड्यूल करने से जुड़ी एक छिपी हुई समस्या का पता चला. ऐप्लिकेशन के स्टार्टअप के दौरान, बैकग्राउंड में टेक्स्ट-टू-स्पीच की सेवा को बिना किसी वजह के पहले से ही चालू किया जा रहा था. ट्रेस से पता चला कि बैकग्राउंड प्रोसेस, डिवाइस के सबसे ज़्यादा परफ़ॉर्म करने वाले बड़े सीपीयू कोर का इस्तेमाल कर रही थी. इससे ऐप्लिकेशन के मुख्य थ्रेड को स्लीप मोड में जाना पड़ा, जबकि प्रीवार्मिंग हो रही थी.
Android कोड-लेवल की विज़िबिलिटी से जुड़ी समस्या हल करना
ProfilingManager को लागू करने से पहले, Datadog का Real User Monitoring (RUM) फ़्रेमवर्क, ऐप्लिकेशन की परफ़ॉर्मेंस और सेशन-लेवल की टेलीमेट्री पर फ़ोकस करता था. इससे उपयोगकर्ता के अनुभव का आकलन किया जाता था. इंजीनियरिंग टीमें, Android की परफ़ॉर्मेंस से जुड़े सिग्नल को मॉनिटर कर सकती हैं. जैसे, शुरुआती डिसप्ले में लगने वाला समय, एएनआर की दरें, सीपीयू लोड, और फ़्रीज़ किए गए फ़्रेम. ये अहम जानकारी, नेटवर्क इंतज़ार का समय, टच इवेंट, और मुख्य थ्रेड हैंग जैसी विस्तृत इंटरैक्शन तक फैली हुई हैं. हालांकि, इस डेटा से यह पता चलता था कि फ़ील्ड में परफ़ॉर्मेंस से जुड़ी कौनसी समस्याएं आ रही हैं. हालांकि, इससे इन समस्याओं की असल वजह का पता नहीं चलता था.
इस समस्या को हल करने के लिए, Datadog को एक ऐसे प्रोफ़ाइलिंग इंजन की ज़रूरत थी जो प्रोडक्शन में मौजूद डिवाइसों से सीधे तौर पर Android ट्रेस कैप्चर कर सके. साथ ही, इससे परफ़ॉर्मेंस पर कम से कम असर पड़े. टीम ने अन्य तरीकों का आकलन किया. जैसे, Android Debug API का इस्तेमाल करके अपना ट्रेस प्रोसेसर लिखना. इसके बाद, टीम ने ProfilingManager को चुना. ऐसा इसलिए, क्योंकि यह प्रोफ़ाइलिंग के उन विकल्पों में सबसे अच्छा परफ़ॉर्म करने वाला समाधान है जिनका टीम ने आकलन किया था. साथ ही, यह सैंपलिंग के फ़ैसलों के ओवरहेड को ओएस पर ऑफ़लोड करता है.
ProfilingManager, डेटा इकट्ठा करने के कई तरीकों के साथ काम करता है. इनमें सीपीयू ट्रेस, कॉल स्टैक सैंपलिंग, Java हीप डंप और नेटिव हीप प्रोफ़ाइल की मदद से मेमोरी का विश्लेषण करना शामिल है. इससे डेवलपर, प्रोडक्शन बिल्ड की प्रोफ़ाइल बना सकते हैं. साथ ही, ट्रेस फ़ाइलों को बाहरी स्टोरेज में अपलोड कर सकते हैं. इसके अलावा, वे Perfetto ट्रेस ऐनलाइज़र यूज़र इंटरफ़ेस (यूआई) में उनकी समीक्षा कर सकते हैं. सॉफ़्टवेयर ऐज़ अ सर्विस (एसएएएस) प्रोवाइडर के तौर पर Datadog, अपने एसडीके टूल के ज़रिए इकट्ठा की गई इन प्रोफ़ाइलों को अपलोड करता है, उन्हें विज़ुअलाइज़ करता है, और उनका विश्लेषण करता है. इससे ऐप्लिकेशन की परफ़ॉर्मेंस की एक जैसी जानकारी मिलती है.
ProfilingManager, एक ही Observability API में ज़्यादा सटीक टेलीमेट्री को इकट्ठा करता है. इससे Datadog और उसके क्लाइंट को, Android की परफ़ॉर्मेंस से जुड़ी जटिल समस्याओं को पहले से ही मॉनिटर करने, उनकी जांच करने, और उन्हें ठीक करने में मदद मिलती है. ऐसा इन मुख्य तकनीकी फ़ायदों की वजह से होता है:
- सेशन की परफ़ॉर्मेंस से जुड़ी ज़्यादा जानकारी: ProfilingManager, ओएस-लेवल का ट्रेस डेटा सीधे तौर पर उपलब्ध कराता है. इससे डीबग करने की प्रोसेस बेहतर होती है. साथ ही, यह सिस्टम सेवाओं के साथ कस्टम लॉगिंग की वजह से होने वाली, डेटा दिखने और अलाइनमेंट से जुड़ी समस्याओं को हल करता है. ज़्यादा जानकारी के लिए, डेवलपर इन ट्रेस को Datadog से डाउनलोड कर सकते हैं. इसके बाद, विज़ुअलाइज़ेशन टूल, जैसे कि Perfetto UI में इनकी जांच कर सकते हैं.
- अपने-आप ट्रिगर होने वाली टेलीमेट्री: सिस्टम के नेटिव इवेंट का इस्तेमाल करके, Datadog मुख्य ऑप्टिमाइज़ेशन पॉइंट पर ट्रेस रिकॉर्डिंग शुरू करता है. इससे, कस्टम कलेक्शन लॉजिक बनाने की ज़रूरत कम हो जाती है. शुरुआत में, APP_FULLY_DRAWN सिग्नल पर फ़ोकस किया जाएगा. हालांकि, ANR, OOM, और COLD_START ट्रिगर को शामिल करने के लिए, इस जांचने की क्षमता को पहले से ही बढ़ाने का प्लान है.
- प्रोऐक्टिव ट्रेस स्नैपशॉट: सिस्टम-लेवल की Perfetto सेवा (ट्रेस की गई) के साथ सीधे तौर पर इंटरफ़ेस करके, ProfilingManager एक प्रोऐक्टिव बैकग्राउंड रिकॉर्डिंग मॉडल का इस्तेमाल करता है. इसे अप्रत्याशित समस्याओं को कैप्चर करने के लिए डिज़ाइन किया गया है. इससे यह पक्का किया जाता है कि डेवलपर को परफ़ॉर्मेंस से जुड़ी अनियमितता की वजह बनने वाले इवेंट का सटीक विज़ुअलाइज़ेशन मिले. इससे उन्हें ऐसी अहम जानकारी मिलती है जो मैन्युअल इंस्ट्रुमेंटेशन से नहीं मिल सकती.
- बड़े पैमाने पर बॉटलनेक का पता लगाना: Datadog, दुनिया भर में मौजूद अपने ग्राहकों से मिले टेलीमेट्री डेटा को इकट्ठा करके, रिग्रेशन का पता लगा सकता है. यह रिग्रेशन, सिर्फ़ यूनीक हार्डवेयर कॉन्फ़िगरेशन और अलग-अलग नेटवर्क एनवायरमेंट में दिखती है.
- सिस्टम की ओर से लागू की गई संसाधन की स्थिरता: एपीआई, परफ़ॉर्मेंस और उपयोगकर्ता अनुभव पर पड़ने वाले असर को कम करने के लिए, सैंपलिंग ट्रेस कलेक्शन का इस्तेमाल करता है.
- उपयोगकर्ता के डिवाइस पर डेटा कंट्रोल: प्रोफ़ाइल को ऐप्लिकेशन तक पहुंचाने से पहले, ProfilingManager उपयोगकर्ता के डिवाइस पर मौजूद अन्य प्रोसेस से काम की जानकारी को फ़िल्टर कर देता है. इससे फ़ाइल का साइज़ कम हो जाता है. साथ ही, यह पक्का किया जाता है कि ऐप्लिकेशन की प्रोसेस के लिए सिर्फ़ काम का डेटा उपलब्ध कराया जाए.
असल दुनिया के ऐप्लिकेशन को ऑप्टिमाइज़ करने के लिए, हर हफ़्ते लाखों प्रोफ़ाइलों को प्रोसेस करना
सिस्टम-लेवल पर प्रोफ़ाइलिंग करने वाले एपीआई को ग्लोबल मॉनिटरिंग एसडीके में इंटिग्रेट करने के लिए, इंफ़्रास्ट्रक्चर से जुड़ी समस्याओं को हल करना ज़रूरी था. ProfilingManager, परफ़ॉर्मेंस के बारे में बहुत ज़्यादा जानकारी वाले ट्रेस जनरेट करता है. इसलिए, Datadog की इंजीनियरिंग टीम को एक ऐसी पाइपलाइन बनानी पड़ी जो सर्वर साइड पर इन प्रोफ़ाइलों को बड़े पैमाने पर पार्स और उनका विश्लेषण कर सके. प्रोफ़ाइल कलेक्शन के अलावा, Datadog इस बात पर भी ज़ोर देता है कि आपके ऐप्लिकेशन के बारे में अहम जानकारी जनरेट करने के लिए, सैंपलिंग फ़्रीक्वेंसी को इस तरह से बैलेंस किया जाए कि ज़रूरत के मुताबिक डेटा इकट्ठा किया जा सके. Datadog, ProfilingManager के अनुरोध संख्या सीमित करना पर निर्भर करता है. यह एक अहम सुरक्षा सुविधा है. इससे, टेलीमेट्री के बहुत ज़्यादा अनुरोधों की वजह से, उपयोगकर्ता के डिवाइसों पर ज़्यादा लोड नहीं पड़ता.
टीम, Datadog के नेटिव Android ऐप्लिकेशन और शुरुआती तौर पर इसे अपनाने वाले लोगों के ऐप्लिकेशन की प्रोफ़ाइलिंग कई महीनों से कर रही है. इससे उन्हें लाखों प्रोफ़ाइलें इकट्ठा करने में मदद मिली है. इससे यह पक्का किया जा सकेगा कि ऐप्लिकेशन को तेज़ी से और बिना किसी गड़बड़ी के लॉन्च किया जा सके. साथ ही, परफ़ॉर्मेंस का पता लगाने वाले एल्गोरिदम को बेहतर बनाया जा सकेगा. आज, प्रोडक्शन इंटिग्रेशन की सुविधा, अलग-अलग तरह के Android डिवाइसों पर आसानी से उपलब्ध है.
नतीजा
Android के ProfilingManager API को इंटिग्रेट करके, Datadog ने अपने ग्राहकों के लिए, बैकएंड सिस्टम और मोबाइल क्लाइंट ऐप्लिकेशन के बीच डेटा दिखने से जुड़ी समस्या को हल कर लिया है. Datadog, हर हफ़्ते लाखों प्रोफ़ाइलों को प्रोसेस करता है. इससे डिवाइस पर बहुत कम असर पड़ता है. साथ ही, यह Android डेवलपर को कोड-लेवल की ज़रूरी जानकारी देता है. इससे वे परफ़ॉर्मेंस से जुड़ी जटिल गड़बड़ियों का तुरंत पता लगा पाते हैं. इससे डेवलपर को बेहतर ऐप्लिकेशन बनाने में मदद मिलती है. साथ ही, वे Play Store में अपने ऐप्लिकेशन की परफ़ॉर्मेंस के सिग्नल को बेहतर बना पाते हैं. ProfilingManager API को सीधे तौर पर अपने परफ़ॉर्मेंस ऑब्ज़र्वेबिलिटी फ़्रेमवर्क में शामिल करने के लिए, हमारा दस्तावेज़ देखें.
आने वाले समय में, Datadog का लक्ष्य Android प्रोफ़ाइलिंग डेटा को कोडिंग एजेंट के लिए सबसे अहम इनपुट बनाना है. इससे परफ़ॉर्मेंस से जुड़ी समस्याओं को अपने-आप हल किया जा सकेगा. साथ ही, समस्याओं का पता लगाने और उन्हें ठीक करने के बीच के फ़ीडबैक लूप को बंद किया जा सकेगा. Datadog, Android की प्रोफ़ाइलिंग की सुविधा को डेवलपर के लिए बड़े पैमाने पर उपलब्ध कराने पर काम कर रहा है.
ProfilingManager की मदद से काम करने वाली Datadog की रीयल यूज़र मॉनिटरिंग सुविधा का इस्तेमाल शुरू करने के लिए, Datadog Mobile Real User Monitoring पर जाएं.
-
केस स्टडीKarrot, आस-पास के लोगों के लिए बनाया गया एक ऐसा मार्केटप्लेस ऐप्लिकेशन है जहां लोग आपस में सामान खरीद-बेच सकते हैं. इस ऐप्लिकेशन की मदद से, लोग पुष्टि किए गए अन्य उपयोगकर्ताओं के साथ सामान खरीद, बेच, और ट्रेड कर सकते हैं. इस प्लैटफ़ॉर्म को 2015 में दक्षिण कोरिया में लॉन्च किया गया था. इसके बाद, यह दुनिया भर के बाज़ारों में फैल गया. इस पर 4.3 करोड़ से ज़्यादा लोग रजिस्टर कर चुके हैं.
Thomas Ezan, Tracy Agyemang • दो मिनट में पढ़ें -
केस स्टडीज़्यादातर Android ऐप्लिकेशन, Kotlin को अपनी मुख्य भाषा के तौर पर इस्तेमाल कर रहे हैं. इसलिए, kotlinx.coroutines, एसिंक्रोनस प्रोग्रामिंग के लिए एक डिफ़ॉल्ट स्टैंडर्ड बन गया है. यह लाइब्रेरी, एक साथ कई फ़्लो को मैनेज करने का एक बेहतरीन और व्यवस्थित तरीका उपलब्ध कराती है. यह Kotlin के लिए नेटिव है.
Jonathan Starup, Andrei Shikov • पढ़ने में 7 मिनट लगेंगे -
कैसे करेंऐप्लिकेशन की परफ़ॉर्मेंस को अक्सर बेहतर यूज़र इंटरफ़ेस (यूआई) और ऐप्लिकेशन के तेज़ी से शुरू होने से जोड़कर देखा जाता है. हालांकि, मेमोरी एक ऐसा साइलेंट फ़ाउंडेशन है जिस पर ये मेट्रिक बनाई जाती हैं. यह कोई छिपी हुई बात नहीं है कि अब डिवाइस की मेमोरी पहले से ज़्यादा ज़रूरी हो गई है.
Alice Yuan, Ajesh Pai, Fung Lam • पढ़ने में 10 मिनट लगेंगे
Android डेवलपमेंट से जुड़ी नई अहम जानकारी, हर हफ़्ते अपने इनबॉक्स में पाएं.