1. Прежде чем начать
Как мы уже рассказывали в практическом руководстве по отладке умного дома , мы публикуем метрики и журналы в ваши проекты умного дома. Метрики помогают определить, где возникают проблемы с вашим действием умного дома, а журналы полезны для более глубокого анализа и решения этих проблем.

Вы можете настроить оповещения, используя метрики, предоставленные вашему проекту, для автоматического мониторинга сбоев и получения уведомлений во время перебоев в работе сервиса. Мы публикуем метрику достоверности, которая позволит выявлять сбои в вашем проекте, и мы рассмотрим ее в этом практическом занятии вместе со всеми другими инструментами оповещения, доступными вам в Google Cloud.
Предварительные требования
- Имеет встроенную систему интеграции с системой «умный дом» .
- Завершено отладка практического занятия по созданию «умного дома» .
Что вы узнаете
- Как отслеживать проблемы с производительностью и сбои в работе сервиса на вашем проекте.
- Как создать оповещение на основе порогового значения и получать уведомления во время сбоев.
- Как использовать предоставленный вашему проекту показатель достоверности для обнаружения сбоев.
2. Мониторинг производительности
Мониторинг производительности имеет решающее значение для успешной интеграции с экосистемой Google Home. Мы предоставляем разработчикам умных домов в Google Cloud набор инструментов мониторинга. Вы можете использовать эти инструменты, чтобы оценить производительность своего проекта.
Доступ к панелям мониторинга
Первый шаг для доступа к вашим данным — это проверка панелей мониторинга Google Home. Для этого войдите в консоль Google Cloud и перейдите в раздел «Операции» > «Мониторинг» > «Панели мониторинга» . Вы увидите, что доступно несколько панелей мониторинга, и панели мониторинга для умного дома имеют префикс Google Home Analytics.

Мы создали отдельные панели мониторинга для каждого типа интеграции. Интеграции с облаком, локальными сервисами и Matter имеют свои собственные панели мониторинга, а данные о протоколах потоковой передачи с камер предоставляются на панели мониторинга «Качество камеры». Эти панели мониторинга будут содержать данные только в том случае, если у вас есть интеграция соответствующего типа, а также функционирующий проект, выполняющий запросы.
При открытии одной из этих панелей мониторинга вы увидите следующее:

Панели мониторинга содержат различные диаграммы, отображающие подробную информацию о запросах, обработанных вашим проектом. На каждой панели мониторинга интеграции вы увидите диаграмму, показывающую общее количество запросов, обработанных вашим проектом, диаграмму, показывающую процент успешных запросов для данного типа интеграции, а также несколько диаграмм, показывающих типы и характеристики задействованных устройств.
Для оценки эффективности действий вашей системы «умного дома» крайне важны три графика:

Во время сбоев обычно наблюдается тенденция к снижению процента успешных запросов и тенденция к его увеличению на графике распределения ошибок. Мониторинг процента успешных выполнений помогает заметить сбой, а анализ наиболее распространенных ошибок на графике распределения ошибок может помочь в отладке. Во время сбоев также может наблюдаться тенденция к увеличению задержки, что можно увидеть на графиках задержки запросов.
Обратите внимание, что представление с диаграммами по умолчанию, которое вы видите на панелях мониторинга Google Home Analytics, — это всего лишь представление, созданное нами для вашего проекта на основе данных метрик умного дома. Вы также можете использовать Metrics Explorer для создания собственных диаграмм на основе тех же базовых метрик и сохранять их на своих пользовательских панелях мониторинга.
Исследователь метрик
Metrics Explorer — это инструмент для визуализации срезов набора данных вашего проекта. Доступ к инструменту осуществляется в консоли Google Cloud по пути: Operations > Monitoring > Metrics Explorer .
Google Cloud предоставляет множество различных метрик «из коробки», включая некоторые, не связанные с умным домом. Метрики, которые мы предоставляем для умного дома, перечислены в ресурсе "actions.googleapis.com/smarthome_action/...", и их легко найти, введя "smarthome" в поле выбора метрик.

Поиск по запросу "умный дом" отобразит все метрики умного дома, которые мы предоставляем для вашего проекта. Подробную информацию по каждой из наших метрик вы можете найти на страницах "Мониторинг " и " Журналирование" в нашей документации.
Что касается мониторинга вашего проекта, самым простым показателем будет количество запросов (это дельта-метрика ). Эта метрика регистрирует запись для каждого запуска системы умного дома, инициированного вашими пользователями, и записывает такие поля, как тип устройства, характеристика, тип выполнения и поле статуса, отображающее результат.
При выборе этого показателя отобразится экран с данными по каждому сегменту, примерно следующий:

