स्मार्ट होम के लिए लॉग पर आधारित मेट्रिक

1. शुरू करने से पहले

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

848f483bfcd2997a.png

आपके प्रोजेक्ट में उपलब्ध मेट्रिक के अलावा, Google Cloud Platform के लॉग पर आधारित मेट्रिक का इस्तेमाल करके भी अपनी मेट्रिक जनरेट की जा सकती हैं. इसकी मदद से, लॉग में कुछ पैटर्न को मॉनिटर किया जा सकता है और क्वालिटी की समस्याओं को असरदार तरीके से डीबग किया जा सकता है.

ज़रूरी शर्तें

आपको इनके बारे में जानकारी मिलेगी

  • स्मार्ट होम की गड़बड़ी के लॉग को फ़िल्टर करने के लिए, असरदार क्वेरी लिखने का तरीका
  • अपनी क्वेरी से मेट्रिक जनरेट करने के लिए, लॉग-आधारित मेट्रिक कैसे बनाएं
  • निगरानी के लिए लॉग-आधारित मेट्रिक से चार्ट और डैशबोर्ड बनाने का तरीका

2. लॉग के साथ काम करना

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

लॉग ऐक्सेस करना

अपने लॉग ऐक्सेस करने के लिए, सबसे पहले Google Cloud Platform में लॉग इन करें और अपना प्रोजेक्ट चुनें. साइड मेन्यू का इस्तेमाल करके, लॉग एक्सप्लोरर पर जाएं. इसके लिए, ऑपरेशन > लॉगिन > लॉग एक्सप्लोरर पर जाएं. टूल को खोलने के बाद, आपको यह व्यू दिखेगा:

78982d8b6d19b827.png

लॉग एक्सप्लोरर में दो मुख्य सेक्शन होते हैं: सबसे ऊपर आपकी क्वेरी लिखने के लिए एक सेक्शन (क्वेरी बिल्डर) और मेल खाने वाले नतीजे दिखाने वाला एरिया (क्वेरी के नतीजे).

Google के कई अलग-अलग कॉम्पोनेंट, डिफ़ॉल्ट रूप से आपके प्रोजेक्ट में लॉग लिखते हैं. अपने स्मार्ट होम इंटिग्रेशन से मिलने वाले लॉग को ढूंढने और उन पर काम करने के लिए, आपको कस्टम क्वेरी लिखनी होंगी.

लेखन क्वेरी

लॉग, रिसॉर्स टाइप के तहत प्रोजेक्ट में पब्लिश किए जाते हैं. हर तरह के संसाधन का मतलब है कि Google में एक अलग प्लैटफ़ॉर्म है. स्मार्ट होम प्लैटफ़ॉर्म से मिलने वाले लॉग, आपके प्रोजेक्ट के लिए assistant_action_project संसाधन टाइप के तहत उपलब्ध होते हैं.

साथ ही, बनाए जाने के दौरान सभी लॉग को गंभीरता का लेवल असाइन किया जाता है. स्मार्ट होम लॉग के साथ, हम गड़बड़ियों और अपवादों को दिखाने वाले लॉग के लिए ERROR लेवल का इस्तेमाल करते हैं. वहीं, बाकी सभी चीज़ों के लिए DEBUG लेवल का इस्तेमाल करते हैं.

नीचे दिए गए उदाहरण में, हम सिर्फ़ अपने प्लैटफ़ॉर्म से मिलने वाले लॉग को फ़िल्टर करने के लिए एक क्वेरी लिखेंगे, जो गड़बड़ियों को इस तरह दिखाती है:

753bfe72a9f8e959.png

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

3ef42da5a6c322e1.png

पिछले एक घंटे में हमें कई बार ऐसी कई गड़बड़ियां दिख रही हैं. हर लाइन में सिर्फ़ एक गड़बड़ी का लॉग दिखाया जाता है. उसमें मौजूद जानकारी देखने के लिए, अलग-अलग लॉग पर क्लिक करें और नेस्ट किए गए फ़ील्ड को बड़ा करें.

हिस्टोग्राम का इस्तेमाल करना

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

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

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

बेहतर क्वेरी

किसी स्मार्ट होम इवेंट लॉग की जांच करते समय, आपको ऐसे कई फ़ील्ड दिखेंगे जिनसे जानकारी इकट्ठा की जा सकती है:

825c57c36800844e.png

action

  • trait: उपयोगकर्ता के हिसाब से, डिवाइस की खासियत को टारगेट करें. उदाहरण के लिए, चालू बंद करना, शुरू करने से रोकना, स्क्रीन की रोशनी बढ़ाना
  • actionType: एट्रिब्यूट की बारीक ग्रेन स्थिति (उदाहरण के लिए, चालू, बंद, रोकें, बंद करें, फिर से शुरू करें)

device

  • deviceType: उपयोगकर्ता के हिसाब से, डिवाइस के टाइप को टारगेट करें (उदाहरण के लिए, लाइट, स्विच, वॉशिंग मशीन)

