Мониторинг состояния подключения устройства

Центр Интернета вещей Azure поддерживает несколько методов мониторинга состояния устройств. В этой статье представлены различные методы мониторинга и приведены рекомендации, которые помогут вам выбрать оптимальный вариант для решения Интернета вещей.

В следующей таблице представлены три способа мониторинга состояния подключения устройства:

Способ Частота состояния Себестоимость Усилия по созданию
Свойство ConnectionState для двойника устройства Периодически Низкая Низкая
Сетка событий 60 секунд Низкая Низкая
Шаблон пульса пользовательского устройства Пользовательское Высокая Высокая

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

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

Подключение двойника устройства

Каждое удостоверение устройства Центр Интернета вещей содержит свойство connectionState, которое сообщает о подключении или отключении. Это свойство представляет представление о состоянии подключения устройства Центр Интернета вещей.

Свойство состояния подключения имеет несколько ограничений:

  • Состояние подключения обновляется только для устройств, использующих MQTT или AMQP.
  • Обновления этому свойству используются проверки на уровне протокола и могут быть отложены до пяти минут.

По этим причинам рекомендуется использовать только поле connectionState во время разработки и отладки. Решения Интернета вещей не должны запрашивать поле во время выполнения. Например, не запрашивайте поле connectionState, чтобы проверка, если устройство подключено перед отправкой сообщения из облака на устройство или SMS.

Сетка событий

Мы рекомендуем сетку событий в качестве предпочтительного решения для мониторинга для большинства клиентов.

Подпишитесь на устройство Подключение и события deviceDisconnected в Сетке событий, чтобы получать оповещения и отслеживать состояние подключения устройства.

Используйте следующие статьи, чтобы узнать, как интегрировать подключенные и отключенные события устройства в решении Интернета вещей:

События состояния подключения устройства доступны для устройств, подключающихся с помощью протокола MQTT или AMQP или с помощью любого из этих протоколов через WebSockets. Запросы, созданные только с использованием протокола HTTPS, не будут активировать уведомления о состоянии подключения устройств.

  • Для устройств, подключающихся с помощью пакетов SDK Для Интернета вещей Azure для Java, Node или Python:
    • MQTT: события состояния подключения отправляются автоматически.
    • AMQP: необходимо создать связь между облаком и устройством, чтобы уменьшить задержки в состояниях подключения к отчету.
  • Для устройств, подключающихся с помощью пакетов SDK Для Интернета вещей Azure для .NET или C, события состояния подключения не будут сообщаться до тех пор, пока не будет отправлено исходное сообщение об устройстве в облако или получено сообщение об облачном устройстве.

За пределами пакетов SDK для Интернета вещей Azure при использовании MQTT эти операции эквивалентны операциям SUBSCRIBE или PUBLISH в соответствующих разделах сообщений. По протоколу AMQP эти операции соответствуют присоединению или передаче сообщения по соответствующим путям связи.

Ограничения сетки событий

С помощью сетки событий для отслеживания состояния устройства применяются следующие ограничения:

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

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

Шаблон пульса устройства

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

Ограничения пульса устройства

Так как сообщения пульса реализуются как сообщения с устройством в облако, они учитываются в отношении квоты Центр Интернета вещей сообщений и ограничений регулирования.

Шаблон короткого срока действия

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

Дополнительные сведения см. в разделе "Срок действия сообщения" (время жизни).

Другие параметры мониторинга

Более сложные варианты реализации могут содержать информацию из Azure Monitor и службы Работоспособность ресурсов, которая позволит выявить устройства с безуспешными попытками подключения. Панели мониторинга Azure Monitor полезны для просмотра статистической работоспособности устройств, а сетка событий и шаблоны пульса упрощают реагирование на отдельные сбои устройств.

Дополнительные сведения об использовании этих служб с Центром Интернета вещей см. в статьях Мониторинг Центра Интернета вещей и Проверка работоспособности ресурсов Центра Интернета вещей. Дополнительные сведения об использовании Azure Monitor или Сетки событий для наблюдения за подключением устройств см. в статье Мониторинг, диагностирование и устранение неполадок подключения устройств.