عیب یابی خطاهای ادغام

Google Cloud ابزارهایی را برای نظارت بر قابلیت اطمینان پروژه های خود با Google Cloud Monitoring و اشکال زدایی مشکلات با گزارش های خطای Google Cloud Logging در اختیار شما قرار می دهد. هر زمان که هنگام تحقق اهداف کاربر، شکستی رخ دهد، خط لوله Google Home Analytics آن شکست را در معیارهای شما ثبت می‌کند و یک گزارش خطا در گزارش‌های پروژه شما منتشر می‌کند.

دو مرحله برای عیب یابی خطا وجود دارد:

  1. وضعیت پروژه های خود را با معیارهای خانه هوشمند نظارت کنید.
  2. با بررسی توضیحات دقیق خطا در گزارش های خطا، مسائل را بررسی کنید.

این فرآیند برای ادغام محلی با استفاده از Local Home SDK مشابه است. پس از تسلط بر جریان عیب‌یابی، می‌توانید به راحتی بین معیارها و گزارش‌ها به عقب و جلو بروید و بینش‌هایی درباره خطاهای خود به دست آورید.

به صورت اختیاری، می‌توانید Action خود را با اشتراک‌گذاری آن با سایر کاربران آزمایش کنید. اطمینان حاصل کنید که خطاها و استثناها را به درستی مدیریت می کنید .

خطاهای مانیتورینگ

می توانید از Google Cloud Monitoring dashboard برای دسترسی به معیارهای پروژه خود استفاده کنید. چند نمودار کلیدی وجود دارد که به ویژه برای نظارت بر کیفیت و اشکال زدایی مفید هستند:

  • نمودار نرخ موفقیت اولین نموداری است که از زمانی شروع می شود که شما قابلیت اطمینان پروژه های خود را نظارت می کنید. افت در این نمودار می تواند نشان دهنده قطعی برای بخشی یا کل پایگاه کاربر شما باشد. توصیه می کنیم پس از هر تغییر یا به روز رسانی پروژه خود، این نمودار را از نظر هرگونه بی نظمی به دقت زیر نظر داشته باشید.
  • نمودار 95 درصد تاخیر یک شاخص مهم برای عملکرد یکپارچه سازی Cloud-to-cloud شما برای کاربران شما است. نوسانات ناگهانی در این نمودار ممکن است نشان دهد که سیستم شما ممکن است نتواند به درخواست ها پاسخ دهد. توصیه می شود به طور دوره ای این نمودار را بررسی کنید تا رفتار غیرمنتظره ای را مشاهده کنید.
  • نمودارهای شکست خطا هنگام عیب یابی مشکلات ادغام های شما بسیار مفید هستند. برای هر خطای برجسته شده در نمودار درصد موفقیت شما، یک کد خطا در تفکیک خطا نمایش داده می شود. در جدول زیر می توانید خطاهای پرچم گذاری شده توسط Google Home platform و نحوه عیب یابی آنها را مشاهده کنید.

کدهای خطای پلتفرم

در اینجا برخی از کدهای خطای رایج وجود دارد که ممکن است در گزارش‌های پروژه خود مشاهده کنید تا مشکلاتی را که توسط Google Home platform شناسایی می‌شوند، شناسایی کنید. لطفا برای اطلاعات عیب یابی به جدول زیر مراجعه کنید.

کد خطا توضیحات
BACKEND_FAILURE_URL_ERROR Google یک کد خطای HTTP 4xx غیر از 401 از سرویس شما دریافت کرده است.

از requestId در GCP Logging برای بررسی گزارش های خدمات خانه هوشمند خود استفاده کنید.
BACKEND_FAILURE_URL_TIMEOUT زمان درخواست Google هنگام تلاش برای دسترسی به سرویس شما تمام شد.

بررسی کنید که سرویس شما آنلاین است، اتصالات را می پذیرد، و ظرفیت آن بیش از حد نیست. علاوه بر این، بررسی کنید که دستگاه مورد نظر روشن، آنلاین و همگام‌سازی شده باشد.
BACKEND_FAILURE_URL_UNREACHABLE Google یک کد خطای HTTP 5xx از سرویس شما دریافت کرده است.

از requestId در GCP Logging برای بررسی گزارش های خدمات خانه هوشمند خود استفاده کنید.
DEVICE_NOT_FOUND دستگاه در سمت سرویس شریک وجود ندارد.

این معمولاً نشان دهنده نقص در همگام سازی داده ها یا وضعیت مسابقه است.
GAL_BAD_3P_RESPONSE به دلیل فرمت یا مقادیر نامعتبر در بار، Google نمی تواند پاسخ سرویس پیوند حساب شما را تجزیه کند.

از requestId در GCP Logging برای بررسی گزارش های خطا در سرویس پیوند حساب خود استفاده کنید.
GAL_INTERNAL هنگامی که Google سعی کرد یک نشانه دسترسی را بازیابی کند، یک خطای داخلی Google رخ داد.

در صورت مشاهده افزایش نرخ این خطا در GCP Logging، برای اطلاعات بیشتر با ما تماس بگیرید.
GAL_INVALID_ARGUMENT هنگامی که Google سعی کرد یک نشانه دسترسی را بازیابی کند، یک خطای داخلی Google رخ داد.

در صورت مشاهده افزایش نرخ این خطا در GCP Logging، برای اطلاعات بیشتر با ما تماس بگیرید.
GAL_NOT_FOUND نشانه‌های دسترسی کاربر و نشانه‌های تازه‌سازی ذخیره شده در Google باطل هستند و دیگر نمی‌توان آن‌ها را بازخوانی کرد. کاربر برای ادامه استفاده از سرویس شما باید حساب خود را مجدداً پیوند دهد.

