معیارهای مبتنی بر گزارش برای خانه هوشمند

1. قبل از شروع

همانطور که در اشکال‌زدایی کدهای خانه هوشمند پوشش داده‌ایم، معیارها و گزارش‌ها را برای پروژه‌های خانه هوشمند شما منتشر می‌کنیم. معیارها به شما کمک می‌کنند تا مشخص کنید «اقدام خانه هوشمند» در کجا مشکل دارد، و گزارش‌ها هنگام شیرجه عمیق برای حل این مشکلات مفید هستند.

848f483bfcd2997a.png

علاوه بر معیارهایی که برای پروژه شما در دسترس قرار می‌دهیم، می‌توانید معیارهای خود را با استفاده از معیارهای Log-based از Google Cloud Platform ایجاد کنید. این به شما امکان می دهد الگوهای خاصی را در لاگ های خود نظارت کنید و به طور موثر مشکلات کیفیت را رفع اشکال کنید.

پیش نیازها

چیزی که یاد خواهید گرفت

  • نحوه نوشتن پرس و جوهای موثر برای فیلتر کردن گزارش های خطای خانه هوشمند
  • نحوه ایجاد معیارهای مبتنی بر گزارش برای تولید معیارها از پرس و جوهای خود
  • نحوه ایجاد نمودارها و داشبوردها از معیارهای مبتنی بر گزارش برای نظارت

2. کار با سیاهههای مربوط

همانطور که به طور خلاصه در اشکال زدایی Codelab خانه هوشمند توضیح دادیم، کار با گزارش ها کلید موفقیت پروژه شما است. ابزارهای عالی در Google Cloud Platform برای نظارت و تجزیه و تحلیل گزارش های شما وجود دارد. برای دسترسی به همه گزارش‌های موجود در پروژه خود، می‌توانید از Logs Explorer استفاده کنید.

دسترسی به گزارش‌ها

اولین قدم برای دسترسی به گزارش‌های خود این است که به Google Cloud Platform وارد شوید و پروژه خود را انتخاب کنید. با استفاده از منوی کناری، با رفتن از مسیر Operations > Logging > Logs Explorer به Logs Explorer بروید. پس از باز کردن ابزار، باید این نمای را ببینید:

78982d8b6d19b827.png

Logs Explorer از دو بخش اصلی تشکیل شده است: یک بخش برای نوشتن پرس و جوهای شما در بالا ( Query builder ) و یک منطقه برای نمایش نتایج منطبق ( نتایج Query ).

بسیاری از مؤلفه‌های مختلف در سراسر Google به طور پیش‌فرض گزارش‌ها را در پروژه شما می‌نویسند. به منظور یافتن و کار با گزارش‌هایی که از ادغام خانه هوشمند شما می‌آیند، باید عبارت‌های سفارشی بنویسید.

نوشتن پرس و جو

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

همچنین، به همه گزارش‌ها یک سطح شدت در هنگام ایجاد اختصاص داده می‌شود. با گزارش‌های خانه هوشمند، ما از سطح ERROR برای گزارش‌هایی که خطاها و استثناها را نشان می‌دهند، و از سطح DEBUG برای هر چیز دیگری استفاده می‌کنیم.

در مثال زیر یک پرس و جو برای فیلتر کردن گزارش‌هایی که فقط از پلتفرم ما ارائه می‌شوند و خطاها را نشان می‌دهند، می‌نویسیم:

753bfe72a9f8e959.png

پس از اتمام نوشتن پرس و جو، روی دکمه Run query کلیک کنید تا پرس و جو آغاز شود. این باید خطاهای ناشی از ادغام خانه هوشمند شما را نشان دهد:

3ef42da5a6c322e1.png

همانطور که می بینید ما تعدادی خطا داریم که در زمان های مختلف در یک ساعت گذشته رخ داده است. هر خط نشان دهنده یک گزارش خطای واحد است. می‌توانید روی گزارش‌های جداگانه کلیک کنید و فیلدهای تودرتو را گسترش دهید تا اطلاعات موجود در آن را ببینید.

با استفاده از هیستوگرام

Logs Explorer یک ویژگی مفید هیستوگرام را برای مشاهده توزیع زمانی سیاهههای مربوط به درخواست شما ارائه می دهد. برای فعال کردن هیستوگرام، از دکمه‌های گوشه سمت راست بالای صفحه، روی PAGE LAYOUT کلیک کنید و برای فعال کردن ویژگی ، هیستوگرام را علامت بزنید.

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

همانطور که در تصویر بالا می بینید، چندین خطا داریم که در یک ساعت گذشته به صورت پراکنده دسته بندی شده اند. به نظر می رسد آنها سه خوشه را در حدود ساعت 1:45، 2:00 و 2:15 بعد از ظهر تشکیل می دهند. هیستوگرام می تواند به شما کمک کند تا الگوهایی را شناسایی کنید که دیدن آنها فقط با بررسی مقادیر مهر زمانی دشوار است.

در حال حاضر پرس و جوی که ما استفاده می کنیم بین گزارش ها تفاوتی قائل نمی شود و همه خطاهای ناشی از ادغام خانه هوشمند را به ما نشان می دهد. مواقعی وجود دارد که ممکن است بخواهید بین خطاها تفاوت قائل شوید، به عنوان مثال برای ردیابی الگوهای خطا ناشی از انواع یا ویژگی های دستگاه خاص. برای انجام این کار، نگاهی به نوشتن پرس و جوهای پیشرفته خواهیم انداخت.

پرس و جوهای پیشرفته

وقتی گزارش رویداد خانه هوشمند را بررسی می کنید، می بینید که فیلدهای مختلفی وجود دارد که می توانید اطلاعات را از آنها جمع آوری کنید:

825c57c36800844e.png

