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

Cloud-to-cloud    Matter

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

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

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

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

आपके पास, अपनी कार्रवाई को अन्य उपयोगकर्ताओं के साथ शेयर करके, उसे टेस्ट करने का विकल्प होता है. पक्का करें कि गड़बड़ियों और अपवादों को सही तरीके से हैंडल किया जाए.

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

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

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

प्लैटफ़ॉर्म की सामान्य गड़बड़ियों के कोड

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

गड़बड़ी कोड ब्यौरा पार्टनर के लिए ज़रूरी कार्रवाई
AGENT_ISSUE पार्टनर के क्लाउड एजेंट में कोई सामान्य समस्या हुई.

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

पक्का करें कि आपका सर्वर ऑनलाइन हो, फ़ायरवॉल Google को ब्लॉक न कर रहा हो, और यूआरएल सही हो.
हां
BACKEND_FAILURE_URL_TIMEOUT आपकी सेवा तक पहुंचने की कोशिश करते समय, Google के अनुरोध का समय खत्म हो गया.

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

अपने स्मार्ट होम सेवा के लॉग देखने के लिए, Google Cloud Logging में requestId का इस्तेमाल करें. सर्वर क्रैश, टाइम आउट या 502/503 गेटवे गड़बड़ियों की जांच करें.
COMMAND_FAILED किसी निर्देश को पूरा करते समय, सामान्य गड़बड़ी हुई.

गड़बड़ी की असली वजह जानने के लिए, अपने फ़ुलफ़िलमेंट लॉग में, requestId देखें.
हां
EXECUTION_BACKEND_FAILURE_URL_ERROR Google को आपके फ़ुलफ़िलमेंट से, एचटीटीपी 4xx गड़बड़ी (401 के अलावा) मिली.

403, 404 या 400 रिस्पॉन्स के लिए, अपने वेब सर्वर लॉग देखें.
हां
EXECUTION_BACKEND_FAILURE_URL_ROBOTED फ़ुलफ़िलमेंट यूआरएल को robots.txt या सुरक्षा फ़िल्टर ने ब्लॉक कर दिया है.

पक्का करें कि Google के क्रॉलर/सेवाएं, आपके फ़ुलफ़िलमेंट एंडपॉइंट को ऐक्सेस कर सकती हों.
हां
EXECUTION_BACKEND_FAILURE_URL_UNREACHABLE Google को आपकी फ़ुलफ़िलमेंट सेवा से, एचटीटीपी 5xx गड़बड़ी मिली.

पक्का करें कि एंडपॉइंट यूआरएल सेवा स्थिर हो, सही हो, और सार्वजनिक तौर पर ऐक्सेस की जा सकती हो. साथ ही, सेवा चालू हो. हेल्थ चेक और फिर से कोशिश करने की सुविधा जोड़ें. सर्वर क्रैश, टाइम आउट या 502/503 गेटवे गड़बड़ियों की जांच करें.
हां
EXECUTION_BAILOUT_INVALID_RESPONSE JSON रिस्पॉन्स में इतनी गड़बड़ियां थीं कि उसे प्रोसेस नहीं किया जा सका.

JSON वैलिडेटर का इस्तेमाल करके, पक्का करें कि आपका रिस्पॉन्स, इंटेंट स्कीमा के मुताबिक हो.
हां
EXECUTION_GAL_BAD_3P_RESPONSE टोकन रिस्पॉन्स में गलत फ़ॉर्मैट की वजह से, खाता लिंक नहीं किया जा सका.

पुष्टि करें कि आपके OAuth सर्वर का रिस्पॉन्स फ़ॉर्मैट, Google की ज़रूरी शर्तों के मुताबिक हो.
हां
EXECUTION_GAL_INSUFFICIENT_CAPABILITIES उपयोगकर्ता के खाते के पास, इस कार्रवाई के लिए ज़रूरी अनुमतियां नहीं हैं.

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

पक्का करें कि आपकी agentUserId मैपिंग स्थिर हो और उसे मिटाया न गया हो.
हां
EXECUTION_GAL_NOT_FOUND Google में सेव किए गए उपयोगकर्ता के ऐक्सेस और रीफ़्रेश टोकन अमान्य हैं या उन्हें रीफ़्रेश नहीं किया जा सकता. इस वजह से, पुष्टि नहीं हो पाती और पार्टनर की सेवा को ऐक्सेस नहीं किया जा सकता.

पक्का करें कि टोकन मान्य और सिंक किए गए हों. साथ ही, खाते की स्थिति में होने वाले बदलावों को सही तरीके से हैंडल करें. अगर यह पुष्टि हो जाती है कि टोकन रद्द कर दिए गए हैं, तो उपयोगकर्ताओं से खाता फिर से लिंक करने के लिए कहें.
EXECUTION_GAL_READ_ONLY_MODE_FOR_3P इंटिग्रेशन, पार्टनर की ओर से सिर्फ़ पढ़ने वाले मोड में है.

देखें कि उपयोगकर्ता का खाता निलंबित है या "सिर्फ़ देखने" वाले रखरखाव मोड में है.
हां
EXECUTION_GAL_UNLINKED_BY_3P तीसरे पक्ष की सेवा ने, खाते को पहले ही अनलिंक कर दिया था.

इसकी जांच करें कि उपयोगकर्ता को क्यों डिसकनेक्ट किया गया (उदाहरण के लिए, सुरक्षा रीसेट). पक्का करें कि पार्टनर का OAuth सर्वर, नए ऐक्सेस टोकन जारी करने के लिए, Google के refresh_token अनुरोधों का सही जवाब देता हो.
हां
EXECUTION_INVALID_JSON Google, JSON रिस्पॉन्स पेलोड को पार्स नहीं कर सका.

अपने रिस्पॉन्स में सिंटैक्स से जुड़ी गड़बड़ियां, ब्रैकेट मौजूद न होना या अमान्य वर्ण देखें.
हां
INVALID_AUTH_TOKEN Google को आपकी सेवा से, एचटीटीपी 401 गड़बड़ी कोड मिला है.

ऐक्सेस टोकन की समय-सीमा खत्म नहीं हुई है, लेकिन आपकी सेवा ने इसे अमान्य कर दिया है. अपने स्मार्ट होम सेवा के लॉग देखने के लिए, Google Cloud Logging में requestId का इस्तेमाल करें.
INVALID_JSON रिस्पॉन्स का स्ट्रक्चर अमान्य है. उदाहरण के लिए, ज़रूरी फ़ील्ड मौजूद नहीं हैं .

इंटेंट JSON स्कीमा के हिसाब से, अपने रिस्पॉन्स की पुष्टि करें.
हां
MALFORMED_JSON JSON स्ट्रक्चर में गड़बड़ी है. उदाहरण के लिए, स्ट्रिंग या ऑब्जेक्ट बंद नहीं किए गए हैं.

पक्का करें कि आपका फ़ुलफ़िलमेंट, रिस्पॉन्स को क्रम से लगाने के लिए, स्टैंडर्ड JSON लाइब्रेरी का इस्तेमाल करता हो.
हां
NOT_IMPLEMENTED पार्टनर ने, अनुरोध किए गए इंटेंट या एट्रिब्यूट को लागू नहीं किया है.

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

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

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

अपने फ़ुलफ़िलमेंट रिस्पॉन्स के रूट स्ट्रक्चर की पुष्टि करें.
हां
PARTNER_RESPONSE_INVALID_STATUS रिस्पॉन्स का status, SUCCESS, ERROR या OFFLINE नहीं था.

पक्का करें कि आपके रिस्पॉन्स में हर डिवाइस के नतीजे में, मान्य स्टेटस स्ट्रिंग शामिल हो.
हां
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES रिस्पॉन्स में, अनुरोध किए गए सभी निर्देश/डिवाइस के नतीजे शामिल नहीं थे.

