Метрики на основе журналов для умного дома

1. Прежде чем начать

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

848f483bfcd2997a.png

Помимо метрик, которые мы предоставляем вашему проекту, вы также можете генерировать свои собственные метрики, используя метрики на основе журналов из Google Cloud. Это позволяет отслеживать определенные закономерности в журналах и эффективно устранять проблемы с качеством.

Предварительные условия

Что вы узнаете

  • Как написать эффективные запросы для фильтрации журналов ошибок Умного дома
  • Как создать метрики на основе журналов для генерации метрик на основе ваших запросов
  • Как создавать диаграммы и информационные панели на основе показателей на основе журналов для мониторинга

2. Работа с журналами

Как мы кратко рассмотрели в разделе «Отладка кода Smart Home» , работа с журналами является ключом к успеху вашего проекта. В Google Cloud доступны отличные инструменты для мониторинга и анализа ваших журналов. Чтобы получить доступ ко всем журналам, доступным для вашего проекта, вы можете использовать Logs Explorer .

Доступ к журналам

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

78982d8b6d19b827.png

Обозреватель журналов состоит из двух основных разделов: раздел для записи ваших запросов сверху ( Построитель запросов ) и область для отображения совпадающих результатов ( Результаты запроса ).

Многие различные компоненты Google по умолчанию записывают журналы в ваш проект. Чтобы найти и работать с журналами, поступающими от интеграции вашего «Умного дома», вам необходимо написать собственные запросы.

Написание запросов

Журналы публикуются в проектах по типу ресурса. Каждый тип ресурса представляет собой отдельную платформу в Google. Журналы, поступающие с платформы «Умный дом», доступны вашему проекту под типом ресурса assistant_action_project .

Кроме того, всем журналам при создании присваивается уровень серьезности. В журналах Smart Home мы используем уровень ERROR для журналов, представляющих ошибки и исключения , и уровень DEBUG для всего остального.

В следующем примере мы напишем запрос для фильтрации журналов, поступающих только с нашей платформы и представляющих ошибки, следующим образом:

753bfe72a9f8e959.png

Закончив писать запрос, нажмите кнопку «Выполнить запрос», чтобы инициировать запрос. Это должно вызвать ошибки, возникающие в результате интеграции с умным домом:

3ef42da5a6c322e1.png

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

Использование гистограммы

Обозреватель журналов предоставляет полезную функцию гистограммы, позволяющую увидеть распределение журналов по времени, соответствующих вашему запросу. Чтобы активировать гистограмму, нажмите «МАКЕТ СТРАНИЦЫ» в правом верхнем углу кнопок и установите флажок «Гистограмма», чтобы включить эту функцию.

10eaf1d204decf3c.png

После включения вы увидите распределение журналов, соответствующих вашему запросу:

dd3410e65a83cf5d.png

Как вы можете видеть на изображении выше, у нас есть несколько ошибок, которые были редко сгруппированы за последний час. Кажется, они образуют три кластера около 13:45, 14:00 и 14:15. Гистограмма может помочь вам обнаружить закономерности, которые было бы трудно увидеть, проверив только значения временных меток.

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

Расширенные запросы

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

825c57c36800844e.png

action

device

status

  • isSuccess : считается ли результат действия успешным (истина/ложь)
  • statusType : код состояния для результата действия (указывает код ошибки в случае неудачи)
  • externalDebugString : строка отладки для действия (подробно описывает ошибку)

Другие поля

Есть также дополнительные поля, из которых можно получить информацию:

  • requestId : уникальный идентификатор, связанный с запросом (созданный Google).
  • executionType : Путь, используемый запросом (указывает, облачный или локальный).
  • latencyMsec : предполагаемая задержка запроса на серверах Google (в мсек).
  • 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. Метрики на основе журналов

Чтобы подсчитать количество журналов, соответствующих вашим запросам с течением времени, вы можете использовать метрики на основе журналов. Это позволит вам увидеть закономерности в ваших журналах и даст хорошее представление об основных проблемах.

Создание метрики на основе журнала

Чтобы создать метрику на основе журнала, перейдите в раздел «Операции» > «Ведение журнала» > «Метрики на основе журнала» . Это покажет вам список метрик на основе журналов, уже доступных в вашем проекте. После того, как вы нажмете кнопку СОЗДАТЬ МЕТРИКУ , вам будет представлен экран создания метрики на основе журнала:

296af6e7d8dcf6cf.png

Существует два основных типа метрик. Метрика счетчика подсчитывает количество журналов, соответствующих вашему запросу. Метрика распределения отслеживает основное распределение и позволяет выполнять статистические операции, такие как среднее значение, медиана и 95-й процентиль.

Прокрутив вниз, вы увидите раздел фильтра, где вы можете ввести свой запрос.

f7f2093fa1bce2ac.png

Мы вставим наш запрос из предыдущего раздела в текстовую область «Построить фильтр» .

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

Вы также можете нажать кнопку ПРОСМОТР ЖУРНАЛОВ , чтобы быстро просмотреть прошлые журналы, соответствующие вашему фильтру. Закончив, вы можете нажать кнопку СОЗДАТЬ ПОКАЗАТЕЛЬ и перейти к следующему разделу.

Просмотр данных метрик на основе журнала

Теперь, когда наша метрика на основе журнала создана, она будет доступна в разделе «Пользовательские метрики» на странице «Метрики на основе журнала».

1b2c88c18533fbcd.png

В меню, соответствующем метрике на основе журнала (3 точки), выберите «Просмотр в обозревателе метрик», чтобы просмотреть данные, собранные в метрике на основе журнала:

54a836fdc3a666a3.png

Как только у нас появится новая ошибка, она будет зафиксирована нашей метрикой на основе журнала и отображена в окне диаграммы в обозревателе метрик .

Мониторинг с помощью пользовательских панелей мониторинга

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

52329085f841782e.png

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

44961e7cb3663341.png

Мы сохранили нашу диаграмму на панели инструментов под названием «Панель управления Codelab». Открыв его, вы увидите следующий вид:

f7e025c27f30f996.png

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

4. Поздравления

674c4f4392e98c1.png

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

Следующие шаги

На основе этой Codelab попробуйте выполнить следующие упражнения и изучите дополнительные ресурсы:

  • Ознакомьтесь с руководством «Создание метрик распределения» , чтобы создать метрики на основе журналов для числовых полей, таких как задержка.
  • Просмотрите библиотеку примеров запросов, предоставленную Google Cloud, чтобы увидеть некоторые сложные фильтры, которые можно использовать для показателей на основе журналов.