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

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

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