По сути, для каждой комбинации меток данных, присутствующих в этой метрике, существует сегмент, в котором регистрируется изменение (дельта) между предыдущим и текущим временными интервалами. Эти сегменты можно группировать или фильтровать, чтобы получить желаемый фрагмент данных. Кроме того, данные выравниваются по выбранным временным интервалам с помощью функции выравнивания (DELTA, MEAN, MEDIAN, SUM). Если не требуется иное, обычно используется выравнивание Delta с метрикой Delta.
Большинство диаграмм, доступных на панелях мониторинга Google Home Analytics, можно создать с помощью Metrics Explorer и сохранить для последующего доступа на пользовательской панели мониторинга. Для создания более сложных представлений, таких как диаграмма соотношений, потребуется использовать MQL — язык запросов мониторинга.
3. Показатели успеха
Что касается отслеживания успешности интеграции, вы можете использовать либо показатель успешности, который мы рассчитываем на основе количества запросов, в качестве базового индикатора, либо показатель уверенности в успехе для более специализированного подхода.
Показатель успешности
Показатель успешности рассчитывается для всех ваших интеграций путем деления количества успешных запросов на общее количество запросов. Вы можете получить к нему доступ на диаграмме «Показатель успешности выполнения» в панели аналитики Google Home.

Диаграмма «Коэффициент успешности выполнения» очень полезна для мониторинга производительности вашего проекта, но не очень полезна при создании пользовательских панелей мониторинга или настройке оповещений. Поскольку коэффициент успешности рассчитывается на основе метрики количества запросов, а не является самостоятельной метрикой, вам придется воссоздать ее с помощью MQL (языка запросов мониторинга) в обозревателе метрик, чтобы использовать ее с любой из этих функций.
Кроме того, для отслеживания сбоев в работе вашего проекта мы считаем необходимым гораздо более специализированный подход. Именно поэтому мы создали показатель достоверности, который изменяется в зависимости от того, насколько ваш текущий показатель успешности выполнения заказов отклоняется от исторических норм.
Показатель доверия
В проектах сбои могут быть самыми разными по масштабу и характеру. Они могут длиться от нескольких часов до нескольких минут, что затрудняет их выявление. Для этого мы создали в вашем проекте метрику уверенности, которая предоставляет нормализованное значение для прогнозирования надежности на основе прошлых показателей. Вы можете получить доступ к метрике уверенности, найдя smarthome в обозревателе метрик, а затем выбрав « Уверенность успешного выполнения» .

Если ваша интеграция с системой «умный дом» демонстрирует результаты на уровне или выше исторического показателя (среднее значение за 7 дней), этот показатель выдает максимальное значение (1,0). Если процент успешности отклоняется более чем на 4 стандартных отклонения (также рассчитанных за 7 дней), этот показатель выдает минимальное значение (0,0). В случаях, когда стандартные отклонения слишком малы (менее 2,5%), значение 0,0 принимается за 10% снижение процента успешности.
Для всех промежуточных случаев этот показатель дает значения от 1,0 (полная уверенность в отсутствии сбоя) до 0,0 (максимальная уверенность в наличии сбоя).
Поэтому при настройке оповещения (об этом мы поговорим в следующем разделе) мы рекомендуем использовать значение 0,5 в качестве порогового значения. Это будет соответствовать двум стандартным отклонениям или падению на 5%, в зависимости от того, какое значение больше .
4. Настройка оповещений
Следующий шаг — использовать все полученные в предыдущем разделе знания для настройки оповещений по вашему проекту.
Создание политики оповещений
Автоматические оповещения в Google Cloud настраиваются через политики оповещений. Доступ к политикам оповещений можно получить через боковое меню: Операции > Мониторинг > вкладка «Оповещения» . Создать новую политику оповещений можно, выбрав опцию « +СОЗДАТЬ ПОЛИТИКУ» , после чего откроется экран создания политики оповещений.

Создание политики оповещений состоит из трех частей. Во-первых, необходимо определить, что именно вы хотите отслеживать, добавив условие. Нажатие кнопки «ДОБАВИТЬ УСЛОВИЕ» откроет окно, похожее на «Обозреватель метрик», с дополнительными элементами управления для настройки условия:

