परफ़ॉर्मेंस को ऑप्टिमाइज़ करने की शुरुआत, मुख्य मेट्रिक की पहचान करने से होती है. आम तौर पर, ये मेट्रिक इंतज़ार के समय और थ्रूपुट से जुड़ी होती हैं. इन मेट्रिक को कैप्चर और ट्रैक करने के लिए मॉनिटरिंग की सुविधा जोड़ने से, ऐप्लिकेशन की कमज़ोरियां सामने आती हैं. मेट्रिक की मदद से, परफ़ॉर्मेंस मेट्रिक को बेहतर बनाने के लिए ऑप्टिमाइज़ेशन किया जा सकता है.
इसके अलावा, कई मॉनिटरिंग टूल आपको अपनी मेट्रिक के लिए सूचनाएं सेट अप करने की सुविधा देते हैं. इससे, किसी थ्रेशोल्ड के पूरा होने पर आपको सूचना मिलती है. उदाहरण के लिए, आपको सूचना देने के लिए एक चेतावनी सेट अप की जा सकती है. इससे आपको पता चलेगा कि अनुरोधों के पूरा न होने का प्रतिशत, सामान्य लेवल से X% से ज़्यादा बढ़ गया है. मॉनिटरिंग टूल की मदद से, यह पता लगाया जा सकता है कि सामान्य परफ़ॉर्मेंस कैसी दिखती है. साथ ही, लेटेन्सी, गड़बड़ियों की संख्या, और अन्य मुख्य मेट्रिक में अचानक हुई बढ़ोतरी का पता लगाया जा सकता है. इन मेट्रिक को मॉनिटर करना, कारोबार के लिए अहम समयसीमाओं के दौरान या प्रोडक्शन में नया कोड पुश किए जाने के बाद, खास तौर पर ज़रूरी होता है.
लेटेंसी मेट्रिक की पहचान करना
पक्का करें कि आपका यूज़र इंटरफ़ेस (यूआई) ज़्यादा से ज़्यादा रिस्पॉन्सिव हो. ध्यान रखें कि उपयोगकर्ता, मोबाइल ऐप्लिकेशन से और भी बेहतर स्टैंडर्ड की उम्मीद करते हैं. बैकएंड सेवाओं के लिए भी इंतज़ार के समय को मेज़र और ट्रैक किया जाना चाहिए. खास तौर पर, इसलिए क्योंकि अगर इस पर ध्यान नहीं दिया जाता है, तो थ्रूपुट से जुड़ी समस्याएं हो सकती हैं.
ट्रैक करने के लिए, इन मेट्रिक का सुझाव दिया जाता है:
- अनुरोध की अवधि
- सबसिस्टम के हिसाब से अनुरोध की अवधि (जैसे, एपीआई कॉल)
- नौकरी की अवधि
थ्रूपुट मेट्रिक की पहचान करना
थ्रूपुट से पता चलता है कि किसी समयावधि में कितने अनुरोध पूरे किए गए. सबसिस्टम की इंतज़ार की अवधि से, थ्रूपुट पर असर पड़ सकता है. इसलिए, थ्रूपुट को बेहतर बनाने के लिए, आपको इंतज़ार की अवधि को ऑप्टिमाइज़ करना पड़ सकता है.
यहां ट्रैक करने के लिए सुझाई गई कुछ मेट्रिक दी गई हैं:
- क्वेरी प्रति सेकंड
- हर सेकंड ट्रांसफ़र किए गए डेटा का साइज़
- हर सेकंड में होने वाले I/O ऑपरेशन की संख्या
- सीपीयू या मेमोरी के इस्तेमाल जैसे संसाधन
- प्रोसेसिंग बैकलाॅग का साइज़, जैसे कि pub/sub या थ्रेड की संख्या
सिर्फ़ औसत नहीं
परफ़ॉर्मेंस को मेज़र करते समय, सिर्फ़ मीन (औसत) केस को देखना एक आम गलती है. यह जानकारी काम की है, लेकिन इससे इंतज़ार के समय के डिस्ट्रिब्यूशन के बारे में जानकारी नहीं मिलती. ट्रैक करने के लिए बेहतर मेट्रिक, परफ़ॉर्मेंस पर्सेंटाइल है. उदाहरण के लिए, किसी मेट्रिक के लिए 50वां, 75वां, 90वां, और 99वां पर्सेंटाइल.
आम तौर पर, ऑप्टिमाइज़ेशन दो चरणों में किया जा सकता है. सबसे पहले, 90वें पर्सेंटाइल लेटेंसी के लिए ऑप्टिमाइज़ करें. इसके बाद, 99वें पर्सेंटाइल पर विचार करें. इसे टेल लेटेंसी भी कहा जाता है. यह उन अनुरोधों का छोटा हिस्सा होता है जिन्हें पूरा होने में ज़्यादा समय लगता है.
ज़्यादा जानकारी वाले नतीजे पाने के लिए, सर्वर-साइड मॉनिटरिंग
आम तौर पर, मेट्रिक को ट्रैक करने के लिए सर्वर-साइड प्रोफ़ाइलिंग को प्राथमिकता दी जाती है. आम तौर पर, सर्वर साइड को लागू करना बहुत आसान होता है. इससे ज़्यादा जानकारी वाले डेटा को ऐक्सेस किया जा सकता है. साथ ही, कनेक्टिविटी की समस्याओं से इस पर कम असर पड़ता है.
एंड-टू-एंड विज़िबिलिटी के लिए ब्राउज़र मॉनिटरिंग
अगर Google Ads API इंटिग्रेशन, असली उपयोगकर्ताओं को वेब फ़्रंटएंड दिखाता है, तो ब्राउज़र प्रोफ़ाइलिंग से उपयोगकर्ता अनुभव के बारे में ज़्यादा जानकारी मिल सकती है. इससे यह पता चलता है कि किन पेजों पर अनुरोधों को प्रोसेस होने में ज़्यादा समय लग रहा है. इसके बाद, ज़्यादा विश्लेषण के लिए, सर्वर-साइड मॉनिटरिंग से इसकी तुलना की जा सकती है.
Google Analytics, Analytics पेज टाइमिंग रिपोर्ट में, पेज लोड अवधि की मॉनिटरिंग की सुविधा भी देता है. इससे आपको अपनी साइट पर उपयोगकर्ताओं के अनुभव को समझने के लिए कई काम के व्यू मिलते हैं. जैसे:
- पेज लोड अवधि
- रीडायरेक्ट लोड होने में लगने वाला समय
- सर्वर से जवाब मिलने में लगने वाला समय
क्लाउड में मॉनिटरिंग
आपके ऐप्लिकेशन की परफ़ॉर्मेंस मेट्रिक को कैप्चर और मॉनिटर करने के लिए, कई टूल उपलब्ध हैं. उदाहरण के लिए, Google Cloud Logging का इस्तेमाल करके, अपने Google Cloud प्रोजेक्ट में परफ़ॉर्मेंस मेट्रिक को लॉग किया जा सकता है. इसके बाद, लॉग की गई मेट्रिक को मॉनिटर करने और सेगमेंट में बांटने के लिए, Google Cloud Monitoring में डैशबोर्ड सेट अप किए जा सकते हैं.
Python क्लाइंट लाइब्रेरी के लिए लिखे गए कस्टम gRPC लॉगिंग इंटरसेप्टर के उदाहरण के लिए, लॉगिंग गाइड देखें. इस उदाहरण में, इंटरसेप्टर logger.log_struct() को कॉल करता है, ताकि स्ट्रक्चर्ड लॉग डेटा की Python डिक्शनरी को Cloud Logging में भेजा जा सके. Cloud Logging, इस डेटा को लॉग एंट्री के jsonPayload फ़ील्ड में सेव करता है:
logger.log_struct({
"method": method_name,
"elapsed_ms": elapsed_milliseconds,
"is_fault": is_fault,
})
Google Cloud में यह डेटा उपलब्ध होने पर, लॉग किए गए डेटा के आधार पर मेट्रिक बनाई जा सकती हैं. इससे Google Cloud Monitoring के ज़रिए, अपने ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर तरीके से समझा जा सकता है. Google Cloud Logging को भेजे गए लॉग का इस्तेमाल करके मेट्रिक बनाने के लिए, उपयोगकर्ता के तय किए गए लॉग के आधार पर मेट्रिक बनाने की गाइड पढ़ें.
इसके अलावा, Cloud Monitoring क्लाइंट लाइब्रेरी का इस्तेमाल करके, अपने कोड में मेट्रिक तय की जा सकती हैं. साथ ही, उन्हें लॉग से अलग, सीधे मॉनिटरिंग को भेजा जा सकता है.
लॉग पर आधारित मेट्रिक का उदाहरण
मान लें कि आपको अपने ऐप्लिकेशन में गड़बड़ी की दरों को बेहतर तरीके से समझने के लिए, is_fault वैल्यू को मॉनिटर करना है. logger.log_struct(), Cloud Logging की हर एंट्री में jsonPayload के तहत, स्ट्रक्चर्ड डिक्शनरी फ़ील्ड लिखता है. इसलिए, ErrorCount नाम की काउंटर मेट्रिक बनाई जा सकती है. इसके लिए, आपको ऐसे फ़िल्टर का इस्तेमाल करना होगा जो पूरे न हो सके अनुरोधों से मैच करता हो, जैसे कि jsonPayload.is_fault = true.
Cloud Logging में, लेबल की मदद से, अपनी मेट्रिक को लॉग में मौजूद अन्य डेटा के आधार पर कैटगरी में ग्रुप किया जा सकता है. Google Ads API के तरीके के हिसाब से गड़बड़ियों की संख्या का पता लगाने के लिए, jsonPayload.method फ़ील्ड में STRING लेबलMethod को कॉन्फ़िगर किया जा सकता है. यह लेबल, Cloud Logging को भेजा जाता है.
ErrorCount मेट्रिक और Method लेबल कॉन्फ़िगर करने के बाद, Cloud Monitoring में नया चार्ट बनाया जा सकता है. इससे Method के हिसाब से ग्रुप किए गए ErrorCount को मॉनिटर किया जा सकता है.
सूचनाएं
Cloud Monitoring और अन्य टूल में, सूचना से जुड़ी नीतियां कॉन्फ़िगर की जा सकती हैं. इन नीतियों में यह तय किया जाता है कि आपकी मेट्रिक के आधार पर सूचनाएं कब और कैसे ट्रिगर होनी चाहिए. Cloud Monitoring से मिलने वाली सूचनाएं सेट अप करने के लिए, लॉग-आधारित मेट्रिक पर सूचना देने की गाइड में दिए गए निर्देशों का पालन करें.