Matter इंटिग्रेशन की गड़बड़ियों को हल करना

refresh_date: 2023-01-06

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

गड़बड़ियों को ठीक करने के लिए, ये दो तरीके अपनाएं:

  1. स्मार्ट होम मेट्रिक की मदद से, अपने प्रोजेक्ट की स्थिति को मॉनिटर करें.
  2. गड़बड़ी के लॉग में, गड़बड़ी के बारे में दी गई पूरी जानकारी देखकर समस्याओं की जांच करें.

गड़बड़ियों को मॉनिटर करना

अपने प्रोजेक्ट की मेट्रिक ऐक्सेस करने के लिए, 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 में कई ऐसे सिस्टम हैं जो आपके प्रोजेक्ट को हर समय लॉग भेजते हैं. आपको अपने लॉग फ़िल्टर करने और ज़रूरी लॉग ढूंढने के लिए, क्वेरी लिखनी होंगी. क्वेरी, समय की सीमा, संसाधन, लॉग की गंभीरता या कस्टम एंट्री के आधार पर हो सकती हैं.

क्लाउड लॉग क्वेरी करना

कस्टम फ़िल्टर बनाने के लिए, क्वेरी बटन का इस्तेमाल किया जा सकता है.

Cloud Log Queries बनाना

_समय की सीमा_ तय करने के लिए, समय की सीमा चुनने वाले बटन पर क्लिक करें और दिए गए विकल्पों में से कोई एक विकल्प चुनें. इससे लॉग फ़िल्टर हो जाएंगे और चुने गए समय की सीमा में जनरेट हुए लॉग दिखेंगे.

संसाधन तय करने के लिए, संसाधन ड्रॉपडाउन पर क्लिक करें. इसके बाद, 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 में होने वाली गड़बड़ियों को ठीक करने का तरीका बताया गया है. डीबग करने के बारे में ज़्यादा जानने के लिए, हमारे Codelab भी देखे जा सकते हैं: