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

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

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

848f483bfcd2997a.png

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

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

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

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

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

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

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

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

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)

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

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

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

f7e025c27f30f996.png

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

4. बधाई हो

674c4f4392e98c1.png

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

अगले चरण

इस कोडलैब के बाद, यहां दिए गए एक्सरसाइज़ आज़माएं और अन्य संसाधनों को एक्सप्लोर करें:

  • संख्या वाले फ़ील्ड, जैसे कि इंतज़ार का समय के आधार पर लॉग-आधारित मेट्रिक बनाने के लिए, डिस्ट्रिब्यूशन मेट्रिक बनाना गाइड देखें.
  • Google Cloud की सैंपल क्वेरी लाइब्रेरी की समीक्षा करें. इसमें आपको कुछ ऐसे जटिल फ़िल्टर मिलेंगे जिनका इस्तेमाल, लॉग-आधारित मेट्रिक के लिए किया जा सकता है.