status

  • isSuccess: क्या कार्रवाई के नतीजे को कामयाब माना जाता है (सही / गलत)
  • statusType: कार्रवाई के नतीजे के लिए स्टेटस कोड (अगर यह काम नहीं कर पाता है, तो यह गड़बड़ी कोड के बारे में बताता है)
  • externalDebugString: कार्रवाई के लिए डीबग स्ट्रिंग (गड़बड़ी के बारे में पूरी जानकारी दी गई है)

अन्य फ़ील्ड

ऐसे दूसरे फ़ील्ड भी हैं जिनसे जानकारी ली जा सकती है:

  • requestId: अनुरोध से जुड़ा यूनीक आईडी (Google ने जनरेट किया है)
  • executionType: अनुरोध ने जिस पाथ का इस्तेमाल किया है (यह बताता है कि क्लाउड या लोकल)
  • latencyMsec: Google सर्वर पर अनुरोध करने में लगने वाला समय (मिलीसेकंड में)
  • locale: अनुरोध किस भाषा/इलाके से भेजा गया है (उदाहरण के लिए, en-US, fr-FR)

ऊपर दी गई सूची के trait फ़ील्ड का इस्तेमाल करके, हम अपनी क्वेरी में बदलाव करेंगे, ताकि OnOff trait से मिली गड़बड़ियों को इस तरह से शामिल किया जा सके:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

अपडेट की गई क्वेरी चलाने के बाद, सिस्टम लॉग की पहचान करता है और उससे जुड़ा नतीजा दिखाता है:

76176d7a41962341.png

अब तक हमने अपनी सभी क्वेरी को मैन्युअल तरीके से पूरा किया है. इस तरीके से गड़बड़ियों की स्थिति का तुरंत पता लगाया जा सकता है. हालांकि, समय के साथ गड़बड़ियों के पैटर्न में होने वाले बदलावों को मॉनिटर करने के लिए यह काफ़ी नहीं है. इस फ़्लो को ऑटोमेट करने और लंबी समयावधि से डेटा कैप्चर करने के लिए, हम लॉग-आधारित मेट्रिक बनाएंगे.

3. लॉग-आधारित मेट्रिक

समय के साथ आपकी क्वेरी से मेल खाने वाले लॉग की संख्या की गिनती करने के लिए, लॉग-आधारित मेट्रिक का इस्तेमाल किया जा सकता है. इसकी मदद से, अपने सभी लॉग में पैटर्न देखा जा सकता है और समस्याओं की अहम जानकारी भी हासिल की जा सकती है.

लॉग पर आधारित मेट्रिक बनाना

लॉग-आधारित मेट्रिक बनाने के लिए, ऑपरेशन > लॉगिन > लॉग-आधारित मेट्रिक पर जाएं. इसमें, आपके प्रोजेक्ट के लिए पहले से उपलब्ध लॉग पर आधारित मेट्रिक की सूची दिखेगी. मेट्रिक बनाएं बटन पर क्लिक करने के बाद, आपको लॉग-आधारित मेट्रिक बनाने वाली स्क्रीन दिखेगी:

296af6e7d8dcf6cf.png

मुख्य मेट्रिक दो तरह की होती हैं: काउंटर मेट्रिक, आपकी क्वेरी से मेल खाने वाले लॉग की संख्या की गिनती करता है. डिस्ट्रिब्यूशन मेट्रिक, बुनियादी डिस्ट्रिब्यूशन को ट्रैक करती है. साथ ही, मीन, मीडियन, और 95वां पर्सेंटाइल जैसे आंकड़ों की कार्रवाइयां करने की अनुमति देती है.

नीचे की ओर स्क्रोल करने पर, आपको फ़िल्टर सेक्शन दिखेगा. यहां क्वेरी टाइप की जा सकती है.

f7f2093fa1bce2ac.png

हम पिछले सेक्शन में मौजूद अपनी क्वेरी को फ़िल्टर बनाएं टेक्स्ट एरिया में चिपका देंगे.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

अपने फ़िल्टर से मेल खाने वाले पुराने लॉग का तुरंत व्यू देखने के लिए, लॉग की झलक देखें बटन पर भी क्लिक किया जा सकता है. ऐसा करने के बाद, मेट्रिक बनाएं बटन पर क्लिक करें और अगले सेक्शन पर जाएं.

लॉग पर आधारित मेट्रिक डेटा देखना

अब हमारी लॉग-आधारित मेट्रिक बन गई है, इसलिए यह लॉग-आधारित मेट्रिक पेज के उपयोगकर्ता की तय की गई मेट्रिक सेक्शन में उपलब्ध होगी.

1b2c88c18533fbcd.png

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

54a836fdc3a666a3.png

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

कस्टम डैशबोर्ड से निगरानी करना

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

52329085f841782e.png

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

44961e7cb3663341.png

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

f7e025c27f30f996.png

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

4. बधाई हो

674c4f4392e98c1.png

बधाई! आपने अपनी क्वेरी को लॉग-आधारित मेट्रिक में बदलने और उन्हें निगरानी के लिए कस्टम डैशबोर्ड में सेव करने का तरीका सीख लिया है.

अगले चरण

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