You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-hub/iot-hub-distributed-tracing.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ Consider the following limitations to determine if this preview feature is right
45
45
46
46
- The proposal for the W3C Trace Context standard is currently a working draft.
47
47
- The only development language that the client SDK currently supports is C, in the [public preview branch of the Azure IoT device SDK for C](https://github.com/Azure/azure-iot-sdk-c/blob/public-preview/readme.md)
48
-
- Cloud-to-device twin capability isn't available for the [IoT Hub basic tier](iot-hub-scaling.md#basic-and-standard-tiers). However, IoT Hub still logs to Azure Monitor if it sees a properly composed trace context header.
48
+
- Cloud-to-device twin capability isn't available for the [IoT Hub basic tier](iot-hub-scaling.md). However, IoT Hub still logs to Azure Monitor if it sees a properly composed trace context header.
49
49
- To ensure efficient operation, IoT Hub imposes a throttle on the rate of logging that can occur as part of distributed tracing.
50
50
- The distributed tracing feature is supported only for IoT hubs created in the following regions:
@@ -18,15 +18,21 @@ To decide which IoT Hub tier is right for your solution, ask yourself two questi
18
18
19
19
**What features do I plan to use?**
20
20
21
-
Azure IoT Hub offers two tiers, basic and standard, that differ in the number of features they support. If your IoT solution is based around collecting data from devices and analyzing it centrally, then the basic tier is probably right for you. If you want to use more advanced configurations to control IoT devices remotely or distribute some of your workloads onto the devices themselves, then you should consider the standard tier. For a detailed breakdown of which features are included in each tier, continue to [Basic and standard tiers](#basic-and-standard-tiers).
21
+
Azure IoT Hub offers two tiers, basic and standard, that differ in the features that they support. If your IoT solution is based around collecting data from devices and analyzing it centrally, then the basic tier is probably right for you. If you want to use more advanced configurations to control IoT devices remotely or distribute some of your workloads onto the devices themselves, then you should consider the standard tier.
22
+
23
+
For a detailed breakdown of which features are included in each tier, continue to [Basic and standard tiers](#choose-your-features-basic-and-standard-tiers).
22
24
23
25
**How much data do I plan to move daily?**
24
26
25
-
Each IoT Hub tier is available in three sizes, based around how much data throughput they can handle in any given day. These sizes are numerically identified as 1, 2, and 3. For example, each unit of a level 1 IoT hub can handle 400 thousand messages a day, while a level 3 unit can handle 300 million. For more details about the data guidelines, continue to [Tier editions and units](#tier-editions-and-units).
27
+
Each IoT Hub tier is available in three sizes, based around how much data throughput they can handle in a day. These sizes are numerically identified as 1, 2, and 3. The size determines the baseline daily message limit, and then you can scale out an IoT hub by adding *units*. For example, each unit of a level 1 IoT hub can handle 400,000 messages a day. A level 1 IoT hub with five units can handle 2,000,000 messages a day. Or, go up to a level 2 hub where each unit has a 6,000,000 messages daily limit.
28
+
29
+
For more details about determining your message requirements and limits, continue to [Tier editions and units](#choose-your-size-editions-and-units).
26
30
27
-
## Basic and standard tiers
31
+
## Choose your features: basic and standard tiers
28
32
29
-
The standard tier of IoT Hub enables all features, and is required for any IoT solutions that want to make use of the bi-directional communication capabilities. The basic tier enables a subset of the features and is intended for IoT solutions that only need uni-directional communication from devices to the cloud. Both tiers offer the same security and authentication features.
33
+
The basic tier of IoT Hub enables a subset of available features and is intended for IoT solutions that only need uni-directional communication from devices to the cloud. The standard tier of IoT Hub enables all features, and is meant for IoT solutions that want to make use of the bi-directional communication capabilities. The basic tier enables a subset of the features and is intended for IoT solutions that only need uni-directional communication from devices to the cloud.
34
+
35
+
Both tiers offer the same security and authentication features.
30
36
31
37
| Capability | Basic tier | Standard tier |
32
38
| ---------- | ---------- | ------------- |
@@ -85,15 +91,17 @@ The partition configuration remains unchanged when you migrate from basic tier t
85
91
> [!NOTE]
86
92
> The free tier does not support upgrading to basic or standard tier.
87
93
88
-
## Tier editions and units
94
+
## Choose your size: editions and units
89
95
90
96
Once you've chosen the tier that provides the best features for your solution, determine the size that provides the best data capacity for your solution.
91
97
92
98
Each IoT Hub tier is available in three sizes, based around how much data throughput they can handle in any given day. These sizes are numerically identified as 1, 2, and 3.
93
99
94
-
Tiers and sizes are represented as *editions*. A basic tier IoT hub of size 2 is represented by the edition **B2**. Similarly, a standard tier IoT hub of size 3 is represented by the edition **S3**.
100
+
A tier-size pair is represented as an *edition*. A basic tier IoT hub of size 2 is represented by the edition **B2**. Similarly, a standard tier IoT hub of size 3 is represented by the edition **S3**. For more information, includig pricing details, see [IoT Hub edition](https://azure.microsoft.com/pricing/details/iot-hub/)
101
+
102
+
Once you choose an edition for your IoT hub, you can multiple its messaging capacity by increasing the number of *units*.
95
103
96
-
Only one type of [IoT Hub edition](https://azure.microsoft.com/pricing/details/iot-hub/) within a tier can be chosen per IoT hub. For example, you can create an IoT hub with multiple units of S1. However, you can't create an IoT hub with a mix of units from different editions, such as S1 and B3 or S1 and S2.
104
+
Each IoT hubcan only be one edition. For example, you can create an IoT hub with multiple units of S1. However, you can't create an IoT hub with a mix of units from different editions, such as S1 and B3 or S1 and S2.
97
105
98
106
The following table shows the capacity for device-to-cloud messages for each size.
99
107
@@ -116,7 +124,7 @@ After you create your IoT hub, without interrupting your existing operations, yo
116
124
117
125
For more information, see [How to upgrade your IoT hub](iot-hub-upgrade.md).
118
126
119
-
## Auto-scale
127
+
###Auto-scale
120
128
121
129
If you're approaching the allowed message limit on your IoT hub, you can use these [steps to automatically scale](https://azure.microsoft.com/resources/samples/iot-hub-dotnet-autoscale/) to increment an IoT Hub unit in the same IoT Hub tier.
Copy file name to clipboardExpand all lines: articles/iot/iot-mqtt-5-preview.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
---
2
2
title: Azure IoT Hub MQTT 5 support (preview)
3
-
description: Learn about MQTT 5 support in IoT Hub
3
+
description: Learn about MQTT 5 support in IoT Hub.
4
4
services: iot
5
5
ms.service: iot
6
6
ms.custom:
7
7
- ignite-2023
8
8
author: kgremban
9
9
ms.author: kgremban
10
10
ms.topic: conceptual
11
-
ms.date: 04/24/2023
11
+
ms.date: 04/08/2024
12
12
---
13
13
14
14
# IoT Hub MQTT 5 support (preview)
@@ -23,8 +23,8 @@ This document defines IoT Hub data plane API over MQTT version 5.0 protocol. See
23
23
24
24
## Prerequisites
25
25
26
-
-[Enable preview mode](../iot-hub/iot-hub-preview-mode.md) on a brand new IoT hub to try MQTT 5.
27
-
- Prior knowledge of [MQTT 5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html) is required.
26
+
-Create a brand new IoT hub with preview mode enabled. MQTT 5 is only available in preview mode, and you can't switch an existing IoT hub to preview mode. For more information, see [Enable preview mode](../iot-hub/iot-hub-preview-mode.md)
27
+
- Prior knowledge of [MQTT 5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html).
28
28
29
29
## Level of support and limitations
30
30
@@ -41,8 +41,7 @@ IoT Hub support for MQTT 5 is in preview and limited in following ways (communic
41
41
-`Topic Alias Maximum` is `10`.
42
42
-`Response Information` isn't supported; `CONNACK` doesn't return `Response Information` property even if `CONNECT` contains `Request Response Information` property.
43
43
-`Receive Maximum` (maximum number of allowed outstanding unacknowledged `PUBLISH` packets (in client-server direction) with `QoS: 1`) is `16`.
44
-
- Single client can have no more than `50` subscriptions.
45
-
When the limit's reached, `SUBACK` returns `0x97` (Quota exceeded) reason code for subscriptions.
44
+
- Single client can have no more than `50` subscriptions. If a client reaches the subscription limit, `SUBACK` returns `0x97` (Quota exceeded) reason code for subscriptions.
46
45
47
46
## Connection lifecycle
48
47
@@ -112,7 +111,7 @@ Username/password authentication used in previous API versions isn't supported.
112
111
113
112
#### SAS
114
113
115
-
With SAS-based authentication, a client must provide the signature of the connection context. The signature proves authenticity of the MQTT connection. The signature must be based on one of two authentication keys in the client's configuration in IoT Hub. Or it must be based on one of two shared access keys of a [shared access policy](../iot-hub/iot-hub-dev-guide-sas.md).
114
+
With SAS-based authentication, a client must provide the signature of the connection context. The signature proves authenticity of the MQTT connection. The signature must be based on one of two authentication keys in the client's configuration in IoT Hub. Or it must be based on one of two shared access keys of a [shared access policy](../iot-hub/iot-hub-dev-guide-sas.md).
116
115
117
116
String to sign must be formed as follows:
118
117
@@ -160,17 +159,17 @@ If reauthentication succeeds, IoT Hub sends `AUTH` packet with `Reason Code: 0x0
160
159
161
160
### Disconnection
162
161
163
-
Server can disconnect client for a few reasons:
162
+
Server can disconnect client for a few reasons, including:
164
163
165
-
- client is misbehaving in a way that is impossible to respond to with negative acknowledgment (or response) directly,
166
-
- server is failing to keep state of the connection up to date,
167
-
- client with the same identity has connected.
164
+
- client misbehaves in a way that is impossible to respond to with negative acknowledgment (or response) directly,
165
+
- server fails to keep state of the connection up to date,
166
+
- another client connects with the same identity.
168
167
169
168
Server may disconnect with any reason code defined in MQTT 5.0 specification. Notable mentions:
170
169
171
-
- `135`(Not authorized) when reauthentication fails, current SAS token expires or device's credentials change
170
+
- `135`(Not authorized) when reauthentication fails, current SAS token expires, or device's credentials change.
172
171
- `142`(Session taken over) when new connection with the same client identity has been opened.
173
-
- `159`(Connection rate exceeded) when connection rate for the IoT hub exceeds
172
+
- `159`(Connection rate exceeded) when connection rate for the IoT hub exceeds the limit.
174
173
- `131`(Implementation-specific error) is used for any custom errors defined in this API. `status` and `reason` properties are used to communicate further details about the cause for disconnection (see [Response](#response) for details).
175
174
176
175
## Operations
@@ -224,7 +223,7 @@ For example, Send Telemetry is Client-to-Server operation of "Message with ackno
224
223
225
224
#### Message-acknowledgement interactions
226
225
227
-
Message with optional Acknowledgment (MessageAck) interaction is expressed as an exchange of `PUBLISH` and `PUBACK` packets in MQTT. Acknowledgment is optional and sender may choose to not request it by sending `PUBLISH` packet with `QoS: 0`.
226
+
Message with optional Acknowledgment (MessageAck) interaction is expressed as an exchange of `PUBLISH` and `PUBACK` packets in MQTT. Acknowledgment is optional and sender can choose to not request it by sending `PUBLISH` packet with `QoS: 0`.
228
227
229
228
> [!NOTE]
230
229
> If properties in `PUBACK` packet must be truncated due to `Maximum Packet Size` declared by the client, IoT Hub will retain as many User properties as it can fit within the given limit. User properties listed first have higher chance to be sent than those listed later; `Reason String` property has the least priority.
@@ -318,7 +317,7 @@ Interactions can result in different outcomes: `Success`, `Bad Request`, `Not Fo
318
317
Outcomes are distinguished from each other by `status` user property. `Reason Code` in `PUBACK` packets (for MessageAck interactions) matches `status` in meaning where possible.
319
318
320
319
> [!NOTE]
321
-
> If client specifies `Request Problem Information: 0` in CONNECT packet, no user properties will be sent on `PUBACK` packets to comply with MQTT 5 specification, including `status` property. In this case, client can still rely on `Reason Code` to determine whether acknowledge is positive or negative.
320
+
> If client specifies `Request Problem Information: 0` in CONNECT packet, no user properties will be sent on `PUBACK` packets to comply with MQTT 5 specification, including `status` property. In this case, client can still rely on `Reason Code` to determine whether acknowledge is positive or negative.
322
321
323
322
Every interaction has a default (or success). It has `Reason Code` of `0` and `status` property of "not set". Otherwise:
324
323
@@ -363,7 +362,7 @@ When needed, IoT Hub sets the following user properties:
363
362
364
363
> [!NOTE]
365
364
> If client sets `Maximum Packet Size` property in CONNECT packet to a very small value, not all user properties may fit and would not appear in the packet.
366
-
>
365
+
>
367
366
> `reason` is meant only for people and should not be used in client logic. This API allows for messages to be changed at any point without warning or change of version.
368
367
>
369
368
> If client sends `RequestProblemInformation: 0` in CONNECT packet, user properties won't be included in acknowledgements per [MQTT 5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901053).
@@ -583,6 +582,7 @@ Response:
583
582
status: 0100
584
583
reason: "`Correlation Data` property is missing"
585
584
```
585
+
586
586
## Next steps
587
587
588
588
- To review the MQTT 5 preview API reference, see [IoT Hub data plane MQTT 5 API reference (preview)](iot-mqtt-5-preview-reference.md).
0 commit comments