تحديد مشاكل الدمج وحلّها

Google Cloud توفّر لك الأدوات اللازمة لمراقبة موثوقية مشاريعك باستخدام Google Cloud Monitoring وتحديد المشاكل وحلّها باستخدام Google Cloud Logging سجلّات الأخطاء. عند حدوث تعذّر في تنفيذ طلبات المستخدِمين، سجِّل مسار الإحالة الناجحة في "إحصاءات Google Home" هذا التعذّر في المقاييس، وسجِّل سجلّ أخطاء في سجلّات مشروعك.

هناك خطوتان لتحديد المشاكل وحلّها:

  1. مراقبة حالة مشاريعك باستخدام مقاييس المنزل الذكي
  2. يمكنك التحقيق في المشاكل من خلال الاطّلاع على أوصاف الأخطاء التفصيلية في سجلّات الأخطاء.

وتتشابه العملية في عملية الدمج داخل التطبيق باستخدام Local Home SDK. بعد أن تتقن عملية تحديد المشاكل وحلّها، يمكنك التبديل بسهولة بين المقاييس والسجلات للحصول على إحصاءات عن الأخطاء.

يمكنك اختياريًا اختبار الإجراء من خلال مشاركته مع مستخدمين آخرين. احرص على معالجة الأخطاء والاستثناءات بشكلٍ مناسب.

أخطاء المراقبة

يمكنك استخدام Google Cloud Monitoring dashboard للوصول إلى مقاييس مشروعك. هناك بعض الرسوم البيانية الرئيسية التي تُعدّ مفيدة بشكلٍ خاص لمراقبة الجودة وتصحيح الأخطاء:

  • الرسم البياني نسبة النجاح هو الرسم البياني الأول الذي يجب البدء به عند رصد موثوقية مشاريعك. يمكن أن تشير الانخفاضات في هذا الرسم البياني إلى انقطاع الخدمة جزئيًا أو كليًا لقاعدة المستخدمين. ننصحك بمراقبة هذا الرسم البياني عن كثب بحثًا عن أيّ مخالفات بعد كل تغيير أو تعديل على مشروعك.
  • يُعدّ الرسم البياني متوسط وقت الاستجابة في الشريحة المئوية التسعون مؤشرًا مهمًا لمستوى أداء دمج Cloud-to-cloud بالنسبة إلى المستخدمين. قد تشير التقلبات المفاجئة في هذا الرسم البياني إلى أنّ أنظمتك قد لا تتمكّن من معالجة الطلبات. ننصحك بالاطّلاع على هذا الرسم البياني بصفة دورية للتعرّف على أي سلوك غير متوقّع.
  • تكون الرسوم البيانية تقسيم الأخطاء مفيدة جدًا عند تحديد مشاكل عمليات الدمج وحلّها. لكل خطأ مميّز في الرسم البياني لنسبة النجاح، يتم عرض رمز خطأ في تفاصيل الأخطاء. يمكنك الاطّلاع على الأخطاء التي تمّ الإبلاغ عنها بواسطة Google Home platform وكيفية تحديد المشاكل وحلّها في الجدول أدناه.

رموز خطأ النظام الأساسي

في ما يلي بعض رموز الأخطاء الشائعة التي قد تظهر لك في سجلات مشاريعك بهدف تحديد المشاكل التي رصدها Google Home platform. يُرجى الرجوع إلى الجدول التالي للحصول على معلومات عن تحديد المشاكل وحلّها.

رمز الخطأ الوصف
BACKEND_FAILURE_URL_ERROR تلقّت Google رمز خطأ HTTP 4xx غير 401 من خدمتك.

استخدِم requestId في "تسجيلات Google Cloud Platform" للاطّلاع على سجلّات خدمة المنزل الذكي.
BACKEND_FAILURE_URL_TIMEOUT انتهت مهلة طلب Google عند محاولة الوصول إلى خدمتك.

تأكَّد من أنّ خدمتك متاحة على الإنترنت وأنّها تقبل عمليات الربط وأنّها لا تتجاوز طاقتها الاستيعابية. بالإضافة إلى ذلك، تأكَّد من أنّ الجهاز المستهدف مشغّل ومتّصل بالإنترنت ومزامن.
BACKEND_FAILURE_URL_UNREACHABLE تلقّت Google رمز خطأ HTTP 5xx من خدمتك.

استخدِم requestId في "تسجيلات Google Cloud Platform" للاطّلاع على سجلّات خدمة المنزل الذكي.
DEVICE_NOT_FOUND الجهاز غير متوفّر على جانب خدمة الشريك.

يشير ذلك عادةً إلى حدوث خطأ في مزامنة البيانات أو حالة تنافسية.
GAL_BAD_3P_RESPONSE لا يمكن لخدمة Google تحليل الاستجابة الواردة من خدمة ربط الحساب بسبب تنسيق أو قيم غير صالحة في الحمولة.

استخدِم requestId في "تسجيلات Google Cloud Platform" للاطّلاع على سجلّات الأخطاء في خدمة ربط الحسابات.
GAL_INTERNAL حدث خطأ داخلي في Google عندما حاولت Google استرداد رمز مفتاح علامات التبويب للوصول.

إذا لاحظت زيادة في معدّل ظهور هذا الخطأ في "تسجيلات Google Cloud Platform"، يُرجى التواصل معنا للحصول على مزيد من المعلومات.
GAL_INVALID_ARGUMENT حدث خطأ داخلي في Google عندما حاولت Google استرداد رمز مفتاح علامات التبويب للوصول.

