refresh_date: 2023-01-06
Google Cloud आपको ऐसे टूल उपलब्ध कराता है जिनकी मदद से, Google Cloud Monitoring के साथ अपने प्रोजेक्ट की परफ़ॉर्मेंस को मॉनिटर किया जा सकता है. साथ ही, Google Cloud Logging के गड़बड़ी वाले लॉग की मदद से, समस्याओं को डीबग किया जा सकता है. जब भी उपयोगकर्ता के अनुरोध पूरे नहीं किए जा पाते हैं, तब 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 ऐक्शन प्रोजेक्ट चुनें. इससे आपकी क्वेरी में एक फ़िल्टर जुड़ जाता है. इससे आपके प्रोजेक्ट से जनरेट हुए लॉग दिखते हैं.
गंभीरता बटन का इस्तेमाल करके, आपातकालीन, जानकारी, डीबग, और अन्य गंभीरता वाले लॉग लेवल के हिसाब से फ़िल्टर करें.
कस्टम एंट्री डालने के लिए, 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 को इस्तेमाल करने के तरीके के बारे में उपयोगकर्ता गाइड उपलब्ध कराते हैं. इसमें, बदलावों को असरदार तरीके से टेस्ट करने के बारे में बताया गया है.
सीखने के लिए संसाधन
इस दस्तावेज़ में, स्मार्ट होम ऐक्शन में आने वाली गड़बड़ियों को ठीक करने का तरीका बताया गया है. डीबग करने के बारे में ज़्यादा जानने के लिए, हमारे कोडलैब भी देखे जा सकते हैं:
- स्मार्ट होम Codelab को डीबग करना: स्मार्ट होम क्लाउड इंटिग्रेशन को डीबग करने के लिए, क्विक स्टार्ट गाइड.
- लोकल होम को डीबग करने से जुड़ा कोडलैब: स्मार्ट होम के लोकल इंटिग्रेशन को डीबग करने के लिए, क्विक स्टार्ट गाइड.