1. शुरू करने से पहले
हमने स्मार्ट होम को डीबग करना कोडलैब में बताया है कि हम आपके स्मार्ट होम प्रोजेक्ट के लिए मेट्रिक और लॉग पब्लिश कर रहे हैं. मेट्रिक से यह पता चलता है कि स्मार्ट होम ऐक्शन में कहां समस्या आ रही है. साथ ही, इन समस्याओं को हल करने के लिए लॉग फ़ाइलें काम आती हैं.

हम आपके प्रोजेक्ट के लिए जो मेट्रिक उपलब्ध कराते हैं उनके अलावा, Google Cloud की लॉग-आधारित मेट्रिक का इस्तेमाल करके अपनी मेट्रिक भी जनरेट की जा सकती हैं. इससे आपको अपने लॉग में कुछ पैटर्न मॉनिटर करने और क्वालिटी से जुड़ी समस्याओं को असरदार तरीके से डीबग करने में मदद मिलती है.
ज़रूरी शर्तें
- स्मार्ट होम के साथ काम करता है इंटिग्रेशन होना चाहिए
- स्मार्ट होम को डीबग करना कोडलैब पूरा करें
आपको क्या सीखने को मिलेगा
- स्मार्ट होम डिवाइसों के गड़बड़ी लॉग को फ़िल्टर करने के लिए, असरदार क्वेरी लिखने का तरीका
- क्वेरी से मेट्रिक जनरेट करने के लिए, लॉग पर आधारित मेट्रिक बनाने का तरीका
- निगरानी के लिए, लॉग पर आधारित मेट्रिक से चार्ट और डैशबोर्ड बनाने का तरीका
2. लॉग के साथ काम करना
हमने स्मार्ट होम कोडलैब को डीबग करना में, लॉग के बारे में जानकारी दी थी. आपके प्रोजेक्ट की सफलता के लिए, लॉग का इस्तेमाल करना ज़रूरी है. Google Cloud पर, अपने लॉग की निगरानी करने और उनका विश्लेषण करने के लिए बेहतरीन टूल उपलब्ध हैं. अपने प्रोजेक्ट के लिए उपलब्ध सभी लॉग ऐक्सेस करने के लिए, लॉग एक्सप्लोरर का इस्तेमाल किया जा सकता है.
लॉग ऐक्सेस करना
अपनी लॉग फ़ाइलों को ऐक्सेस करने के लिए, सबसे पहले Google Cloud में साइन इन करें और अपना प्रोजेक्ट चुनें. साइड मेन्यू का इस्तेमाल करके, लॉग एक्सप्लोरर पर जाएं. इसके लिए, कार्रवाइयां > लॉगिंग > लॉग एक्सप्लोरर पर जाएं. टूल खोलने के बाद, आपको यह व्यू दिखेगा:

Logs Explorer में दो मुख्य सेक्शन होते हैं: सबसे ऊपर क्वेरी लिखने के लिए एक सेक्शन (क्वेरी बिल्डर) और मिलते-जुलते नतीजे दिखाने के लिए एक सेक्शन (क्वेरी के नतीजे).
Google के कई कॉम्पोनेंट, डिफ़ॉल्ट रूप से आपके प्रोजेक्ट में लॉग लिखते हैं. स्मार्ट होम इंटिग्रेशन से मिलने वाले लॉग ढूंढने और उनका इस्तेमाल करने के लिए, आपको कस्टम क्वेरी लिखनी होंगी.
क्वेरी लिखना
लॉग, किसी संसाधन टाइप के तहत प्रोजेक्ट में पब्लिश किए जाते हैं. हर संसाधन टाइप, Google के किसी अलग प्लैटफ़ॉर्म को दिखाता है. स्मार्ट होम प्लैटफ़ॉर्म से मिलने वाले लॉग, आपके प्रोजेक्ट के लिए assistant_action_project संसाधन टाइप के तहत उपलब्ध होते हैं.
इसके अलावा, सभी लॉग को बनाते समय गंभीरता का लेवल असाइन किया जाता है. स्मार्ट होम लॉग के लिए, हम ERROR लेवल का इस्तेमाल उन लॉग के लिए करते हैं जो गड़बड़ियों और अपवादों को दिखाते हैं. साथ ही, अन्य सभी लॉग के लिए DEBUG लेवल का इस्तेमाल करते हैं.
यहां दिए गए उदाहरण में, हम सिर्फ़ अपने प्लैटफ़ॉर्म से आने वाले उन लॉग को फ़िल्टर करने के लिए क्वेरी लिखेंगे जिनमें गड़बड़ियां मौजूद हैं. इसके लिए, यह तरीका अपनाएं:

