Google Cloud ابزارهایی را برای نظارت بر قابلیت اطمینان پروژه های خود با Google Cloud Monitoring و اشکال زدایی مشکلات با گزارش های خطای Google Cloud Logging در اختیار شما قرار می دهد. هر زمان که هنگام تحقق اهداف کاربر، شکستی رخ دهد، خط لوله Google Home Analytics آن شکست را در معیارهای شما ثبت میکند و یک گزارش خطا در گزارشهای پروژه شما منتشر میکند.
دو مرحله برای عیب یابی خطا وجود دارد:
- وضعیت پروژه های خود را با معیارهای خانه هوشمند نظارت کنید.
- با بررسی توضیحات دقیق خطا در گزارش های خطا، مسائل را بررسی کنید.
به صورت اختیاری، میتوانید 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 وجود دارد که همیشه گزارشها را به پروژه شما ارسال میکنند. برای فیلتر کردن گزارش های خود و پیدا کردن موارد مورد نیاز، باید پرس و جوهایی بنویسید . پرس و جوها می توانند بر اساس محدوده زمانی ، منبع ، شدت گزارش یا ورودی های سفارشی باشند.
می توانید از دکمه های پرس و جو برای کمک به ساخت فیلترهای سفارشی خود استفاده کنید.
برای تعیین محدوده زمانی ، روی
دکمه انتخاب محدوده زمانی کلیک کنید و یکی از گزینه های ارائه شده را انتخاب کنید. این گزارشها را فیلتر میکند و مواردی را که در محدوده زمانی انتخابشده منشأ میگیرند نشان میدهد.برای تعیین یک منبع ، روی منوی کشویی 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 ارائه می دهیم که شما را در آزمایش موثر تغییرات خود راهنمایی می کند.
منابع یادگیری
این سند مراحل عیب یابی خطاها در اقدام خانه هوشمند را ارائه می دهد. همچنین میتوانید برای کسب اطلاعات بیشتر در مورد اشکالزدایی، کدهای ما را بررسی کنید:
- اشکال زدایی Codelab خانه هوشمند : راهنمای شروع سریع برای رفع اشکال ادغام ابر خانه هوشمند.
- اشکال زدایی Local Home Codelab : راهنمای شروع سریع برای رفع اشکال ادغام محلی خانه هوشمند.