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

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

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

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

प्रोसेस Local Home SDK का इस्तेमाल करके, लोकल इंटिग्रेशन के लिए मिलती-जुलती है. समस्या हल करने के फ़्लो में महारत हासिल करने के बाद, अपनी गड़बड़ियों के बारे में अहम जानकारी पाने के लिए, मेट्रिक और लॉग के बीच आसानी से आगे-पीछे किया जा सकता है.

गड़बड़ियों की निगरानी करना

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

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

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

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

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

खोज लॉग

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

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

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

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