refresh_date: 2023-01-06
Google Cloud की मदद से, अपने प्रोजेक्ट की परफ़ॉर्मेंस को मॉनिटर किया जा सकता है. साथ ही, Google Cloud Logging के गड़बड़ी वाले लॉग की मदद से, समस्याओं को डीबग किया जा सकता है. ये दोनों टूल, Google Cloud Monitoring पर उपलब्ध हैं. जब उपयोगकर्ता के इरादे पूरे करने में कोई गड़बड़ी होती है, तो Google Home Analytics पाइपलाइन, आपकी मेट्रिक पर उस गड़बड़ी को रिकॉर्ड करती है. साथ ही, आपके प्रोजेक्ट लॉग में गड़बड़ी का लॉग पब्लिश करती है.
गड़बड़ियों को ठीक करने के लिए, ये दो तरीके अपनाए जा सकते हैं:
- स्मार्ट होम मेट्रिक की मदद से, अपने प्रोजेक्ट की स्थिति को मॉनिटर करें.
- गड़बड़ी के लॉग में, गड़बड़ी के बारे में दी गई पूरी जानकारी देखकर समस्याओं की जांच करें.

गड़बड़ियों को मॉनिटर करना
अपने प्रोजेक्ट की मेट्रिक ऐक्सेस करने के लिए, Google Cloud Monitoring dashboards का इस्तेमाल किया जा सकता है. यहां कुछ अहम चार्ट दिए गए हैं. ये चार्ट, खास तौर पर क्वालिटी को मॉनिटर करने और डीबग करने के लिए काम के हैं:
- सक्सेस रेट चार्ट, आपके प्रोजेक्ट की परफ़ॉर्मेंस को मॉनिटर करने के लिए सबसे पहले इस्तेमाल किया जाता है. इस चार्ट में गिरावट आने से, आपके उपयोगकर्ता आधार के किसी हिस्से या सभी के लिए, सेवा में रुकावट का पता चल सकता है. हमारा सुझाव है कि अपने प्रोजेक्ट में किए गए हर बदलाव या अपडेट के बाद, इस चार्ट को ध्यान से मॉनिटर करें, ताकि किसी भी तरह की गड़बड़ी का पता लगाया जा सके.
- गड़बड़ी की जानकारी चार्ट, आपके इंटिग्रेशन में आने वाली समस्याओं को ठीक करने के लिए सबसे ज़्यादा काम के होते हैं. सक्सेस रेट चार्ट में हाइलाइट की गई हर गड़बड़ी के लिए, गड़बड़ी की जानकारी में गड़बड़ी का कोड दिखता है. नीचे दी गई टेबल में, Google Home platform से फ़्लैग की गई गड़बड़ियां और उन्हें ठीक करने का तरीका देखा जा सकता है.
प्लैटफ़ॉर्म की सामान्य गड़बड़ियों के कोड
यहां कुछ सामान्य गड़बड़ी कोड दिए गए हैं. ये कोड, Google Home platform से पकड़ी गई समस्याओं की पहचान करने के लिए, आपके प्रोजेक्ट लॉग में दिख सकते हैं . समस्या हल करने से जुड़ी जानकारी के लिए, यहां दी गई टेबल देखें. गड़बड़ी कोड की पूरी सूची देखने के लिए, देखें गड़बड़ियां और अपवाद.
| गड़बड़ी कोड | ब्यौरा | आपके लिए ज़रूरी स्टेप |
|---|---|---|
AGENT_ISSUE |
पार्टनर के क्लाउड एजेंट में कोई सामान्य समस्या हुई.
अपने फ़ुलफ़िलमेंट लॉग में, ऐसे अपवाद या क्रैश देखें जिन्हें हैंडल नहीं किया गया है. |
हां |
AGENT_UNAVAILABLE_ERROR |
Google, पार्टनर के फ़ुलफ़िलमेंट यूआरएल तक नहीं पहुंच सका.
पक्का करें कि आपका सर्वर ऑनलाइन हो, फ़ायरवॉल Google को ब्लॉक न कर रहा हो, और यूआरएल सही हो. |
हां |
BACKEND_FAILURE_URL_TIMEOUT |
आपकी सेवा से कनेक्ट होने की कोशिश करते समय, Google के अनुरोध का समय खत्म हो गया.
पुष्टि करें कि आपकी सेवा ऑनलाइन है, कनेक्शन स्वीकार कर रही है, और उसकी क्षमता से ज़्यादा लोड नहीं है. इसके अलावा, पुष्टि करें कि टारगेट डिवाइस चालू है, ऑनलाइन है, और सिंक किया गया है. |
|
BACKEND_FAILURE_URL_UNREACHABLE |
Google को आपकी सेवा से, एचटीटीपी 5xx गड़बड़ी का कोड मिला है.
अपने स्मार्ट होम सेवा के लॉग देखने के लिए, Google Cloud Logging में requestId का इस्तेमाल करें. सर्वर क्रैश, टाइम आउट या
502/503 गेटवे गड़बड़ियों की जांच करें.
|
|
COMMAND_FAILED |
किसी निर्देश को चलाने के दौरान, सामान्य गड़बड़ी हुई.
गड़बड़ी की असली वजह जानने के लिए, अपने फ़ुलफ़िलमेंट लॉग में, requestId
देखें.
|
हां |
EXECUTION_BACKEND_FAILURE_URL_ERROR |
Google को आपके
फ़ुलफ़िलमेंट से, एचटीटीपी 4xx गड़बड़ी (401 के अलावा) मिली.
403, 404 या 400 रिस्पॉन्स के लिए, अपने वेब सर्वर लॉग देखें. |
हां |
EXECUTION_BACKEND_FAILURE_URL_ROBOTED |
फ़ुलफ़िलमेंट यूआरएल को robots.txt या सुरक्षा फ़िल्टर ने ब्लॉक कर दिया है.
पक्का करें कि Google के क्रॉलर/सेवाएं, आपके फ़ुलफ़िलमेंट एंडपॉइंट को ऐक्सेस कर सकती हों. |
हां |
EXECUTION_BACKEND_FAILURE_URL_UNREACHABLE |
Google को आपकी फ़ुलफ़िलमेंट सेवा से, एचटीटीपी 5xx गड़बड़ी मिली.
पक्का करें कि एंडपॉइंट यूआरएल सेवा स्थिर हो, सही हो, और सार्वजनिक तौर पर ऐक्सेस की जा सकती हो. साथ ही, सेवा चालू हो. हेल्थ चेक और फिर से कोशिश करने की सुविधा जोड़ें. सर्वर क्रैश, टाइम आउट या 502/503 गेटवे गड़बड़ियों की जांच करें. |
हां |
EXECUTION_BAILOUT_INVALID_RESPONSE |
JSON रिस्पॉन्स में इतनी गड़बड़ियां थीं कि उसे प्रोसेस नहीं किया जा सका.
JSON वैलिडेटर का इस्तेमाल करके, पक्का करें कि आपका रिस्पॉन्स, इंटेंट स्कीमा के मुताबिक हो. |
हां |
EXECUTION_GAL_BAD_3P_RESPONSE |
टोकन रिस्पॉन्स में गलत फ़ॉर्मैट की वजह से, खाता लिंक नहीं किया जा सका.
पुष्टि करें कि आपके OAuth सर्वर का रिस्पॉन्स फ़ॉर्मैट, Google की ज़रूरी शर्तों के मुताबिक हो. |
हां |
EXECUTION_GAL_INSUFFICIENT_CAPABILITIES |
उपयोगकर्ता के खाते में, इस कार्रवाई के लिए ज़रूरी अनुमतियां नहीं हैं.
OAuth के दौरान अनुरोध किए गए स्कोप देखें और पक्का करें कि वे ज़रूरी एट्रिब्यूट से मेल खाते हों. |
हां |
EXECUTION_GAL_MAYBE_UNLINKED_BY_3P |
पार्टनर क्लाउड से पता चलता है कि उपयोगकर्ता ने अपना खाता अनलिंक कर दिया है.
पक्का करें कि आपकी agentUserId मैपिंग स्थिर हो और उसे मिटाया न गया हो.
|
हां |
EXECUTION_GAL_NOT_FOUND |
Google में सेव किए गए उपयोगकर्ता के ऐक्सेस और रीफ़्रेश टोकन अमान्य हैं या
उन्हें रीफ़्रेश नहीं किया जा सकता. इस वजह से, पुष्टि नहीं हो पाती और पार्टनर की सेवा को ऐक्सेस नहीं किया जा सकता.
पक्का करें कि टोकन मान्य और सिंक किए गए हों. साथ ही, खाते की स्थिति में होने वाले बदलावों को सही तरीके से हैंडल करें. अगर यह पुष्टि हो जाती है कि टोकन रद्द कर दिए गए हैं, तो उपयोगकर्ताओं से खाता फिर से लिंक करने के लिए कहें. |
|
EXECUTION_GAL_READ_ONLY_MODE_FOR_3P |
पार्टनर की ओर से, इंटिग्रेशन सिर्फ़ पढ़ने वाले मोड में है.
देखें कि उपयोगकर्ता का खाता निलंबित है या "सिर्फ़ देखने" वाले रखरखाव मोड में है. |
हां |
EXECUTION_GAL_UNLINKED_BY_3P |
तीसरे पक्ष की सेवा ने, खाते को पहले से ही अनलिंक कर दिया था.
इसकी जांच करें कि उपयोगकर्ता का कनेक्शन क्यों टूटा. उदाहरण के लिए, सुरक्षा रीसेट. पक्का करें कि पार्टनर का OAuth सर्वर, नए ऐक्सेस टोकन जारी करने के लिए, Google के refresh_token अनुरोधों का सही जवाब दे.
|
हां |
EXECUTION_INVALID_JSON |
Google, JSON रिस्पॉन्स पेलोड को पार्स नहीं कर सका.
अपने रिस्पॉन्स में सिंटैक्स से जुड़ी गड़बड़ियां, ब्रैकेट मौजूद न होना या अमान्य वर्ण देखें. |
हां |
INVALID_AUTH_TOKEN |
Google को आपकी सेवा से, एचटीटीपी 401 गड़बड़ी का कोड मिला है.
ऐक्सेस टोकन की समय-सीमा खत्म नहीं हुई है, लेकिन आपकी सेवा ने इसे अमान्य कर दिया है. अपने स्मार्ट होम सेवा के लॉग देखने के लिए, Google Cloud Logging में requestId का इस्तेमाल करें.
|
|
INVALID_JSON |
रिस्पॉन्स का स्ट्रक्चर अमान्य है. उदाहरण के लिए, ज़रूरी फ़ील्ड मौजूद नहीं हैं
.
इंटेंट JSON स्कीमा के हिसाब से, अपने रिस्पॉन्स की पुष्टि करें. |
हां |
MALFORMED_JSON |
JSON का स्ट्रक्चर खराब है. उदाहरण के लिए, स्ट्रिंग या
ऑब्जेक्ट बंद नहीं किए गए हैं.
पक्का करें कि आपका फ़ुलफ़िलमेंट, रिस्पॉन्स को क्रम से लगाने के लिए, स्टैंडर्ड JSON लाइब्रेरी का इस्तेमाल करता हो. |
हां |
NOT_IMPLEMENTED |
पार्टनर ने, अनुरोध किए गए इंटेंट या एट्रिब्यूट को लागू नहीं किया है.
अपने SYNC रिस्पॉन्स में सिर्फ़ वे एट्रिब्यूट शामिल करें जिन्हें आपने
पूरी तरह से लागू किया है.
|
हां |
OPEN_AUTH_FAILURE |
उपयोगकर्ता के ऐक्सेस टोकन की समय-सीमा खत्म हो गई है और Google इसे रीफ़्रेश नहीं कर पा रहा है,
या Google को आपकी सेवा से, एचटीटीपी 401 गड़बड़ी का कोड मिला है.
अगर आपको इस कोड की दर में बढ़ोतरी दिखती है, तो देखें कि आपको स्मार्ट होम इंटेंट या रीफ़्रेश टोकन के अनुरोधों से जुड़ी गड़बड़ियों की दर में भी बढ़ोतरी दिखती है या नहीं. |
|
PARTNER_RESPONSE_INVALID_ERROR_CODE |
दिखाया गया errorCode स्ट्रिंग, Google की मान्य सूची में शामिल नहीं है.
अपनी अंदरूनी गड़बड़ियों को, गड़बड़ियों की आधिकारिक सूची में मैप करें. |
हां |
PARTNER_RESPONSE_INVALID_PAYLOAD |
रिस्पॉन्स में मौजूद payload फ़ील्ड, मान्य JSON
ऑब्जेक्ट नहीं है.
अपने फ़ुलफ़िलमेंट रिस्पॉन्स के रूट स्ट्रक्चर की पुष्टि करें. |
हां |
PARTNER_RESPONSE_INVALID_STATUS |
रिस्पॉन्स का status, SUCCESS, ERROR या OFFLINE नहीं था.
पक्का करें कि आपके रिस्पॉन्स में हर डिवाइस के नतीजे में, मान्य स्टेटस स्ट्रिंग शामिल हो. |
हां |
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
रिस्पॉन्स में, अनुरोध किए गए सभी
निर्देश/डिवाइस के नतीजे शामिल नहीं थे.
Google Home डेवलपर दस्तावेज़ के हिसाब से, अपने रिस्पॉन्स स्ट्रक्चर की पुष्टि करें. पक्का करें कि अंदरूनी सर्वर की गड़बड़ी की वजह से, रिस्पॉन्स छोटा न किया जा रहा हो या खाली बॉडी न दिखाई जा रही हो. अनुरोध के commands कलेक्शन में मौजूद हर आइटम
के लिए, उससे जुड़ी रिस्पॉन्स एंट्री होनी चाहिए.
|
हां |
PARTNER_RESPONSE_MISSING_DEVICE |
Google ने जिस डिवाइस का अनुरोध किया था उसे रिस्पॉन्स से हटा दिया गया.
पक्का करें कि आपके रिस्पॉन्स में, अनुरोध पेलोड में दिया गया हर ID शामिल हो.
|
हां |
PARTNER_RESPONSE_MISSING_PAYLOAD |
रिस्पॉन्स में, ज़रूरी payload फ़ील्ड मौजूद नहीं है.
पक्का करें कि आपके टॉप-लेवल JSON ऑब्जेक्ट में, payload कुंजी शामिल हो.
|
हां |
PARTNER_RESPONSE_NOT_OBJECT |
पूरे रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर पार्स नहीं किया जा सका.
अपने एचटीटीपी रिस्पॉन्स बॉडी में, आखिर में मौजूद वर्ण या नॉन-JSON कॉन्टेंट देखें. पक्का करें कि payload.commands[], आईडी, स्टेटस, और ज़रूरी नहीं वाले स्टेटस के साथ, एक सही JSON
ऑब्जेक्ट हो.
|
हां |
REQUEST_ID_NOT_FOUND |
Google को अनुरोध के लिए, इंटरनल ट्रैकिंग आईडी नहीं मिला.
आम तौर पर, यह प्लैटफ़ॉर्म की अंदरूनी गड़बड़ी होती है. इस पर नज़र रखें और सहायता टीम से संपर्क करें. |
हां |
RESOURCE_UNAVAILABLE |
अनुरोध किया गया संसाधन (डिवाइस या एट्रिब्यूट) उपलब्ध नहीं है.
देखें कि डिवाइस "बिज़ी" है या उसे अस्थायी तौर पर बंद कर दिया गया है. |
हां |
RESPONSE_TIMEOUT |
फ़ुलफ़िलमेंट सेवा, नौ सेकंड के अंदर जवाब नहीं दे पाई.
बैकएंड की लेटेन्सी को ऑप्टिमाइज़ करें. साथ ही, डीबी की धीमी क्वेरी या इलाके के हिसाब से नेटवर्क की लेग की जांच करें. |
हां |
RESPONSE_UNAVAILABLE |
पार्टनर के फ़ुलफ़िलमेंट यूआरएल से कोई रिस्पॉन्स नहीं मिला.
पुष्टि करें कि आपकी सेवा चालू है और एंडपॉइंट क्रैश नहीं हो रहा है. |
हां |
TIMEOUT |
इंटेंट को प्रोसेस करते समय, सामान्य टाइम आउट हुआ.
अपने क्लाउड और डिवाइस हब के बीच, इंटरनल सेवा के टाइम आउट के लिए लॉग देखें. |
हां |
खोज लॉग
मेट्रिक का इस्तेमाल करके, अपने इंटिग्रेशन को मॉनिटर करने के बाद, अगला चरण Cloud Loggingका इस्तेमाल करके, खास गड़बड़ियों को ठीक करना है. गड़बड़ी का लॉग, JSON जैसी एंट्री होती है. इसमें समय, गड़बड़ी कोड, और स्मार्ट होम इंटेंट के बारे में जानकारी जैसे काम की जानकारी वाले फ़ील्ड शामिल होते हैं.
Google Cloud में कई ऐसे सिस्टम हैं जो आपके प्रोजेक्ट को हर समय लॉग भेजते हैं. आपको अपने लॉग फ़िल्टर करने और ज़रूरी लॉग ढूंढने के लिए, क्वेरी लिखनी होंगी. क्वेरी, समय की सीमा, संसाधन, लॉग की गंभीरता या कस्टम एंट्री के आधार पर हो सकती हैं.
कस्टम फ़िल्टर बनाने के लिए, क्वेरी बटन का इस्तेमाल किया जा सकता है.
_समय की सीमा_ तय करने के लिए, समय की सीमा चुनने वाले बटन पर क्लिक करें और दिए गए विकल्पों में से कोई एक चुनें. इससे लॉग फ़िल्टर हो जाएंगे और चुने गए समय की सीमा में जनरेट हुए लॉग दिखेंगे.
संसाधन तय करने के लिए, संसाधन ड्रॉपडाउन पर क्लिक करें. इसके बाद, Google Assistant Action Project चुनें. इससे आपकी क्वेरी में एक फ़िल्टर जुड़ जाएगा, ताकि आपके प्रोजेक्ट से जनरेट हुए लॉग दिखें.
गंभीरता बटन का इस्तेमाल करके, आपातकालीन, जानकारी, डीबग, और गंभीरता के अन्य लॉग लेवल के हिसाब से फ़िल्टर करें.
कस्टम एंट्री डालने के लिए, Logs Explorer
में क्वेरी फ़ील्ड का भी इस्तेमाल किया जा सकता है. इस फ़ील्ड में इस्तेमाल किया गया क्वेरी इंजन, स्ट्रिंग मैचिंग जैसी बुनियादी क्वेरी के साथ-साथ, तुलना करने वाले ऑपरेटर (<, >=, !=) और बूलियन ऑपरेटर (AND, OR, NOT) वाली ज़्यादा बेहतर क्वेरी भी इस्तेमाल करता है.
उदाहरण के लिए, नीचे दी गई कस्टम एंट्री, LIGHT डिवाइस टाइप से जनरेट होने वाली गड़बड़ियां दिखाएगी:
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
लॉग की क्वेरी असरदार तरीके से करने के ज़्यादा उदाहरण देखने के लिए, क्वेरी लाइब्रेरी पर जाएं.
ठीक किए गए बदलावों की टेस्टिंग
गड़बड़ियों की पहचान करने और उन्हें ठीक करने के लिए अपडेट लागू करने के बाद, हमारा सुझाव है कि ठीक किए गए बदलावों की अच्छी तरह से टेस्टिंग करेंGoogle Home Test Suite. हम उपयोगकर्ता गाइड उपलब्ध कराते हैं. इसमें, आपके बदलावों की असरदार तरीके से टेस्टिंग करने का तरीका बताया गया है.Test Suite
सीखने के लिए संसाधन
इस दस्तावेज़ में, Smart Home Action में आने वाली गड़बड़ियों को ठीक करने का तरीका बताया गया है. डीबग करने के बारे में ज़्यादा जानने के लिए, हमारे कोडलैब भी देखे जा सकते हैं:
- स्मार्ट होम कोडलैब को डीबग करना: स्मार्ट होम क्लाउड इंटिग्रेशन को डीबग करने के लिए, क्विक स्टार्ट गाइड.
- लोकल होम कोडलैब को डीबग करना: स्मार्ट होम लोकल इंटिग्रेशन को डीबग करने के लिए, क्विक स्टार्ट गाइड.