क्वेरी लिखने के बाद, क्वेरी शुरू करने के लिए क्वेरी चलाएं बटन पर क्लिक करें. इससे, स्मार्ट होम इंटिग्रेशन से जुड़ी गड़बड़ियां दिखनी चाहिए:

जैसा कि आप देख सकते हैं, हमें पिछले एक घंटे में अलग-अलग समय पर कई गड़बड़ियां मिली हैं. हर लाइन, एक गड़बड़ी के लॉग को दिखाती है. इसके बाद, अलग-अलग लॉग पर क्लिक करके नेस्ट किए गए फ़ील्ड को बड़ा किया जा सकता है. इससे आपको उनमें मौजूद जानकारी दिखेगी.
हिस्टोग्राम का इस्तेमाल करना
Logs Explorer में, हिस्टोग्राम की एक उपयोगी सुविधा मिलती है. इसकी मदद से, आपकी क्वेरी से मेल खाने वाले लॉग के समय का डिस्ट्रिब्यूशन देखा जा सकता है. हिस्टोग्राम को चालू करने के लिए, सबसे ऊपर दाएं कोने में मौजूद बटन में से पेज लेआउट पर क्लिक करें. इसके बाद, इस सुविधा को चालू करने के लिए हिस्टोग्राम को चुनें.

इसे चालू करने के बाद, आपको अपनी क्वेरी से मेल खाने वाले लॉग का डिस्ट्रिब्यूशन दिखेगा:

ऊपर दी गई इमेज में देखा जा सकता है कि हमें कई गड़बड़ियां मिली हैं. ये गड़बड़ियां, पिछले एक घंटे में अलग-अलग समय पर हुई हैं. ये दोपहर 1:45, 2:00, और 2:15 बजे के आस-पास तीन क्लस्टर बनाते हैं. हिस्टोग्राम की मदद से, ऐसे पैटर्न का पता लगाया जा सकता है जिन्हें सिर्फ़ टाइमस्टैंप की वैल्यू देखकर पता लगाना मुश्किल होता है.
फ़िलहाल, हम जिस क्वेरी का इस्तेमाल करते हैं वह लॉग के बीच अंतर नहीं करती है. साथ ही, हमें स्मार्ट होम इंटिग्रेशन से जुड़ी सभी गड़बड़ियां दिखाती है. कई बार ऐसा हो सकता है, जब आपको गड़बड़ियों के बीच अंतर करना पड़े. उदाहरण के लिए, कुछ डिवाइस टाइप या विशेषताओं से होने वाली गड़बड़ियों के पैटर्न को ट्रैक करना. इसके लिए, हम बेहतर क्वेरी लिखने के बारे में जानेंगे.
ऐडवांस क्वेरी
स्मार्ट होम इवेंट लॉग की जांच करने पर, आपको कई फ़ील्ड दिखेंगे. इनसे जानकारी इकट्ठा की जा सकती है:

