Временные отметки Sparkplug: измерение, публикация и получение не совпадают
Фотография конкретного исполнения не приложена.
Sparkplug использует UTC и миллисекунды от Epoch. Метрика содержит собственное время захвата значения, тогда как timestamp payload описывает сообщение. При пакетной передаче эти времена могут различаться, и это различие нужно сохранять в архиве.
Если заменить время измерения временем получения Host, задержка сети превратится в ложное изменение хронологии процесса. Особенно заметно это после восстановления связи и передачи накопленной истории. Отображение в местном часовом поясе выполняют отдельно от исходного времени протокола.
Для DEATH действуют специальные правила: заранее подготовленный Will NDEATH не сообщает фактический момент исчезновения, поэтому Host использует время получения; DDEATH от действующего Edge использует его payload timestamp. Универсальная трактовка любого поля timestamp неверна.
Приёмка включает задержанную и пакетную передачу с известными контрольными отметками. Проверяют порядок событий и сохранение исходных времён. Синхронизация часов необходима, но сама по себе не исправляет подмену одного типа времени другим.
Основание — Eclipse Sparkplug Specification 3.0.0, 2022-11-16, физические страницы PDF 38, 47, 51, 73, 74, 75. Пример описывает проектную проверку; конкретные broker, gateway и Host не испытывались. Поддержка этой версии каждой реализацией требует подтверждения.
Запросы отправляются на наш e-mail из вашей почтовой программы.