ইন্টিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা

ক্লাউড-টু-ক্লাউড    Matter

Google Cloud আপনাকে Google Cloud Monitoring-এর মাধ্যমে আপনার প্রোজেক্টের নির্ভরযোগ্যতা মনিটর করার এবং Google Cloud Logging ত্রুটি লগের মাধ্যমে সমস্যা ডিবাগ করার টুল প্রদান করে। ব্যবহারকারীর ইনটেন্ট পূরণ করার সময় কোনও সমস্যা হলে, Google Home Analytics পাইপলাইন আপনার মেট্রিক্সে সেই সমস্যা রেকর্ড করে এবং আপনার প্রোজেক্ট লগে একটি সমস্যার লগ প্রকাশ করে।

আপনার সমস্যার সমাধান করার জন্য দুটি ধাপ আছে:

  1. স্মার্ট হোম মেট্রিকের মাধ্যমে আপনার প্রোজেক্টের অবস্থা মনিটর করুন।
  2. সমস্যার লগ থেকে সমস্যার বিস্তারিত বিবরণ চেক করে সমস্যাটি খতিয়ে দেখুন।

Local Home SDK ব্যবহার করে লোকাল ইন্টিগ্রেশনের জন্য প্রসেসটি একই রকম। সমস্যার সমাধানকরণ ফ্লোতে আপনি দক্ষ হয়ে গেলে, সহজেই মেট্রিক ও লগের মধ্যে যাওয়া-আসা করতে পারবেন এবং আপনার সমস্যার ব্যাপারে ইনসাইট পাবেন।

বিকল্প হিসেবে, আপনি অন্যান্য ব্যবহারকারীর সাথে শেয়ার করে আপনার অ্যাকশন পরীক্ষা করতে পারেন। সমস্যা ও ব্যতিক্রম যথাযথভাবে ম্যানেজ করতে ভুলবেন না।

মনিটরিং সংক্রান্ত সমস্যা

আপনার প্রোজেক্ট মেট্রিক অ্যাক্সেস করতে Google Cloud Monitoring dashboards ব্যবহার করতে পারবেন। কিছু গুরুত্বপূর্ণ চার্ট আছে যা বিশেষ করে কোয়ালিটি মনিটর করা ও ডিবাগ করার জন্য উপযোগী:

  • আপনার প্রোজেক্টের নির্ভরযোগ্যতা মনিটর করার সময় সাফল্যের হার চার্টটি হল প্রথম চার্ট যেখান থেকে শুরু করতে হবে। এই চার্টে ড্রপ আপনার ব্যবহারকারীর বেসের একটি অংশ বা সকলের জন্য আউটেজ নির্দেশ করতে পারে। আপনার প্রোজেক্টে প্রতিটি পরিবর্তন বা আপডেট করার পরে কোনও অনিয়ম হয়েছে কিনা তা দেখার জন্য এই চার্টটি নিবিড়ভাবে মনিটর করার জন্য আমরা সাজেস্ট করি।
  • ৯৫তম পার্সেন্টাইল লেটেন্সি চার্ট হল আপনার ব্যবহারকারীদের জন্য Cloud-to-cloud ইন্টিগ্রেশন কেমন পারফর্ম করছে তা বোঝার একটি গুরুত্বপূর্ণ সূচক। এই চার্টে হঠাৎ ওঠানামা হলে বুঝতে হবে যে আপনার সিস্টেম হয়ত অনুরোধের সাথে তাল মিলিয়ে চলতে পারছে না। কোনও অপ্রত্যাশিত আচরণ দেখতে, এই চার্টটি পর্যায়ক্রমে চেক করার পরামর্শ দেওয়া হয়।
  • আপনার ইন্টিগ্রেশনে সমস্যার সমাধান করার ক্ষেত্রে সমস্যার ব্রেকডাউন চার্ট সবচেয়ে বেশি উপযোগী। আপনার সাফল্যের শতাংশের চার্টে হাইলাইট করা প্রতিটি ত্রুটির জন্য, আপনার ত্রুটির ব্রেকডাউনে একটি ত্রুটি কোড দেখানো হয়। Google Home platform (GHP)-এর মাধ্যমে ফ্ল্যাগ করা সমস্যা এবং কীভাবে সেগুলির সমাধান করবেন তা নিচের সারণিতে দেখতে পাবেন।

সাধারণ প্ল্যাটফর্মের ত্রুটি কোড

