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

रीफ़्रेश करने की तारीख: 06-01-2023

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

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

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

निगरानी से जुड़ी गड़बड़ियां

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

  • अपने प्रोजेक्ट की विश्वसनीयता पर नज़र रखने के बाद, शुरू होने वाला पहला चार्ट सफलता की दर चार्ट होता है. इस चार्ट में गिरावट आने का मतलब है कि आपके उपयोगकर्ताओं के कुछ हिस्से या पूरे उपयोगकर्ता आधार पर कुछ समय के लिए रुकावट आ रही है. हमारा सुझाव है कि आप प्रोजेक्ट में हुए हर बदलाव या अपडेट के बाद, इस चार्ट में किसी भी गड़बड़ी का पता लगाने के लिए, उसकी अच्छे से निगरानी करें.
  • गड़बड़ी का ब्यौरा चार्ट तब सबसे ज़्यादा काम आते हैं, जब इंटिग्रेशन में समस्याओं को हल करने की बात आती है. सफलता के प्रतिशत वाले चार्ट में हाइलाइट की गई हर गड़बड़ी के लिए, गड़बड़ियों के ब्रेकडाउन में गड़बड़ी का एक कोड दिखता है. आप नीचे दी गई टेबल में, 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 को आपकी सेवा से एक HTTP 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 को आपकी सेवा से एचटीटीपी 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 क्लाउड लॉगिंग' में requestId का इस्तेमाल करें.
RESPONSE_TIMEOUT अनुरोध के जवाब का इंतज़ार करते हुए समय खत्म हो गया है.

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

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

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

खोज लॉग

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

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

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