Once you have set up your Azure IoT edge device and runtime, you want to make sure it keeps running as expected. So you need to start measuring how your device, your modules, and runtime are doing.
Microsoft provides built-in metrics for Azure IoT using endpoints on the EdgeHub and EdgeAgent exposing messages in the Prometheus format.
Microsoft Build 2021 is a virtual technology conference scheduled for May 25-27. Microsoft Build is designed mainly for developers who write and support applications for Microsoft Azure, Windows, SQL Server and other applications/software platforms from the company.
Because it’s an digital event (just like last year) registration is free.
Of course, there are also Internet of Things (IoT) related sessions.
Normally, most of these sessions (Except the RSVP ones where typically involve customer interaction) are recorded and available online for registered users. So, that is the second reason to register 🙂
Here is a list of what is scheduled right now regarding IoT:
This time, a new protocol is added to this impressive list: User Datagram Protocol (UDP).
Communication using UDP is fast and supports broadcasting to several IP addresses at once.
There are some disadvantages (it has no handshaking dialogues, and thus exposes the user’s program to any unreliability of the underlying network; there is no guarantee of delivery, ordering, or duplicate protection) but if you can cope with that at a higher level, UDP is a handy tool in your protocol toolbox.
In this blog post we will see how UDP messages can be received on the Edge with this demonstration IoT Edge module:
Because each UDP message is different (here we send text messages but this could also be binary values, depending on your challenges), this module is just a reference which explains how it works.
As you can see, the messages are build up in three parts:
The actual message body, generated by (your) logic in the device. This part could be encoded so only the receiver knows how to handle this. Normally this is a JSON message format, though.
(Application) properties, message enrichment on the device to provide context about the messages. This acts as a property bag, also added by the developer. The values are directly accessible for routing purposes.
System properties, added by the IoT Hub. This gives technical context about the incoming message from the perspective of the IoT Hub
So users can choose to add values in the body or to add values in the application properties.
Still, every byte put in the message sent by the device results in a longer transmit duration and extra costs (number of bytes communicated, potentially more message chunks handled by the IoT Hub).
So, values already found in the system properties (eg. the device name or module id) can be left out in the body. This results in a smaller message.
Microsoft also provides message enrichment on the IoT Hub. This can take away some of the pain too.
It also makes it possible to route messages further down the road in other Azure resources which receive these enriched messages.