Google Home डेवलपर दस्तावेज़ के हिसाब से, अपने रिस्पॉन्स स्ट्रक्चर की पुष्टि करें. पक्का करें कि इंटरनल सर्वर की गड़बड़ी की वजह से, रिस्पॉन्स छोटा न किया जा रहा हो या खाली बॉडी न दिखाई जा रही हो. अनुरोध के commands कलेक्शन में मौजूद हर आइटम के लिए, उससे जुड़ा रिस्पॉन्स होना चाहिए.
हां
PARTNER_RESPONSE_MISSING_DEVICE Google ने जिस डिवाइस का अनुरोध किया था उसे रिस्पॉन्स से हटा दिया गया है.

पक्का करें कि आपके रिस्पॉन्स में, अनुरोध के पेलोड में दिया गया हर ID शामिल हो.
हां
PARTNER_RESPONSE_MISSING_PAYLOAD रिस्पॉन्स में, ज़रूरी payload फ़ील्ड मौजूद नहीं है.

पक्का करें कि आपके टॉप-लेवल JSON ऑब्जेक्ट में, payload कुंजी शामिल हो.
हां
PARTNER_RESPONSE_NOT_OBJECT पूरे रिस्पॉन्स को JSON ऑब्जेक्ट के तौर पर पार्स नहीं किया जा सका.

अपने एचटीटीपी रिस्पॉन्स की बॉडी में, आखिर में मौजूद वर्ण या नॉन-JSON कॉन्टेंट देखें. पक्का करें कि payload.commands[] एक सही JSON ऑब्जेक्ट हो, जिसमें आईडी, स्टेटस, और वैकल्पिक स्थितियां शामिल हों.
हां
REQUEST_ID_NOT_FOUND Google को अनुरोध के लिए, इंटरनल ट्रैकिंग आईडी नहीं मिला.

आम तौर पर, यह प्लैटफ़ॉर्म की इंटरनल गड़बड़ी होती है. इस पर नज़र रखें और सहायता टीम से संपर्क करें.
हां
RESOURCE_UNAVAILABLE अनुरोध किया गया संसाधन (डिवाइस या एट्रिब्यूट) उपलब्ध नहीं है.

देखें कि डिवाइस "बिज़ी" है या उसे अस्थायी तौर पर बंद कर दिया गया है.
हां
RESPONSE_TIMEOUT फ़ुलफ़िलमेंट सेवा, नौ सेकंड के अंदर जवाब नहीं दे पाई.

बैकएंड की लेटेंसी ऑप्टिमाइज़ करें. साथ ही, डीबी की धीमी क्वेरी या इलाके के हिसाब से नेटवर्क की समस्या देखें.
हां
RESPONSE_UNAVAILABLE पार्टनर के फ़ुलफ़िलमेंट यूआरएल से कोई रिस्पॉन्स नहीं मिला.

पुष्टि करें कि आपकी सेवा चालू है और एंडपॉइंट क्रैश नहीं हो रहा है.
हां
TIMEOUT इंटेंट को प्रोसेस करते समय, सामान्य टाइम आउट हुआ.

अपने क्लाउड और डिवाइस हब के बीच, इंटरनल सेवा के टाइम आउट के लिए लॉग देखें.
हां

खोज लॉग

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

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

क्लाउड लॉग क्वेरी करना

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

Cloud Log Queries बनाना

_समय की सीमा_ तय करने के लिए, समय की सीमा चुनने वाले बटन पर क्लिक करें और दिए गए विकल्पों में से कोई एक चुनें. इससे लॉग फ़िल्टर हो जाएंगे और चुने गए समय की सीमा में जनरेट हुए लॉग दिखेंगे.

संसाधन तय करने के लिए, संसाधन ड्रॉपडाउन पर क्लिक करें. इसके बाद, Google Assistant Action Project चुनें. इससे आपकी क्वेरी में एक फ़िल्टर जुड़ जाएगा, ताकि आपके प्रोजेक्ट से जनरेट हुए लॉग दिख सकें.

गंभीरता बटन का इस्तेमाल करके, आपातकालीन, जानकारी, डीबग, और गंभीरता के अन्य लॉग लेवल के हिसाब से फ़िल्टर करें.

कस्टम एंट्री डालने के लिए, 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

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

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