В качестве целевого значения выберите метрику достоверности, которую мы рассматривали в предыдущем разделе. Убедитесь, что для выравнивания установлен параметр «дельта» с использованием этой метрики ( Показать дополнительные параметры > Выравнивание ). Следующий шаг — настройка условия оповещения с использованием следующих параметров:

Условие срабатывает, если — это основная настройка, определяющая, когда следует запускать оповещения. Выбор параметра «Любое нарушение временного ряда» будет работать, поскольку мы собираемся установить пороговое значение для нашей метрики и отслеживать, если это значение будет превышено.
Условие — Мы хотим, чтобы оповещение срабатывало, когда значение опускается ниже порогового значения, поэтому мы установим его значение равным «ниже» . В нашей метрике 1,0 означает, что интеграция работает нормально, а 0,0 указывает на явный сбой.
Пороговое значение — Мы создали показатель достоверности, который обеспечивает наилучшие результаты при значении 0,5 . Если вы хотите получать оповещения чаще и реже о менее серьезных инцидентах, попробуйте увеличить это значение (максимум 1,0). Соответственно, если вы хотите получать оповещения реже, только о более серьезных проблемах, попробуйте уменьшить это значение (минимум 0,0).
«Для » — это параметр, определяющий, как долго должен длиться сбой, прежде чем вы получите оповещение. Мы рекомендуем оставить этот параметр на самом последнем значении , чтобы получать оповещения при любом превышении порогового значения. Наш показатель достоверности публикуется каждые 15 минут, анализируя средний уровень успешности за этот период.
После добавления условия следующим шагом будет выбор канала уведомлений. Самый простой способ оповещения — это электронные письма. Вы можете выбрать адрес электронной почты из выпадающего списка «Каналы уведомлений» :

Если вы выберете опцию «Уведомлять о закрытии инцидента», то после того, как инцидент будет помечен как закрытый, будет отправлено еще одно уведомление. В этом случае вам также следует выбрать продолжительность автоматического закрытия инцидента , которая по умолчанию составляет 7 дней.
Последний шаг — дать вашему оповещению название и добавить любую необходимую документацию, которая будет включена в уведомления.

Рекомендуется предоставлять документацию, особенно если вы не будете получать оповещения. Добавление таких шагов, как определение мест для проверки во время инцидента, а также методов анализа и отладки, может помочь во время сбоя. При необходимости вы можете обратиться к нашему руководству по устранению неполадок .
После сохранения ваша политика оповещений будет отображаться в разделе «Политики» на странице «Оповещения».

5. Снижение рисков отключений электроэнергии
После настройки оповещений вы будете получать уведомления о сбоях в работе от указанных вами каналов связи, а также на странице «Оповещения» будет создана запись об инциденте.
Получение оповещений
В этом практическом занятии мы использовали электронную почту для оповещения. После настройки, будем надеяться, вы не будете получать никаких оповещений (и не будет сбоев в работе), но если они всё же появятся, уведомление будет выглядеть следующим образом:

Обратите внимание, что в уведомлении об оповещении указывается факт превышения порогового значения, а также отметка времени, когда инцидент впервые произошел.
Мониторинг инцидентов
По мере возникновения инцидентов они также будут учитываться в разделе «Инциденты» на странице оповещений.

Вы можете щелкнуть по конкретному инциденту, чтобы просмотреть подробности о сбое, например, его продолжительность или серьезность.
Помните, что при получении оповещений первым делом следует проанализировать метрики, а затем поискать в журналах ошибки, которые привели к сбою. Вы можете освежить в памяти, как это сделать, в нашем практическом занятии по отладке умного дома .
6. Поздравляем!

Поздравляем! Вы успешно освоили настройку оповещений с использованием предоставленных вашему проекту метрик для автоматизированного мониторинга сбоев и получения уведомлений во время перебоев в работе сервиса.
Следующие шаги
Опираясь на этот практический урок, попробуйте выполнить следующие упражнения и изучите дополнительные ресурсы:
- Вы можете объединить знания, полученные в этом практическом задании, с другими метриками, предоставленными вашему проекту. Полный список доступных метрик можно посмотреть в разделе «Поддерживаемые метрики» на странице мониторинга .
- Ознакомьтесь с другими типами каналов уведомлений, которые описаны на странице «Параметры уведомлений» в документации Google Cloud.