إذا لاحظت زيادة في معدّل ظهور هذا الخطأ في "تسجيلات Google Cloud Platform"، يُرجى التواصل معنا للحصول على مزيد من المعلومات.
GAL_NOT_FOUND يتم إبطال رموز وصول المستخدم ورموز إعادة التحميل المخزّنة في Google ولا يمكن إعادة تحميلها بعد ذلك. على المستخدم إعادة ربط حسابه لمواصلة استخدام خدمتك.

إذا لاحظت زيادة في معدّل ظهور هذا الخطأ في "تسجيلات Google Cloud Platform"، يُرجى التواصل معنا للحصول على مزيد من المعلومات.
GAL_PERMISSION_DENIED حدث خطأ داخلي في Google عندما لم تتم الموافقة على مشاركة الرمز المميّز.

إذا لاحظت زيادة في معدّل ظهور هذا الخطأ في "تسجيلات Google Cloud Platform"، يُرجى التواصل معنا للحصول على مزيد من المعلومات.
GAL_REFRESH_IN_PROGRESS انتهت صلاحية رمز مفتاح الوصول الخاص بالمستخدم، وهناك محاولة أخرى متزامنة جارية لمحاولة إعادة تحميله.

هذه ليست مشكلة ولا يلزم اتّخاذ أي إجراء.
INVALID_AUTH_TOKEN تلقّت Google رمز الخطأ HTTP 401 من خدمتك.

لم تنته صلاحية رمز الوصول ولكن خدمتك أبطلته. استخدِم requestId في "تسجيلات Google Cloud Platform" للاطّلاع على سجلّات خدمات المنزل الذكي.
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.

تحقّق من جميع الحقول في ردّ الطلب بحثًا عن أحرف غير مقصودة أو brackets (قوسَين) غير متطابقَين أو أخطاء في التنسيق. قد تكون بعض أحرف يونيكود غير متوافقة. تأكَّد أيضًا من أنّ الاستجابة منسَّقة بشكلٍ صحيح على هيئة عنصر JSON.
PROTOCOL_ERROR تعذّرت معالجة الطلب.

استخدِم requestId في "تسجيلات Google Cloud" للاطّلاع على سجلات خدمة المنزل الذكي.
RESPONSE_TIMEOUT انتهت مهلة الطلب أثناء انتظار الردّ.

تبلغ مدة المهلة لإرسال الرد 9 ثوانٍ من وقت إرسال الطلب. يُرجى الردّ في غضون هذه المدة الزمنية.
RESPONSE_UNAVAILABLE لم يتم تلقّي أيّ استجابة أو لا يشير الردّ إلى الحالة.

يجب أن تكون الردود على طلبات تنفيذ المهام منظَّمة وفقًا لمستندات المنزل الذكي وأن تشير إلى الحالة.
TRANSIENT_ERROR الخطأ العابر هو خطأ يتم حلّه تلقائيًا.

في أغلب الأحيان، تظهر هذه الأخطاء على شكل انقطاع الاتصال بجهاز أو خدمة. إذا تعذّر أيضًا فتح اتصالات جديدة بالخادم

سجلات البحث

بعد أن تصبح مُلمًّا بمراقبة عمليات الدمج باستخدام المقاييس، تبدأ الخطوة التالية في تحديد المشاكل وحلّها باستخدام Cloud Logging. سجلّ الأخطاء هو إدخال يشبه ملف JSON يحتوي على حقول تحتوي على معلومات مفيدة، مثل الوقت ورمز الخطأ والتفاصيل المتعلّقة بنية المنزل الذكي الأصلية.

هناك أنظمة متعدّدة في Google Cloud تُرسِل السجلات إلى مشروعك في جميع الأوقات. عليك كتابة طلبات بحث لفلترة السجلّات والعثور على الطلبات التي تحتاج إليها. يمكن أن تستند طلبات البحث إلى نطاق زمني أو مورد أو شدة السجلّ أو الإدخالات المخصّصة.

طلب البحث في سجلات Cloud

يمكنك استخدام أزرار طلبات البحث لمساعدتك في إنشاء فلاترك المخصّصة.

إنشاء طلبات بحث في سجلّات السحابة الإلكترونية

لتحديد نطاق زمني، انقر على زر اختيار النطاق الزمني واختَر أحد الخيارات المقدَّمة. سيؤدي ذلك إلى فلترة السجلات وعرض السجلات التي نشأت في النطاق الزمني المحدّد.

لتحديد مورد، انقر على القائمة المنسدلة المورد، ثم اختَر مشروع إجراءات "مساعد Google". يؤدي ذلك إلى إضافة فلتر في طلب البحث لعرض السجلات التي تأتي من مشروعك.

استخدِم الزر درجة الخطورة لفلترة السجلّ حسب الطوارئ والمعلومات وتصحيح الأخطاء وغيرها من مستويات السجلّ المتعلّقة بدرجة الخطورة.

يمكنك أيضًا استخدام حقل "طلب البحث" في 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، والذي يرشدك خلال اختبار التغييرات بفعالية.

موارد التعلُّم

يقدّم هذا المستند خطوات تحديد وحلّ المشاكل المتعلّقة بالأخطاء في تطبيق "العمل" في "المنزل الذكي". يمكنك أيضًا الاطّلاع على ورشات عمل الترميز لمعرفة المزيد من المعلومات عن تصحيح الأخطاء: