refresh_date: 2023-01-06
Google Cloud предоставляет вам инструменты для мониторинга надежности ваших проектов с помощью Google Cloud Monitoring и отладки ошибок с помощью журналов ошибок Google Cloud Logging . Если при выполнении пользовательских намерений происходит сбой, конвейер Google Home Analytics регистрирует его в ваших метриках и публикует журнал ошибок в журналах вашего проекта.
Для устранения ошибок выполните два шага:
- Контролируйте состояние своих проектов с помощью показателей умного дома.
- Исследуйте проблемы, проверив подробные описания ошибок в журналах ошибок.
Ошибки мониторинга
Вы можете использовать Google Cloud Monitoring dashboard для доступа к показателям своего проекта. Вот несколько ключевых диаграмм, которые особенно полезны для мониторинга качества и отладки:
- Диаграмма «Уровень успеха» — это первая диаграмма, с которой следует начать при мониторинге надёжности ваших проектов. Падения на этой диаграмме могут указывать на сбой в работе части или всей вашей пользовательской базы. Мы рекомендуем внимательно следить за этой диаграммой на предмет любых нарушений после каждого изменения или обновления вашего проекта.
- Диаграммы анализа ошибок наиболее полезны при устранении неполадок в ваших интеграциях. Для каждой ошибки, выделенной на диаграмме процента успеха, в таблице анализа ошибок отображается код ошибки. В таблице ниже представлены ошибки, отмеченные 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 при попытке получить токен доступа. Если вы заметили увеличение частоты возникновения этой ошибки в GCP Logging, свяжитесь с нами для получения дополнительной информации. |
GAL_INVALID_ARGUMENT | Произошла внутренняя ошибка Google при попытке получить токен доступа. Если вы заметили увеличение частоты возникновения этой ошибки в GCP Logging, свяжитесь с нами для получения дополнительной информации. |
GAL_NOT_FOUND | Токены доступа и обновления пользователя, хранящиеся в Google, аннулированы и больше не могут быть обновлены. Пользователю необходимо повторно привязать свою учётную запись, чтобы продолжить использование вашего сервиса. Если вы заметили увеличение частоты возникновения этой ошибки в GCP Logging, свяжитесь с нами для получения дополнительной информации. |
GAL_PERMISSION_DENIED | Произошла внутренняя ошибка Google, когда совместное использование токенов не было разрешено. Если вы заметили увеличение частоты возникновения этой ошибки в GCP Logging, свяжитесь с нами для получения дополнительной информации. |
GAL_REFRESH_IN_PROGRESS | Срок действия токена доступа пользователя истек, и уже предпринимается другая параллельная попытка его обновления. Это не проблема и не требует никаких действий. |
INVALID_AUTH_TOKEN | Google получил от вашего сервиса код ошибки 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. Проверьте все поля в ответе на запрос на наличие непредусмотренных символов, непарных скобок или ошибок форматирования. Некоторые символы Unicode могут не поддерживаться. Также убедитесь, что ваш ответ правильно структурирован как JSON-объект. |
PROTOCOL_ERROR | Ошибка при обработке запроса. Используйте requestId в Google Cloud Logging для проверки журналов служб умного дома. |
RELINK_REQUIRED | В ответе указана ошибка relinkRequired , которая предлагает пользователю повторно связать свои учетные записи Google и партнерские аккаунты.Более подробную информацию смотрите в поддерживаемых кодах ошибок . |
RESPONSE_TIMEOUT | Запрос истек в ожидании ответа. Время ожидания ответа составляет 9 секунд с момента отправки запроса. Обязательно отправьте ответ в течение этого времени. |
RESPONSE_UNAVAILABLE | Ответ не получен или в ответе не указан статус. Ответы на запросы об исполнении намерений должны быть структурированы в соответствии с документацией по умному дому и указывать статус. |
TRANSIENT_ERROR | Временная ошибка — это ошибка, которая разрешится сама собой. Чаще всего эти ошибки проявляются в виде разрыва соединения с устройством или службой. Также они могут привести к невозможности установить новые соединения с сервером. |
Журналы поиска
Как только вы освоите мониторинг интеграции с помощью метрик, следующим шагом станет устранение конкретных ошибок с помощью Cloud Logging . Журнал ошибок — это запись в формате JSON с полями, содержащими полезную информацию, такую как время, код ошибки и сведения об исходном намерении умного дома.
В Google 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 , которое поможет вам эффективно протестировать изменения.
Учебные ресурсы
В этом документе приведены инструкции по устранению ошибок в вашем приложении Smart Home Action. Вы также можете ознакомиться с нашими практическими занятиями, чтобы узнать больше об отладке:
- Отладка умного дома Codelab : краткое руководство по отладке интеграции облака умного дома.
- Отладка локального домашнего кода : краткое руководство по отладке локальной интеграции умного дома.