এখানে কিছু সাধারণ ত্রুটি কোড দেওয়া হল যা আপনি নিজের প্রোজেক্ট লগে দেখতে পেতে পারেন। GHP-এর মাধ্যমে ধরা পড়া সমস্যা শনাক্ত করতে এটি সাহায্য করে। সমস্যার সমাধানকরণ সম্পর্কে তথ্য জানতে নিচের সারণী দেখুন। সমস্যার কোডের সম্পূর্ণ তালিকা দেখতে, সমস্যা ও ব্যতিক্রম দেখুন।

সমস্যার কোড বিবরণ পার্টনার অ্যাকশনেবল
AGENT_ISSUE পার্টনারের ক্লাউড এজেন্টের সাথে সাধারণ সমস্যা হয়েছে।

আপনার ফুলফিলমেন্ট লগে হ্যান্ডেল না করা ব্যতিক্রম বা ক্র্যাশ চেক করুন।
হ্যাঁ
AGENT_UNAVAILABLE_ERROR Google পার্টনারের ফুলফিলমেন্ট URL-এ পৌঁছাতে পারেনি।

আপনার সার্ভার অনলাইন আছে কিনা, ফায়ারওয়াল Google-কে ব্লক করছে কিনা এবং URL সঠিক কিনা তা নিশ্চিত করুন।
হ্যাঁ
COMMAND_FAILED কমান্ড এক্সিকিউট করার সময় একটি সাধারণ সমস্যা হয়েছে।

মূল কারণ খুঁজে পেতে, নির্দিষ্ট requestId-এর জন্য আপনার ফুলফিলমেন্ট লগ চেক করুন।
হ্যাঁ
EXECUTION_BACKEND_FAILURE_URL_ERROR Google আপনার ফুলফিলমেন্ট থেকে HTTP 4xx (401 ছাড়া) সমস্যা পেয়েছে।

403, 404 বা 400 রেসপন্সের জন্য আপনার ওয়েব সার্ভার লগ চেক করুন।
হ্যাঁ
EXECUTION_BACKEND_FAILURE_URL_TIMEOUT আপনার পরিষেবায় পৌঁছানোর চেষ্টা করার সময় Google-এর অনুরোধ টাইম-আউট হয়ে গেছে।

আপনার পরিষেবা অনলাইন আছে, কানেকশন গ্রহণ করছে এবং ক্ষমতার অতিরিক্ত নয় তা যাচাই করুন। এছাড়াও, টার্গেট ডিভাইস চালু, অনলাইন ও সিঙ্ক করা আছে কিনা তা যাচাই করুন।
হ্যাঁ
EXECUTION_BACKEND_FAILURE_URL_ROBOTED robots.txt বা নিরাপত্তা ফিল্টার দ্বারা ফুলফিলমেন্ট URL ব্লক করা হয়েছে।

আপনার ফুলফিলমেন্ট এন্ডপয়েন্ট Google-এর ক্রলার/পরিষেবার জন্য অ্যাক্সেসযোগ্য কিনা তা নিশ্চিত করুন।
হ্যাঁ
EXECUTION_BACKEND_FAILURE_URL_UNREACHABLE Google আপনার ফুলফিলমেন্ট পরিষেবা থেকে HTTP 5xx সংক্রান্ত সমস্যা পেয়েছে।

নিশ্চিত করুন যে এন্ডপয়েন্ট URL পরিষেবা স্থিতিশীল, সঠিক এবং সর্বজনীনভাবে অ্যাক্সেসযোগ্য, পরিষেবা চলছে। Google Cloud Logging-এ requestId ব্যবহার করে আপনার স্মার্ট হোম পরিষেবার লগ চেক করুন। হেল্থ চেক ও রিট্রাই হ্যান্ডলিং যোগ করুন। সার্ভার ক্র্যাশ, টাইমআউট বা ৫০২/৫০৩ গেটওয়ে সংক্রান্ত সমস্যা খতিয়ে দেখুন।
হ্যাঁ
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 আপনার পরিষেবা থেকে HTTP 401 ত্রুটি কোড পেয়েছে।

অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়নি, তবে আপনার পরিষেবা এটিকে বাতিল করেছে। আপনার স্মার্ট হোম পরিষেবা লগ চেক করতে Google Cloud Logging-এ requestId ব্যবহার করুন।
INVALID_JSON উত্তরের স্ট্রাকচারটি ভুল (যেমন, বাধ্যতামূলক ফিল্ড দেওয়া নেই)।

ইনটেন্ট JSON স্কিমা-এর সাথে আপনার উত্তর যাচাই করুন।
হ্যাঁ
MALFORMED_JSON JSON স্ট্রাকচার ভেঙে গেছে (যেমন, বন্ধ না করা স্ট্রিং বা অবজেক্ট)।

