Device Update compliance
In Device Update for IoT Hub, compliance measures how many devices are running the latest available version. A device is compliant if it has installed the highest available version update that is compatible for it.
For example, consider an instance of Device Update with the following updates:
|Update name||Update version||Compatible device model|
Let’s say the following deployments have been created:
|Deployment name||Update name||Targeted group|
Now, consider the following devices, with their group memberships and installed versions:
|DeviceId||Device model||Installed update version||Group||Compliance|
|Device1||Model1||1.0||Group1||New updates available|
|Device2||Model1||2.0||Group3||On latest update|
|Device3||Model2||1.0||Group2||On latest update|
|Device4||Model1||1.0||Group3||Update in progress|
Device1 and Device4 aren't compliant because they have version 1.0 installed even though there’s a higher version update, Update3, compatible for their model in the Device Update instance. Device2 and Device3 are both compliant because they have the highest version updates compatible for their models installed.
Compliance doesn't consider whether an update is deployed to a device’s group or not; it looks at any updates published to Device Update. So in the example above, even though Device1 has installed the update deployed to it, it's considered non-compliant. Device1 will continue being considered non-compliant until it successfully installs Update3. The compliance status can help you identify whether new deployments are needed.
As shown above, there are three compliance states in Device Update for IoT Hub:
- On latest update – the device has installed the highest compatible version update published to Device Update.
- Update in progress – an active deployment is in the process of delivering the highest compatible version update to the device.
- New updates available – a device hasn't yet installed the highest compatible version update and isn't in an active deployment for that update.