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

क्लाउड-टू-क्लाउड    Matter

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 को आपकी सेवा से, एचटीटीपी 4xx गड़बड़ी कोड के अलावा 401 कोड वाला कोई अन्य कोड मिला है.

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

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

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