action
trait: उपयोगकर्ता के हिसाब से डिवाइस की खासियत को टारगेट करना. उदाहरण के लिए, चालू/बंद करना, शुरू/बंद करना, चमकactionType: इस एट्रिब्यूट की स्थिति के बारे में ज़्यादा जानकारी (उदाहरण के लिए, चालू है, बंद है, रोको, बंद करो, फिर से शुरू करो)
device
deviceType: उपयोगकर्ता के हिसाब से डिवाइस टाइप को टारगेट करना (उदाहरण के लिए, लाइट, स्विच, वॉशर)
status
isSuccess: कार्रवाई का नतीजा सफल माना गया है या नहीं (सही / गलत)statusType: कार्रवाई के नतीजे का स्टेटस कोड. अगर कार्रवाई पूरी नहीं होती है, तो यह गड़बड़ी का कोड दिखाता हैexternalDebugString: कार्रवाई के लिए डीबग स्ट्रिंग (इसमें गड़बड़ी के बारे में पूरी जानकारी होती है)
अन्य फ़ील्ड
यहां कुछ और फ़ील्ड भी दिए गए हैं, जिनसे जानकारी हासिल की जा सकती है:
requestId: अनुरोध से जुड़ा यूनीक आईडी (Google से जनरेट किया गया)executionType: अनुरोध के लिए इस्तेमाल किया गया पाथ (इससे पता चलता है कि क्लाउड या लोकल का इस्तेमाल किया गया है)latencyMsec: Google के सर्वर पर अनुरोध के लिए इंतज़ार का समय (मि॰से॰ में)locale: अनुरोध किस भाषा/देश के हिसाब से भेजा गया है. उदाहरण के लिए, en-US, fr-FR
ऊपर दी गई सूची में से ट्रेट फ़ील्ड का इस्तेमाल करके, हम अपनी क्वेरी में बदलाव करेंगे, ताकि उसमें सिर्फ़ 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"
फ़िल्टर से मेल खाने वाले पिछले लॉग की झलक देखने के लिए, लॉग की झलक देखें बटन पर भी क्लिक किया जा सकता है. इसके बाद, मेट्रिक बनाएं बटन पर क्लिक करके अगले सेक्शन पर जाएं.
लॉग पर आधारित मेट्रिक का डेटा देखना
अब हमारी लॉग-आधारित मेट्रिक बन गई है. यह लॉग-आधारित मेट्रिक पेज के उपयोगकर्ता के तय किए गए मेट्रिक सेक्शन में उपलब्ध होगी.

लॉग पर आधारित मेट्रिक (तीन बिंदु) से जुड़े मेन्यू में जाकर, मेट्रिक एक्सप्लोरर में देखें को चुनें. इससे, लॉग पर आधारित मेट्रिक में इकट्ठा किया गया डेटा देखा जा सकता है:

जब हमें कोई नई गड़बड़ी मिलती है, तो उसे लॉग-आधारित मेट्रिक कैप्चर कर लेती है. इसके बाद, उसे मेट्रिक एक्सप्लोरर में चार्ट विंडो में दिखाया जाता है.
कस्टम डैशबोर्ड की मदद से निगरानी करना
जब हमें पता चल जाता है कि लॉग पर आधारित नई मेट्रिक, उम्मीद के मुताबिक काम कर रही है, तब इस चार्ट व्यू को कस्टम डैशबोर्ड में सेव किया जा सकता है. इसके लिए, मेट्रिक एक्सप्लोरर के सबसे ऊपर दाएं कोने में मौजूद, चार्ट सेव करें बटन पर क्लिक करें. इससे आपको चार्ट का नाम डालने और वह डैशबोर्ड चुनने का विकल्प मिलेगा जिसमें आपको चार्ट सेव करना है:

चार्ट को डैशबोर्ड में सेव करने के बाद, उसे आसानी से ऐक्सेस किया जा सकता है. अपने प्रोजेक्ट पर उपलब्ध डैशबोर्ड की सूची ऐक्सेस करने के लिए, Operations > Monitoring > Dashboards पर जाएं.

हमने अपने चार्ट को "Codelab Dashboard" नाम के डैशबोर्ड में सेव किया है. इसे खोलने पर, आपको यह व्यू दिखेगा:

यहां आपको लॉग पर आधारित मेट्रिक को दिखाने वाला चार्ट दिखेगा. साथ ही, नया डेटा भी दिखेगा. स्मार्ट होम के लॉग, आपके प्रोजेक्ट में रीयलटाइम में पब्लिश किए जाते हैं. नया लॉग उपलब्ध होने पर, आपको तुरंत दिखेगा कि लॉग-आधारित मेट्रिक में उसे शामिल कर लिया गया है.
4. बधाई हो

बधाई हो! आपने अपनी क्वेरी को लॉग-आधारित मेट्रिक में बदलने और उन्हें कस्टम डैशबोर्ड में सेव करने का तरीका जान लिया है, ताकि उनकी निगरानी की जा सके.
अगले चरण
इस कोडलैब के आधार पर, यहां दी गई गतिविधियां पूरी करें और अन्य संसाधन देखें:
- लेटेंसी जैसे संख्या वाले फ़ील्ड पर लॉग-आधारित मेट्रिक बनाने के लिए, डिस्ट्रिब्यूशन मेट्रिक बनाना गाइड देखें.
- Google Cloud की ओर से उपलब्ध कराई गई सैंपल क्वेरी लाइब्रेरी देखें. इसमें, लॉग पर आधारित मेट्रिक के लिए इस्तेमाल किए जा सकने वाले कुछ जटिल फ़िल्टर दिए गए हैं.