action

  • trait : ویژگی دستگاه را توسط کاربر هدف قرار دهید (به عنوان مثال، OnOff، StartStop، Brightness)
  • actionType : حالت دانه ریز صفت (به عنوان مثال، روشن، خاموش، مکث، توقف، ازسرگیری)

device

  • deviceType : نوع دستگاه مورد نظر توسط کاربر (به عنوان مثال، نور، سوئیچ، واشر)

status

  • isSuccess : آیا نتیجه عمل موفق در نظر گرفته می شود (درست / نادرست)
  • statusType : کد وضعیت برای نتیجه اقدام (در صورت ناموفق بودن کد خطا را نشان می دهد)
  • externalDebugString : رشته اشکال زدایی برای عمل (خطا را با جزئیات شرح می دهد)

سایر زمینه ها

همچنین فیلدهای دیگری وجود دارد که می توانید اطلاعات را از آنها استخراج کنید:

  • requestId : یک شناسه منحصر به فرد مرتبط با درخواست (تولید شده توسط Google)
  • executionType : مسیر استفاده شده توسط درخواست (نشان دهنده Cloud یا Local)
  • latencyMsec : تأخیر درک شده برای درخواست در سرورهای Google (در msec)
  • locale : درخواست از کدام جفت زبان/منطقه ارسال می شود (به عنوان مثال، en-US، fr-FR)

با استفاده از فیلد صفت از لیست بالا، پرس و جوی خود را طوری تغییر می دهیم که فقط خطاهایی را که از صفت OnOff می آیند به صورت زیر شامل شود:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

پس از اجرای پرس و جوی به روز شده ما، سیستم گزارش ها را شناسایی می کند و نتیجه مربوطه را به ما نشان می دهد:

76176d7a41962341.png

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

3. معیارهای مبتنی بر گزارش

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

ایجاد یک متریک مبتنی بر گزارش

برای ایجاد یک متریک مبتنی بر گزارش، به عملیات > ورود به سیستم > معیارهای مبتنی بر گزارش بروید. این فهرستی از معیارهای مبتنی بر گزارش را نشان می دهد که قبلاً در پروژه شما موجود است. پس از کلیک بر روی دکمه CREATE METRIC ، صفحه ایجاد متریک مبتنی بر گزارش برای شما نمایش داده می شود:

296af6e7d8dcf6cf.png

دو نوع متریک اصلی وجود دارد: متریک شمارنده تعداد گزارش‌هایی را که با درخواست شما مطابقت دارند را می‌شمارد. یک متریک توزیع، توزیع زیربنایی را ردیابی می کند و عملیات آماری مانند میانگین، میانه و صدک 95 را امکان پذیر می کند.

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

f7f2093fa1bce2ac.png

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

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

همچنین می‌توانید روی دکمه پیش‌نمایش گزارش‌ها کلیک کنید تا نمای سریعی از گزارش‌های گذشته مطابق با فیلترتان را ببینید. پس از اتمام کار، می توانید بر روی دکمه CREATE METRIC کلیک کرده و به بخش بعدی بروید.

مشاهده داده های متریک مبتنی بر گزارش

اکنون که متریک مبتنی بر گزارش ما ایجاد شده است، در بخش معیارهای تعریف شده توسط کاربر صفحه معیارهای مبتنی بر گزارش در دسترس خواهد بود.

1b2c88c18533fbcd.png

از منوی مربوط به متریک مبتنی بر گزارش (3 نقطه)، View in Metrics Explorer را انتخاب کنید تا داده های جمع آوری شده در متریک مبتنی بر گزارش را مشاهده کنید:

54a836fdc3a666a3.png

هنگامی که یک خطای جدید داشته باشیم، توسط متریک مبتنی بر گزارش ما ثبت می شود و در پنجره نمودار در Metrics Explorer نمایش داده می شود.

نظارت از طریق داشبوردهای سفارشی

هنگامی که می بینیم معیار جدید مبتنی بر گزارش ما طبق برنامه عمل می کند، وقت آن است که این نمای نمودار را در یک داشبورد سفارشی ذخیره کنیم. برای این کار، روی دکمه ذخیره نمودار در گوشه سمت راست بالای Metrics Explorer کلیک کنید. با این کار اعلانی برای نام‌گذاری نمودار ظاهر می‌شود و داشبوردی را که می‌خواهید در آن ذخیره کنید انتخاب کنید:

52329085f841782e.png

هنگامی که نمودار را در داشبورد ذخیره می کنیم، از آنجا به بعد می توانیم به راحتی به آن دسترسی داشته باشیم. برای دسترسی به لیست داشبوردهای موجود در پروژه خود، به Operations > Monitoring > Dashboards بروید.

44961e7cb3663341.png

ما نمودار خود را در داشبوردی به نام "Codelab Dashboard" ذخیره کرده ایم. با باز کردن آن نمای زیر نمایش داده می شود:

f7e025c27f30f996.png

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

4. تبریک می گویم

674c4f4392e98c1.png

تبریک می گویم! شما با موفقیت یاد گرفتید که چگونه پرس و جوهای خود را به معیارهای مبتنی بر گزارش تبدیل کنید و آنها را در داشبوردهای سفارشی برای نظارت ذخیره کنید.

مراحل بعدی

با ایجاد این Codelab، تمرینات زیر را امتحان کنید و منابع اضافی را کشف کنید:

  • راهنمای ایجاد معیارهای توزیع را برای ایجاد معیارهای گزارش بر اساس فیلدهای عددی مانند تأخیر بررسی کنید.
  • کتابخانه نمونه جستجوی ارائه شده توسط Google Cloud را مرور کنید تا برخی از فیلترهای پیچیده ای را که می توانید برای معیارهای مبتنی بر گزارش استفاده کنید، مشاهده کنید.