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

refresh_date: 2023-01-06

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

गड़बड़ियों को ठीक करने के लिए, दो चरण हैं:

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

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

अपने प्रोजेक्ट की मेट्रिक ऐक्सेस करने के लिए, Google Cloud Monitoring dashboard का इस्तेमाल किया जा सकता है. कुछ मुख्य चार्ट ऐसे होते हैं जो क्वालिटी मॉनिटर करने और डीबग करने के लिए खास तौर पर मददगार होते हैं:

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

प्लैटफ़ॉर्म से जुड़ी गड़बड़ी के कोड

यहां कुछ सामान्य गड़बड़ी कोड दिए गए हैं. ये आपको अपने प्रोजेक्ट लॉग में दिख सकते हैं. इनसे, Google Home platform की मदद से पाई गई समस्याओं की पहचान की जा सकती है. समस्या हल करने के बारे में जानकारी के लिए, कृपया यह टेबल देखें.

गड़बड़ी कोड ब्यौरा
BACKEND_FAILURE_URL_ERROR Google को आपकी सेवा से 401 के अलावा, एचटीटीपी 4xx गड़बड़ी का कोड मिला है.

स्मार्ट होम सेवा के लॉग देखने के लिए, GCP लॉगिंग में requestId का इस्तेमाल करें.
BACKEND_FAILURE_URL_TIMEOUT आपकी सेवा तक पहुंचने के दौरान, Google के अनुरोध का टाइम आउट हो गया.

पुष्टि करें कि आपकी सेवा ऑनलाइन है, कनेक्शन स्वीकार कर रही है, और उसकी क्षमता से ज़्यादा कनेक्शन नहीं हैं. इसके अलावा, पुष्टि करें कि टारगेट डिवाइस चालू हो, इंटरनेट से कनेक्ट हो, और सिंक हो.
BACKEND_FAILURE_URL_UNREACHABLE Google को आपकी सेवा से एचटीटीपी 5xx गड़बड़ी कोड मिला है.

स्मार्ट होम सेवा के लॉग देखने के लिए, GCP लॉगिंग में requestId का इस्तेमाल करें.
DEVICE_NOT_FOUND पार्टनर की सेवा के लिए, डिवाइस मौजूद नहीं है.

आम तौर पर, इससे डेटा सिंक करने में हुई गड़बड़ी या रेस कंडीशन का पता चलता है.
GAL_BAD_3P_RESPONSE Google, आपके खाते को लिंक करने वाली सेवा से मिले रिस्पॉन्स को पार्स नहीं कर सकता. ऐसा, पेलोड में अमान्य फ़ॉर्मैट या वैल्यू की वजह से होता है.

अपने खाते को लिंक करने की सेवा में गड़बड़ी के लॉग देखने के लिए, GCP लॉगिंग में requestId का इस्तेमाल करें.
GAL_INTERNAL Google ने ऐक्सेस टोकन को वापस पाने की कोशिश की, लेकिन Google के अंदरूनी सिस्टम में कोई गड़बड़ी हुई.

अगर आपको GCP लॉगिंग में इस गड़बड़ी की दर बढ़ी हुई दिखती है, तो ज़्यादा जानकारी के लिए हमसे संपर्क करें.
GAL_INVALID_ARGUMENT Google ने ऐक्सेस टोकन को वापस पाने की कोशिश की, लेकिन Google के अंदरूनी सिस्टम में कोई गड़बड़ी हुई.

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

अगर आपको GCP लॉगिंग में इस गड़बड़ी की दर बढ़ी हुई दिखती है, तो ज़्यादा जानकारी के लिए हमसे संपर्क करें.
GAL_PERMISSION_DENIED टोकन शेयर करने की अनुमति न होने पर, Google की ओर से कोई अंदरूनी गड़बड़ी हुई.

अगर आपको GCP लॉगिंग में इस गड़बड़ी की दर बढ़ी हुई दिखती है, तो ज़्यादा जानकारी के लिए हमसे संपर्क करें.
GAL_REFRESH_IN_PROGRESS उपयोगकर्ता के ऐक्सेस टोकन की समयसीमा खत्म हो गई है और उसे एक साथ रीफ़्रेश करने की कोशिश की जा रही है.

यह कोई समस्या नहीं है और आपको कुछ करने की ज़रूरत नहीं है.
INVALID_AUTH_TOKEN Google को आपकी सेवा से एचटीटीपी 401 गड़बड़ी कोड मिला है.

ऐक्सेस टोकन की समयसीमा खत्म नहीं हुई है, लेकिन आपकी सेवा ने उसे अमान्य कर दिया है. स्मार्ट होम सेवा के लॉग देखने के लिए, GCP लॉगिंग में requestId का इस्तेमाल करें.
INVALID_JSON JSON रिस्पॉन्स को पार्स नहीं किया जा सकता या समझा नहीं जा सकता.

अमान्य सिंटैक्स की जांच करने के लिए, अपने JSON रिस्पॉन्स के स्ट्रक्चर की जांच करें. जैसे, ब्रैकेट का मेल न खाना, कॉमा न होना, अमान्य वर्ण.
OPEN_AUTH_FAILURE उपयोगकर्ता के ऐक्सेस टोकन की समयसीमा खत्म हो गई है और Google उसे रीफ़्रेश नहीं कर पा रहा है या फिर Google को आपकी सेवा से HTTP 401 गड़बड़ी कोड मिला है.

अगर आपको इस कोड की दर बढ़ी हुई दिखती है, तो देखें कि क्या आपको स्मार्ट होम इंटेंट या रीफ़्रेश टोकन के अनुरोधों से जुड़ी गड़बड़ियों की दर भी बढ़ी हुई दिख रही है.
PARTNER_RESPONSE_INVALID_ERROR_CODE जवाब में गड़बड़ी का ऐसा कोड दिखता है जिसकी पहचान नहीं की जा सकी.

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

देखें कि आपके अनुरोध के रिस्पॉन्स में मौजूद पेलोड फ़ील्ड में मैच करने वाले ब्रैकेट हों और उसे JSON फ़ील्ड के तौर पर सही तरीके से बनाया गया हो.
PARTNER_RESPONSE_INVALID_STATUS जवाब में कोई स्टेटस नहीं दिया गया है या गलत स्टेटस दिया गया है.

इरादे को पूरा करने के अनुरोधों के जवाबों में, SUCCESS, OFFLINE, ERROR, EXCEPTIONS के साथ कोई एक स्थिति बताई जानी चाहिए. गड़बड़ियों और अपवादों को मैनेज करने के बारे में ज़्यादा जानकारी पाएं.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES अनुरोध में मौजूद एक या एक से ज़्यादा इंटेंट, जवाब में मौजूद नहीं हैं.

पुष्टि करें कि आपका एक्सीक्यूशन रिस्पॉन्स सही तरीके से स्ट्रक्चर्ड है और अनुरोध के सभी इंटेंट के नतीजे, आपके रिस्पॉन्स में मौजूद हैं.
PARTNER_RESPONSE_MISSING_DEVICE अनुरोध में मौजूद एक या उससे ज़्यादा डिवाइस, रिस्पॉन्स में मौजूद नहीं हैं.

पुष्टि करें कि आपके एक्सीक्यूशन रिस्पॉन्स का स्ट्रक्चर सही है और अनुरोध में मौजूद सभी डिवाइस आईडी आपके रिस्पॉन्स में मौजूद हैं.
PARTNER_RESPONSE_MISSING_PAYLOAD रिस्पॉन्स में payload फ़ील्ड शामिल नहीं है.

अपने अनुरोध के जवाब में, पेलोड फ़ील्ड शामिल करना न भूलें. एक्सीक्यूशन रिस्पॉन्स को सही तरीके से बनाने के बारे में ज़्यादा जानें.
PARTNER_RESPONSE_NOT_OBJECT रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर पार्स नहीं किया जा सकता.

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

स्मार्ट होम सेवा के लॉग देखने के लिए, Google Cloud Logging में requestId का इस्तेमाल करें.
RESPONSE_TIMEOUT जवाब का इंतज़ार करते समय, अनुरोध का समय खत्म हो गया.

अनुरोध भेजने के बाद, जवाब भेजने के लिए टाइम आउट अवधि 9 सेकंड होती है. इस समयसीमा के अंदर जवाब देना न भूलें.
RESPONSE_UNAVAILABLE कोई जवाब नहीं मिला या जवाब में स्थिति नहीं दिख रही है.

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

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

खोज लॉग

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

Google Cloud में कई सिस्टम होते हैं, जो आपके प्रोजेक्ट में हर समय लॉग भेजते हैं. आपको अपने लॉग को फ़िल्टर करने के लिए क्वेरी लिखनी होंगी और अपनी ज़रूरत के हिसाब से लॉग ढूंढने होंगे. क्वेरी, समयसीमा, संसाधन, लॉग की गंभीरता या कस्टम एंट्री के आधार पर हो सकती हैं.

Cloud लॉग की क्वेरी

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

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 का इस्तेमाल करने के तरीके के बारे में उपयोगकर्ता गाइड उपलब्ध कराते हैं. इससे, आपको अपने बदलावों की असरदार तरीके से जांच करने में मदद मिलती है.

सीखने के लिए संसाधन

इस दस्तावेज़ में, स्मार्ट होम ऐक्शन में होने वाली गड़बड़ियों को ठीक करने का तरीका बताया गया है. डीबग करने के बारे में ज़्यादा जानने के लिए, हमारे कोडलैब भी देखे जा सकते हैं: