Каково практическое использование CorrelationId и MessageId при отправке телеметрии? - PullRequest
0 голосов
/ 01 ноября 2019

В примере телеметрии клиента Azure IOT Hub есть два закомментированных вызова, которые вы можете сделать:

 // Set Message property
 /*(void)IoTHubMessage_SetMessageId(message_handle, "MSG_ID");
   (void)IoTHubMessage_SetCorrelationId(message_handle, "CORE_ID");
 ...
 */

https://github.com/Azure/azure-iot-sdk-c/blob/master/iothub_client/samples/iothub_ll_telemetry_sample/iothub_ll_telemetry_sample.c

Я понимаю, что могу передать строки в эти вызовыв определенном формате.

Но каков их вариант использования в Azure?

Что должно входить в эти поля, чтобы лучше всего помогать пользователю обрабатывать телеметрию в концентраторе IoT Azure?

На этой странице представлен формат идентификатора сообщения, а не руководство: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct

1 Ответ

0 голосов
/ 03 ноября 2019

IoT Hub - одна из первых служб Azure, поддерживающая распределенную трассировку. Поскольку все больше служб Azure поддерживают распределенную трассировку, вы сможете отслеживать сообщения IoT во всех службах Azure, участвующих в вашем решении.

Включение распределенной трассировки для IoT Hub дает вам возможность:

Точноконтролировать поток каждого сообщения через IoT Hub, используя контекст трассировки. Этот контекст трассировки включает в себя идентификаторы корреляции , которые позволяют сопоставлять события из одного компонента с событиями из другого компонента. Его можно применять для подмножества или всех сообщений устройства IoT с использованием устройства-близнеца.

Автоматически регистрировать контекст трассировки в журналах диагностики Azure Monitor. Измерьте и поймите поток сообщений и задержку от устройств к IoT-концентратору и конечным точкам маршрутизации.

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

здесь вы можете найти больше.

...