परफ़ॉर्मेंस को ऑप्टिमाइज़ करने की शुरुआत, मुख्य मेट्रिक की पहचान करने से होती है. आम तौर पर, ये मेट्रिक इंतज़ार के समय और थ्रूपुट से जुड़ी होती हैं. इन मेट्रिक को कैप्चर और ट्रैक करने के लिए, मॉनिटरिंग की सुविधा जोड़ने से ऐप्लिकेशन की कमियों का पता चलता है. मेट्रिक की मदद से, परफ़ॉर्मेंस मेट्रिक को बेहतर बनाने के लिए ऑप्टिमाइज़ेशन किया जा सकता है.
इसके अलावा, निगरानी करने वाले कई टूल की मदद से, मेट्रिक के लिए सूचनाएं सेट अप की जा सकती हैं. इससे, किसी तय सीमा तक पहुंचने पर आपको सूचना मिल जाती है. उदाहरण के लिए, आपके पास एक सूचना सेट अप करने का विकल्प है. इससे आपको तब सूचना मिलेगी, जब अनुरोधों के पूरा न होने का प्रतिशत सामान्य लेवल से 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 के तरीके के हिसाब से गड़बड़ियों की संख्या को अलग-अलग करने के लिए, Cloud Logging को भेजे गए jsonPayload.method फ़ील्ड पर, Method नाम का STRING लेबल कॉन्फ़िगर किया जा सकता है.
ErrorCount मेट्रिक और Method लेबल को कॉन्फ़िगर करने के बाद, Cloud Monitoring में नया चार्ट बनाया जा सकता है. इससे Method के हिसाब से ग्रुप किए गए ErrorCount को मॉनिटर किया जा सकता है.
सूचनाएं
Cloud Monitoring और अन्य टूल में, सूचना देने वाली नीतियां कॉन्फ़िगर की जा सकती हैं. इनसे यह तय किया जाता है कि आपकी मेट्रिक के हिसाब से सूचनाएं कब और कैसे ट्रिगर होनी चाहिए. Cloud Monitoring की सूचनाएं सेट अप करने के लिए, लॉग-आधारित मेट्रिक पर सूचना देने की गाइड में दिए गए निर्देशों का पालन करें.