নিশ্চিত করুন যে আপনার ফুলফিলমেন্ট উত্তরগুলি সিরিয়ালাইজ করার জন্য একটি স্ট্যান্ডার্ড JSON লাইব্রেরি ব্যবহার করে।
হ্যাঁ
NOT_IMPLEMENTED পার্টনার অনুরোধ করা ইনটেন্ট বা বৈশিষ্ট্য প্রয়োগ করেনি।

আপনার SYNC উত্তরে শুধুমাত্র সেইসব বৈশিষ্ট্য অন্তর্ভুক্ত করুন যেগুলি আপনি সম্পূর্ণরূপে প্রয়োগ করেছেন।
হ্যাঁ
OPEN_AUTH_FAILURE ব্যবহারকারীর অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেছে এবং Google সেটি রিফ্রেশ করতে পারছে না, অথবা Google আপনার পরিষেবা থেকে HTTP 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 অবজেক্ট হিসেবে পার্স করা যায়নি।

আপনার HTTP রেসপন্স বডিতে ট্রেলিং অক্ষর বা নন-JSON কন্টেন্ট আছে কিনা চেক করুন। নিশ্চিত করুন যে payload.commands[] হল আইডি, স্ট্যাটাস এবং ঐচ্ছিক স্ট্যাটাস সহ একটি সঠিক JSON অবজেক্ট।
হ্যাঁ
REQUEST_ID_NOT_FOUND Google এই অনুরোধের জন্য ইন্টার্নাল ট্র্যাকিং আইডি খুঁজে পায়নি।

সাধারণত ইন্টার্নাল প্ল্যাটফর্ম সংক্রান্ত সমস্যা; স্পাইক মনিটর করুন এবং সহায়তা টিমের সাথে যোগাযোগ করুন।
হ্যাঁ
RESOURCE_UNAVAILABLE অনুরোধ করা রিসোর্স (ডিভাইস বা বৈশিষ্ট্য) উপলভ্য নেই।

ডিভাইস "ব্যস্ত" আছে কিনা বা সাময়িকভাবে বন্ধ করা হয়েছে কিনা তা চেক করুন।
হ্যাঁ
RESPONSE_TIMEOUT ফুলফিলমেন্ট পরিষেবা ৯ সেকেন্ডের মধ্যে উত্তর দিতে পারেনি।

ব্যাকএন্ড লেটেন্সি অপ্টিমাইজ করুন; ধীরগতির DB কোয়েরি বা আঞ্চলিক নেটওয়ার্ক ল্যাগ চেক করুন।
হ্যাঁ
RESPONSE_UNAVAILABLE পার্টনার ফুলফিলমেন্ট URL থেকে কোনও উত্তর পাওয়া যায়নি।

আপনার পরিষেবা চলছে এবং এন্ডপয়েন্ট ক্র্যাশ করছে না তা যাচাই করুন।
হ্যাঁ
TIMEOUT ইনটেন্ট প্রসেস করার সময় সাধারণ টাইম-আউট হয়েছে।

আপনার ক্লাউড ও ডিভাইস হাবের মধ্যে ইন্টার্নাল পরিষেবা টাইম-আউটের জন্য লগ চেক করুন।
হ্যাঁ

সার্চ লগ

মেট্রিক্স ব্যবহার করে আপনার ইন্টিগ্রেশন মনিটর করার ব্যাপারে আপনি স্বচ্ছন্দ হয়ে গেলে, পরবর্তী ধাপ হল Cloud Logging ব্যবহার করে নির্দিষ্ট সমস্যার সমাধান করা। ত্রুটি লগ হল JSON-এর মতো এন্ট্রি যাতে সময়, ত্রুটি কোড ও স্মার্ট হোম ইনটেন্ট সংক্রান্ত বিবরণ সহ প্রয়োজনীয় তথ্য থাকে।

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 কীভাবে ব্যবহার করতে হয় সেই সম্পর্কে ব্যবহারকারীর নির্দেশিকা প্রদান করি, যা আপনাকে কার্যকরভাবে আপনার পরিবর্তনগুলি পরীক্ষা করার মাধ্যমে পরিচালনা করে।

লার্নিং রিসোর্স

এই ডকুমেন্টে আপনার স্মার্ট হোম অ্যাকশনে সমস্যার সমাধান করার ধাপগুলি দেওয়া আছে। এছাড়াও, ডিবাগিং সম্পর্কে আরও জানতে আমাদের কোডল্যাব চেক করতে পারেন: