1. शुरू करने से पहले
जैसा कि हमने स्मार्ट होम कोडलैब डीबग करना लेख में बताया है, हम आपके स्मार्ट होम प्रोजेक्ट में मेट्रिक और लॉग पब्लिश कर रहे हैं. मेट्रिक से आपको यह पता करने में मदद मिलती है कि आपके स्मार्ट होम ऐक्शन में कहां समस्या आ रही है. साथ ही, इन समस्याओं को अच्छी तरह से हल करने के लिए लॉग काफ़ी काम के होते हैं.
आपके प्रोजेक्ट के लिए हम जो मेट्रिक उपलब्ध कराते हैं उनके अलावा, Google Cloud Platform के लॉग पर आधारित मेट्रिक का इस्तेमाल करके अपनी मेट्रिक भी जनरेट की जा सकती हैं. इसकी मदद से, अपने लॉग में मौजूद कुछ पैटर्न को मॉनिटर किया जा सकता है. साथ ही, क्वालिटी की समस्याओं को असरदार तरीके से डीबग किया जा सकता है.
ज़रूरी शर्तें
- स्मार्ट होम के साथ काम करता है इंटिग्रेशन होना चाहिए
- स्मार्ट होम कोड के कोडलैब को डीबग करने की प्रक्रिया पूरी करें
आपको इनके बारे में जानकारी मिलेगी
- स्मार्ट होम गड़बड़ी लॉग को फ़िल्टर करने के लिए असरदार क्वेरी लिखने का तरीका
- अपनी क्वेरी से मेट्रिक जनरेट करने के लिए, लॉग-आधारित मेट्रिक बनाने का तरीका
- मॉनिटरिंग के लिए लॉग-आधारित मेट्रिक से चार्ट और डैशबोर्ड बनाने का तरीका
2. लॉग के साथ काम करना
जैसा कि हमने स्मार्ट होम कोडलैब (कोड बनाना सीखना) को डीबग करने के बारे में कम शब्दों में बताया है, आपके प्रोजेक्ट की सफलता के लिए लॉग का इस्तेमाल करना ज़रूरी है. Google Cloud Platform पर अपने लॉग को मॉनिटर करने और उनका विश्लेषण करने के लिए कई बेहतरीन टूल उपलब्ध हैं. अपने प्रोजेक्ट के लिए उपलब्ध सभी लॉग को ऐक्सेस करने के लिए, लॉग एक्सप्लोरर का इस्तेमाल किया जा सकता है.
लॉग ऐक्सेस करना
लॉग ऐक्सेस करने के लिए, सबसे पहले Google Cloud Platform में लॉग इन करें और अपना प्रोजेक्ट चुनें. साइड मेन्यू का इस्तेमाल करके, लॉग एक्सप्लोरर पर जाएं. इसके लिए, ऑपरेशन > लॉग किया जा रहा है > लॉग एक्सप्लोरर. टूल खोलने के बाद, आपको यह व्यू दिखेगा:
लॉग एक्सप्लोरर में दो मुख्य सेक्शन होते हैं: सबसे ऊपर क्वेरी लिखने के लिए एक सेक्शन (क्वेरी बिल्डर) और मिलते-जुलते नतीजे दिखाने वाला सेक्शन (क्वेरी के नतीजे).
Google में कई अलग-अलग कॉम्पोनेंट, डिफ़ॉल्ट रूप से आपके प्रोजेक्ट पर लॉग लिखते हैं. स्मार्ट होम इंटिग्रेशन से मिलने वाले लॉग को ढूंढने और उनका इस्तेमाल करने के लिए, आपको कस्टम क्वेरी लिखनी होंगी.
क्वेरी लिखना
लॉग, किसी संसाधन टाइप के तहत प्रोजेक्ट में पब्लिश किए जाते हैं. Google में हर तरह का संसाधन एक अलग प्लैटफ़ॉर्म को दिखाता है. स्मार्ट होम प्लैटफ़ॉर्म से मिलने वाले लॉग, आपके प्रोजेक्ट के लिए assistant_action_project
संसाधन टाइप के तहत उपलब्ध होते हैं.
साथ ही, कॉन्टेंट बनाते समय सभी लॉग को गंभीरता का लेवल असाइन किया जाता है. स्मार्ट होम लॉग के साथ, हम गड़बड़ियों और अपवादों को दिखाने वाले लॉग के लिए ERROR
लेवल का इस्तेमाल करते हैं. वहीं, बाकी सभी चीज़ों के लिए हम DEBUG
लेवल का इस्तेमाल करते हैं.
यहां दिए गए उदाहरण में, हम सिर्फ़ हमारे प्लैटफ़ॉर्म से आने वाले लॉग को फ़िल्टर करने के लिए एक क्वेरी लिखेंगे. यह क्वेरी, गड़बड़ियों को इस तरह दिखाती है:
क्वेरी लिखने के बाद, क्वेरी शुरू करने के लिए क्वेरी चलाएं बटन पर क्लिक करें. इससे आपको स्मार्ट होम इंटिग्रेशन की गड़बड़ियां दिखेंगी:
जैसा कि आपको पता चल रहा है कि हमें पिछले एक घंटे में कई बार गड़बड़ियां मिली हैं. हर लाइन में एक गड़बड़ी का लॉग दिखता है. अलग-अलग लॉग पर क्लिक करके, नेस्ट किए गए फ़ील्ड को बड़ा करके उसमें मौजूद जानकारी देखी जा सकती है.
हिस्टोग्राम का इस्तेमाल करना
लॉग एक्सप्लोरर, काम के हिस्टोग्राम की सुविधा देता है. इसकी मदद से, आपकी क्वेरी से मेल खाने वाले लॉग का समय का डिस्ट्रिब्यूशन देखा जा सकता है. हिस्टोग्राम चालू करने के लिए, ऊपर दाएं कोने के बटन से पेज लेआउट पर क्लिक करें और सुविधा चालू करने के लिए हिस्टोग्राम चुनें.
एक बार चालू होने के बाद, आपको अपनी क्वेरी से मेल खाने वाले लॉग का डिस्ट्रिब्यूशन दिखेगा:
जैसा कि ऊपर दी गई इमेज में देखा जा सकता है, हमारे पास ऐसी कई गड़बड़ियां हैं जिन्हें पिछले एक घंटे में बहुत कम संख्या में क्लस्टर में शामिल किया गया है. ऐसा लगता है कि ये दोपहर 1:45, 2:00, और दोपहर 2:15 बजे के आस-पास तीन क्लस्टर बनाते हैं. हिस्टोग्राम से आपको उन पैटर्न का पता लगाने में मदद मिल सकती है जिन्हें सिर्फ़ टाइमस्टैंप वैल्यू की जांच करके देखना मुश्किल होगा.
फ़िलहाल, हम जिस क्वेरी का इस्तेमाल करते हैं वह लॉग के बीच फ़र्क़ नहीं करती है और हमें स्मार्ट होम इंटिग्रेशन की सभी गड़बड़ियां दिखाती है. कई बार आपको गड़बड़ियों के बीच अंतर करने की ज़रूरत पड़ सकती है. उदाहरण के लिए, खास तरह के डिवाइस या विशेषताओं से मिलने वाली गड़बड़ियों के पैटर्न को ट्रैक करना. ऐसा करने के लिए, हम बेहतर क्वेरी लिखेंगे.
ऐडवांस क्वेरी
स्मार्ट होम इवेंट लॉग की जांच करने पर, आपको ऐसे कई फ़ील्ड दिखेंगे जिनसे जानकारी इकट्ठा की जा सकती है:
action
trait
: उपयोगकर्ता के हिसाब से डिवाइस की विशेषता टारगेट करें. उदाहरण के लिए, OnOff, StartStop, Brightness)actionType
: विशेषता के बारीक ग्रेन की स्थिति (उदाहरण के लिए, चालू करें, बंद करें, रोकें, बंद करें, फिर से शुरू करें)
device
deviceType
: उपयोगकर्ता के हिसाब से डिवाइस के टाइप को टारगेट करें. जैसे, लाइट, स्विच, वॉशर
status
isSuccess
: कार्रवाई करने के नतीजे को कामयाब माना गया है या नहीं (सही / गलत)statusType
: कार्रवाई के नतीजे के लिए स्टेटस कोड (अगर कार्रवाई नहीं हो पाती है, तो गड़बड़ी का कोड दिखाता है)externalDebugString
: कार्रवाई के लिए डीबग स्ट्रिंग (गड़बड़ी के बारे में पूरी जानकारी देता है)
अन्य फ़ील्ड
ऐसे और भी फ़ील्ड होते हैं जिनसे आपको जानकारी मिल सकती है:
requestId
: अनुरोध से जुड़ा यूनीक आईडी (Google से जनरेट किया गया)executionType
: अनुरोध के लिए इस्तेमाल किया गया पाथ (यह बताता है कि क्लाउड या लोकल)latencyMsec
: Google के सर्वर पर अनुरोध के लिए इंतज़ार का समय (मिलीसेकंड में)locale
: किस भाषा/इलाके से अनुरोध भेजा गया है (उदाहरण के लिए, en-US, fr-FR)
ऊपर दी गई सूची में मौजूद Trait फ़ील्ड का इस्तेमाल करके, हम अपनी क्वेरी में बदलाव करेंगे, ताकि सिर्फ़ उन गड़बड़ियों को शामिल किया जा सके जो OnOff विशेषता से आती हैं:
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
हमारी अपडेट की गई क्वेरी को चलाने के बाद, सिस्टम लॉग की पहचान करता है और हमें उससे जुड़ा नतीजा दिखाता है:
अब तक हमने अपनी सभी क्वेरी मैन्युअल तरीके से की हैं. यह गड़बड़ियों की स्थिति को तुरंत देखने का एक शानदार तरीका है, लेकिन समय के साथ गड़बड़ी के पैटर्न में आने वाले बदलावों पर नज़र रखने का यह एक शानदार तरीका है. इस फ़्लो को ऑटोमेट करने और लंबी अवधि के डेटा को कैप्चर करने के लिए, हम लॉग-आधारित मेट्रिक बनाएंगे.
3. लॉग पर आधारित मेट्रिक
समय के साथ, आपकी क्वेरी से मेल खाने वाले लॉग की संख्या की गिनती करने के लिए, लॉग-आधारित मेट्रिक का इस्तेमाल किया जा सकता है. इससे आपको अपने सभी लॉग में पैटर्न देखने की सुविधा मिलेगी. साथ ही, इससे आपको बुनियादी समस्याओं के बारे में अहम जानकारी भी मिलेगी.
लॉग के हिसाब से मेट्रिक बनाना
लॉग-आधारित मेट्रिक बनाने के लिए, ऑपरेशन > लॉग किया जा रहा है > लॉग पर आधारित मेट्रिक. इसमें आपको अपने प्रोजेक्ट पर पहले से उपलब्ध लॉग-आधारित मेट्रिक की सूची दिखेगी. मेट्रिक बनाएं बटन पर क्लिक करने के बाद, आपको लॉग के आधार पर मेट्रिक बनाने वाली स्क्रीन दिखेगी:
मुख्य मेट्रिक दो तरह की होती हैं: काउंटर मेट्रिक आपकी क्वेरी से मेल खाने वाले लॉग की संख्या की गिनती करती है. डिस्ट्रिब्यूशन मेट्रिक, दिए गए डिस्ट्रिब्यूशन का ट्रैक रखती है. साथ ही, मीन, मीडियन, और 95वां पर्सेंटाइल जैसे आंकड़ों से जुड़ी कार्रवाइयां करने की अनुमति देती है.
नीचे की ओर स्क्रोल करने पर, आपको फ़िल्टर सेक्शन दिखेगा. यहां अपनी क्वेरी टाइप की जा सकती है.
हम अपनी क्वेरी को पिछले सेक्शन से फ़िल्टर बनाएं टेक्स्ट एरिया में चिपकाएंगे.
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
अपने फ़िल्टर से मिलते-जुलते पिछले लॉग देखने के लिए, लॉग की झलक देखें बटन पर भी क्लिक किया जा सकता है. इसके बाद, मेट्रिक बनाएं बटन पर क्लिक करके अगले सेक्शन पर जाएं.
लॉग पर आधारित मेट्रिक डेटा देखना
लॉग पर आधारित मेट्रिक बनाने के बाद, अब यह लॉग पर आधारित मेट्रिक पेज के उपयोगकर्ता की ओर से तय की गई मेट्रिक सेक्शन में उपलब्ध होगी.
लॉग-आधारित मेट्रिक (तीन बिंदु वाला) से जुड़े मेन्यू से, लॉग-आधारित मेट्रिक में इकट्ठा किया गया डेटा देखने के लिए, मेट्रिक्स एक्सप्लोरर में देखें चुनें:
जब हमें कोई नई गड़बड़ी मिलेगी, तो उसे हमारे लॉग-आधारित मेट्रिक से कैप्चर किया जाएगा और उसे मेट्रिक्स एक्सप्लोरर में चार्ट विंडो में दिखाया जाएगा.
कस्टम डैशबोर्ड से मॉनिटर करना
जब हम यह देख लेते हैं कि हमारी नई लॉग-आधारित मेट्रिक उम्मीद के मुताबिक काम कर रही है, तब इस चार्ट व्यू को कस्टम डैशबोर्ड में सेव करने का समय आ जाता है. इसके लिए, मेट्रिक एक्सप्लोरर के ऊपरी दाएं कोने में मौजूद, चार्ट सेव करें बटन पर क्लिक करें. इससे चार्ट को नाम देने के लिए एक प्रॉम्प्ट दिखेगा और वह डैशबोर्ड चुनें जिसमें आपको सेव करना है:
चार्ट को डैशबोर्ड में सेव करने के बाद, उसे वहां से आसानी से ऐक्सेस किया जा सकता है. अपने प्रोजेक्ट पर उपलब्ध डैशबोर्ड की सूची को ऐक्सेस करने के लिए, ऑपरेशन > निगरानी की जा रही है > डैशबोर्ड.
हमने अपने चार्ट को "कोडलैब डैशबोर्ड" नाम के डैशबोर्ड में सेव कर लिया है. इसे खोलने पर यह व्यू दिखेगा:
यहां लॉग-आधारित मेट्रिक को दिखाने वाला चार्ट, इकट्ठा किए गए नए डेटा के साथ दिखता है. स्मार्ट होम लॉग, आपके प्रोजेक्ट पर रीयलटाइम में पब्लिश किए जाते हैं. जब कोई नया लॉग उपलब्ध होगा, तो आपको तुरंत अपनी लॉग-आधारित मेट्रिक के हिसाब से उसकी गिनती दिखेगी.
4. बधाई हो
बधाई हो! आपको अपनी क्वेरी को लॉग-आधारित मेट्रिक में बदलने और उन्हें मॉनिटर करने के लिए कस्टम डैशबोर्ड में सेव करने का तरीका पता चल गया है.
अगले चरण
इस कोडलैब को बनाकर, नीचे दी गई कसरतें आज़माएं और अन्य संसाधन एक्सप्लोर करें:
- डिस्ट्रिब्यूशन मेट्रिक बनाना गाइड देखें. इसमें 'इंतज़ार का समय' जैसे न्यूमेरिक फ़ील्ड के बारे में लॉग-आधारित मेट्रिक बनाने के लिए बताया गया है.
- लॉग-आधारित मेट्रिक के लिए इस्तेमाल किए जा सकने वाले कुछ जटिल फ़िल्टर को देखने के लिए, Google Cloud से मिली सैंपल क्वेरी लाइब्रेरी की समीक्षा करें.