در صورت مشاهده افزایش نرخ این خطا در GCP Logging، برای اطلاعات بیشتر با ما تماس بگیرید.
GAL_PERMISSION_DENIED وقتی اشتراک‌گذاری رمز مجاز نیست، یک خطای داخلی Google روی داد.

در صورت مشاهده افزایش نرخ این خطا در GCP Logging، برای اطلاعات بیشتر با ما تماس بگیرید.
GAL_REFRESH_IN_PROGRESS رمز دسترسی کاربر منقضی شده است و تلاش همزمان دیگری برای به‌روزرسانی آن در حال انجام است.

این یک موضوع نیست و نیازی به اقدامی نیست.
INVALID_AUTH_TOKEN گوگل کد خطای HTTP 401 را از سرویس شما دریافت کرده است.

رمز دسترسی منقضی نشده است اما سرویس شما آن را باطل کرده است. از requestId در GCP Logging برای بررسی گزارش های خدمات خانه هوشمند خود استفاده کنید.
INVALID_JSON پاسخ JSON قابل تجزیه یا درک نیست.

ساختار پاسخ JSON خود را برای نحو نامعتبر بررسی کنید، مانند پرانتزها، کاماهای از دست رفته، نویسه‌های نامعتبر.
OPEN_AUTH_FAILURE رمز دسترسی کاربر منقضی شده است و Google قادر به بازخوانی آن نیست یا Google کد خطای HTTP 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 عدم رسیدگی به درخواست

از requestId در Google Cloud Logging برای بررسی گزارش های خدمات خانه هوشمند خود استفاده کنید.
RESPONSE_TIMEOUT زمان درخواست در انتظار پاسخ به پایان رسیده است.

بازه زمانی ارسال پاسخ 9 ثانیه از زمان ارسال درخواست است. مطمئن شوید که در این بازه زمانی پاسخ ارسال کنید.
RESPONSE_UNAVAILABLE پاسخی دریافت نمی شود یا پاسخ وضعیت را نشان نمی دهد.

پاسخ‌ها به درخواست‌های تحقق هدف باید بر اساس اسناد خانه هوشمند ساختار یافته و وضعیت را نشان دهد.
TRANSIENT_ERROR خطای گذرا خطایی است که خود به خود برطرف می شود.

معمولاً این خطاها به صورت قطع شدن اتصال به دستگاه یا سرویس ظاهر می شوند. همچنین اگر اتصالات جدید به سرور قابل باز شدن نباشد.

جستجوی گزارش‌ها

هنگامی که با استفاده از معیارها به راحتی بر ادغام‌های خود نظارت می‌کنید، گام بعدی عیب‌یابی خطاهای خاص با استفاده از Cloud Logging است. گزارش خطا یک ورودی JSON مانند با فیلدهایی است که حاوی اطلاعات مفیدی مانند زمان، کد خطا و جزئیات مربوط به هدف خانه هوشمند مبدأ است.

چندین سیستم در Google Cloud وجود دارد که همیشه گزارش‌ها را به پروژه شما ارسال می‌کنند. برای فیلتر کردن گزارش های خود و پیدا کردن موارد مورد نیاز، باید پرس و جوهایی بنویسید . پرس و جوها می توانند بر اساس محدوده زمانی ، منبع ، شدت گزارش یا ورودی های سفارشی باشند.

جستجوی گزارش‌های ابری

می توانید از دکمه های پرس و جو برای کمک به ساخت فیلترهای سفارشی خود استفاده کنید.

ساخت پرس و جوهای Cloud Log

برای تعیین محدوده زمانی ، روی دکمه انتخاب محدوده زمانی کلیک کنید و یکی از گزینه های ارائه شده را انتخاب کنید. این گزارش‌ها را فیلتر می‌کند و مواردی را که در محدوده زمانی انتخاب‌شده منشأ می‌گیرند نشان می‌دهد.

برای تعیین یک منبع ، روی منوی کشویی Resource کلیک کنید، سپس Google Assistant Action Project را انتخاب کنید. این یک فیلتر را به درخواست شما اضافه می کند تا گزارش هایی را که از پروژه شما منشا می گیرند نشان دهد.

از دکمه Severity برای فیلتر کردن بر اساس موارد اضطراری ، اطلاعات ، اشکال‌زدایی و سایر سطوح گزارش شدت استفاده کنید.

همچنین می توانید از قسمت Query در Logs Explorer برای وارد کردن ورودی های سفارشی استفاده کنید. موتور پرس و جو استفاده شده توسط این فیلد هم از پرس و جوهای اساسی مانند تطبیق رشته ها و هم انواع پیشرفته تری از پرس و جوها از جمله مقایسه کننده ها ( <, >=, != ) و عملگرهای بولی ( AND, OR, NOT ) پشتیبانی می کند.

به عنوان مثال، ورودی سفارشی زیر خطاهایی را که از نوع دستگاه LIGHT نشات می‌گیرد را برمی‌گرداند:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

برای یافتن نمونه‌های بیشتر برای جستجوی گزارش‌ها به طور موثر از کتابخانه Query دیدن کنید.

رفع تست

هنگامی که خطاها را شناسایی کردید و به‌روزرسانی‌ها را برای رفع آنها اعمال کردید، توصیه می‌کنیم رفع‌های خود را به‌طور کامل با Google Home Test Suite آزمایش کنید. ما یک راهنمای کاربر در مورد نحوه استفاده از Test Suite ارائه می دهیم که شما را در آزمایش موثر تغییرات خود راهنمایی می کند.

منابع یادگیری

این سند مراحل عیب یابی خطاها در اقدام خانه هوشمند را ارائه می دهد. همچنین می‌توانید برای کسب اطلاعات بیشتر در مورد اشکال‌زدایی، کدهای ما را بررسی کنید: