Skip to content

Commit 4349e35

Browse files
committed
update, clarify pricing and scale
1 parent 4eb1558 commit 4349e35

14 files changed

+107
-110
lines changed

articles/iot-hub/TOC.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,6 @@
9696
href: query-twins.md
9797
- name: Job queries
9898
href: query-jobs.md
99-
- name: Quotas and throttling
100-
displayName: operations, traffic, connections, latency
101-
href: iot-hub-devguide-quotas-throttling.md
10299
- name: Compare IoT Hub and Event Hubs
103100
href: iot-hub-compare-event-hubs.md
104101
- name: React to IoT Hub events with Event Grid
@@ -114,6 +111,9 @@
114111
- name: Choose the right IoT Hub tier
115112
displayName: basic, standard, partitions, message throughput
116113
href: iot-hub-scaling.md
114+
- name: Quotas and throttling
115+
displayName: operations, traffic, connections, latency
116+
href: iot-hub-devguide-quotas-throttling.md
117117
- name: Pricing examples
118118
href: iot-hub-devguide-pricing.md
119119
- name: Messaging

articles/iot-hub/iot-hub-devguide-pricing.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Understand Azure IoT Hub pricing | Microsoft Docs
2+
title: Understand Azure IoT Hub pricing
33
description: This article provides information about how metering and pricing works with IoT Hub including worked examples.
44
author: kgremban
55

@@ -26,7 +26,6 @@ Use the following table to help determine which operations are charged. All bill
2626
- A link to the REST API documentation if it exists.
2727
- The operation endpoint if REST API documentation isn't available, or if the operation is only available over MQTT and/or AMQP. The endpoint value omits the leading reference to the target IoT hub; `{fully-qualified-iothubname}.azure-devices.net`.
2828
- One or more terms in *italics* following each operation (or endpoint). These terms represent billable operations that are charged against quota for your IoT hub. You may see these terms supplied as part of a quota usage insight when you initiate a support request on Azure portal. They may also be returned by customer support. You can use the table below to cross-reference these terms with the corresponding operation to help you understand quota usage and billing for your IoT solution. For more information, see [Example 4](#example-4).
29-
3029

3130
| Operation category | Billing information |
3231
| --------- | ------------------- |

articles/iot-hub/iot-hub-devguide-quotas-throttling.md

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,47 @@ This article explains the quotas for an IoT Hub, and provides information to hel
1919

2020
Each Azure subscription can have at most 50 IoT hubs, and at most 1 Free hub.
2121

22-
Each IoT hub is provisioned with a certain number of units in a specific tier. The tier and number of units determine the maximum daily quota of messages that you can send. The message size used to calculate the daily quota is 0.5 KB for a free tier hub and 4KB for all other tiers. For more information, see [Azure IoT Hub Pricing](https://azure.microsoft.com/pricing/details/iot-hub/).
22+
Each IoT hub is provisioned with a certain number of units in a specific tier. The tier and number of units determine the maximum daily quota of messages that you can send in your hub per day. The message size used to calculate the daily quota is 0.5 KB for a free tier hub and 4KB for all other tiers. For more information, see [Azure IoT Hub Pricing](https://azure.microsoft.com/pricing/details/iot-hub/).
23+
24+
You can find your hub's quota limit under the column **Total number of messages /day** on the [IoT Hub pricing page](https://azure.microsoft.com/pricing/details/iot-hub/) in the Azure portal.
2325

2426
The tier also determines the throttling limits that IoT Hub enforces on all operations.
2527

2628
## Operation throttles
2729

2830
Operation throttles are rate limitations that are applied in minute ranges and are intended to prevent abuse. They're also subject to [traffic shaping](#traffic-shaping).
2931

30-
The following table shows the enforced throttles. Values refer to an individual hub.
32+
### Basic and standard tier operations
33+
34+
The following table shows the enforced throttles for operations that are available in all IoT Hub tiers. Values refer to an individual hub.
3135

32-
| Throttle | Free, B1, and S1 | B2 and S2 | B3 and S3 |
36+
| Throttle | Free, B1, and S1 | B2 and S2 | B3 and S3 |
3337
| -------- | ------- | ------- | ------- |
3438
| [Identity registry operations](#identity-registry-operations-throttle) (create, retrieve, list, update, delete) | 1.67/sec/unit (100/min/unit) | 1.67/sec/unit (100/min/unit) | 83.33/sec/unit (5,000/min/unit) |
35-
| [New device connections](#device-connections-throttle) (this limit applies to the rate of _new connections_, not the total number of connections) | Higher of 100/sec or 12/sec/unit <br/> For example, two S1 units are 2\*12 = 24 new connections/sec, but you have at least 100 new connections/sec across your units. With nine S1 units, you have 108 new connections/sec (9\*12) across your units. | 120 new connections/sec/unit | 6,000 new connections/sec/unit |
39+
| [New device connections](#device-connections-throttle) (this limit applies to the rate of *new connections*, not the total number of connections) | Higher of 100/sec or 12/sec/unit <br/> For example, two S1 units are 2\*12 = 24 new connections/sec, but you have at least 100 new connections/sec across your units. With nine S1 units, you have 108 new connections/sec (9\*12) across your units. | 120 new connections/sec/unit | 6,000 new connections/sec/unit |
3640
| Device-to-cloud sends | Higher of 100 send operations/sec or 12 send operations/sec/unit <br/> For example, two S1 units are 2\*12 = 24/sec, but you have at least 100 send operations/sec across your units. With nine S1 units, you have 108 send operations/sec (9\*12) across your units. | 120 send operations/sec/unit | 6,000 send operations/sec/unit |
37-
| Cloud-to-device sends<sup>1</sup> | 1.67 send operations/sec/unit (100 messages/min/unit) | 1.67 send operations/sec/unit (100 send operations/min/unit) | 83.33 send operations/sec/unit (5,000 send operations/min/unit) |
38-
| Cloud-to-device receives<sup>1</sup> <br/> (only when device uses HTTPS)| 16.67 receive operations/sec/unit (1,000 receive operations/min/unit) | 16.67 receive operations/sec/unit (1,000 receive operations/min/unit) | 833.33 receive operations/sec/unit (50,000 receive operations/min/unit) |
3941
| File upload | 1.67 file upload initiations/sec/unit (100/min/unit) | 1.67 file upload initiations/sec/unit (100/min/unit) | 83.33 file upload initiations/sec/unit (5,000/min/unit) |
40-
| Direct methods<sup>1</sup> | 160KB/sec/unit<sup>2</sup> | 480KB/sec/unit<sup>2</sup> | 24MB/sec/unit<sup>2</sup> |
4142
| Queries | 20/min/unit | 20/min/unit | 1,000/min/unit |
42-
| Twin (device and module) reads<sup>1</sup> | 100/sec | Higher of 100/sec or 10/sec/unit | 500/sec/unit |
43-
| Twin updates (device and module)<sup>1</sup> | 50/sec | Higher of 50/sec or 5/sec/unit | 250/sec/unit |
44-
| Jobs operations<sup>1</sup> <br/> (create, update, list, delete) | 1.67/sec/unit (100/min/unit) | 1.67/sec/unit (100/min/unit) | 83.33/sec/unit (5,000/min/unit) |
45-
| Jobs device operations<sup>1</sup> <br/> (update twin, invoke direct method) | 10/sec | Higher of 10/sec or 1/sec/unit | 50/sec/unit |
46-
| Configurations and edge deployments<sup>1</sup> <br/> (create, update, list, delete) | 0.33/sec/unit (20/min/unit) | 0.33/sec/unit (20/min/unit) | 0.33/sec/unit (20/min/unit) |
47-
| Device stream initiation rate<sup>1</sup> | 5 new streams/sec | 5 new streams/sec | 5 new streams/sec |
48-
| Maximum number of concurrently connected device streams<sup>1</sup> | 50 | 50 | 50 |
49-
| Maximum device stream data transfer<sup>1</sup> (aggregate volume per day) | 300 MB | 300 MB | 300 MB |
5043

51-
<sup>1</sup>This feature is not available in the basic tier of IoT Hub. For more information, see [How to choose the right IoT Hub](iot-hub-scaling.md). <br/><sup>2</sup>Throttling meter size is 4 KB. Throttling is based on request payload size only.
44+
### Standard tier operations
45+
46+
The following table shows the enforced throttles for operations that are available in standard tiers only. Values refer to an individual hub.
47+
48+
| Throttle | Free and S1 | S2 | S3 |
49+
| -------- | ------- | ------- | ------- |
50+
| Cloud-to-device sends | 1.67 send operations/sec/unit (100 messages/min/unit) | 1.67 send operations/sec/unit (100 send operations/min/unit) | 83.33 send operations/sec/unit (5,000 send operations/min/unit) |
51+
| Cloud-to-device receives <br/> (only when device uses HTTPS)| 16.67 receive operations/sec/unit (1,000 receive operations/min/unit) | 16.67 receive operations/sec/unit (1,000 receive operations/min/unit) | 833.33 receive operations/sec/unit (50,000 receive operations/min/unit) |
52+
| Direct methods | 160KB/sec/unit<sup>1</sup> | 480KB/sec/unit<sup>1</sup> | 24MB/sec/unit<sup>1</sup> |
53+
| Twin (device and module) reads | 100/sec | Higher of 100/sec or 10/sec/unit | 500/sec/unit |
54+
| Twin updates (device and module) | 50/sec | Higher of 50/sec or 5/sec/unit | 250/sec/unit |
55+
| Jobs operations <br/> (create, update, list, delete) | 1.67/sec/unit (100/min/unit) | 1.67/sec/unit (100/min/unit) | 83.33/sec/unit (5,000/min/unit) |
56+
| Jobs device operations <br/> (update twin, invoke direct method) | 10/sec | Higher of 10/sec or 1/sec/unit | 50/sec/unit |
57+
| Configurations and edge deployments <br/> (create, update, list, delete) | 0.33/sec/unit (20/min/unit) | 0.33/sec/unit (20/min/unit) | 0.33/sec/unit (20/min/unit) |
58+
| Device stream initiation rate | 5 new streams/sec | 5 new streams/sec | 5 new streams/sec |
59+
| Maximum number of concurrently connected device streams | 50 | 50 | 50 |
60+
| Maximum device stream data transfer (aggregate volume per day) | 300 MB | 300 MB | 300 MB |
61+
62+
<sup>1</sup>Throttling meter size is 4 KB. Throttling is based on request payload size only.
5263

5364
### Throttling details
5465

@@ -58,13 +69,11 @@ The following table shows the enforced throttles. Values refer to an individual
5869

5970
Finally, if your payload size is between 156KB and 160 KB, you'll be able to make only 1 call per second per unit in your hub before hitting the limit of 160 KB/sec/unit.
6071

61-
* For *Jobs device operations (update twin, invoke direct method)* for tier S3, 50/sec/unit only applies to when you invoke methods using jobs. If you invoke direct methods directly, the original throttling limit of 24 MB/sec/unit (for S3) applies.
62-
63-
* **Quota** is the aggregate number of messages you can send in your hub *per day*. You can find your hub's quota limit under the column **Total number of messages /day** on the [IoT Hub pricing page](https://azure.microsoft.com/pricing/details/iot-hub/).
72+
* For *Jobs device operations (update twin, invoke direct method)* for tier S3, 50/sec/unit only applies to when you invoke methods using jobs. If you invoke direct methods directly, the original throttling limit of 24 MB/sec/unit (for S3) applies.
6473

65-
* Your cloud-to-device and device-to-cloud throttles determine the maximum *rate* at which you can send messages -- number of messages irrespective of 4 KB chunks. D2C messages can be up to 256 KB; C2D messages can be up to 64 KB. These are the [maximum message sizes] for each type of message.
74+
* Your cloud-to-device and device-to-cloud throttles determine the maximum *rate* at which you can send messages -- number of messages irrespective of 4 KB chunks. D2C messages can be up to 256 KB; C2D messages can be up to 64 KB. These are the [maximum message sizes] for each type of message.
6675

67-
* It's a good practice to throttle your calls so that you don't hit/exceed the throttling limits. If you do hit the limit, IoT Hub responds with error code 429 and the client should back-off and retry. These limits are per hub (or in some cases per hub/unit). For more information, refer to [Manage connectivity and reliable messaging/Retry patterns](iot-hub-reliability-features-in-sdks.md#retry-patterns).
76+
* It's a good practice to throttle your calls so that you don't hit/exceed the throttling limits. If you do hit the limit, IoT Hub responds with error code 429 and the client should back-off and retry. These limits are per hub (or in some cases per hub/unit). For more information, refer to [Manage connectivity and reliable messaging/Retry patterns](iot-hub-reliability-features-in-sdks.md#retry-patterns).
6877

6978
### Traffic shaping
7079

@@ -93,14 +102,14 @@ IoT Hub enforces other operational limits:
93102
| Devices | The total number of devices plus modules that can be registered to a single IoT hub is capped at 1,000,000. The only way to increase this limit is to contact [Microsoft Support](https://azure.microsoft.com/support/options/).|
94103
| File uploads | 10 concurrent file uploads per device. |
95104
| Jobs<sup>1</sup> | Maximum concurrent jobs is 1 (for Free and S1), 5 (for S2), and 10 (for S3). However, the max concurrent [device import/export jobs](iot-hub-bulk-identity-mgmt.md) is 1 for all tiers. <br/>Job history is retained up to 30 days. |
96-
| Additional endpoints | Paid SKU hubs may have 10 additional endpoints. Free SKU hubs may have one additional endpoint. |
97-
| Message routing queries | Paid SKU hubs may have 100 routing queries. Free SKU hubs may have five routing queries. |
98-
| Message enrichments | Paid SKU hubs can have up to 10 message enrichments. Free SKU hubs can have up to 2 message enrichments.|
105+
| Additional endpoints | Basic and standard SKU hubs may have 10 additional endpoints. Free SKU hubs may have one additional endpoint. |
106+
| Message routing queries | Basic and standard SKU hubs may have 100 routing queries. Free SKU hubs may have five routing queries. |
107+
| Message enrichments | Basic and standard SKU hubs can have up to 10 message enrichments. Free SKU hubs can have up to 2 message enrichments.|
99108
| Device-to-cloud messaging | Maximum message size 256 KB |
100109
| Cloud-to-device messaging<sup>1</sup> | Maximum message size 64 KB. Maximum pending messages for delivery is 50 per device. |
101110
| Direct method<sup>1</sup> | Maximum direct method payload size is 128 KB for the request and 128 KB for the response. |
102-
| Automatic device and module configurations<sup>1</sup> | 100 configurations per paid SKU hub. 10 configurations per free SKU hub. |
103-
| IoT Edge automatic deployments<sup>1</sup> | 50 modules per deployment. 100 deployments (including layered deployments) per paid SKU hub. 10 deployments per free SKU hub. |
111+
| Automatic device and module configurations<sup>1</sup> | 100 configurations per basic or standard SKU hub. 10 configurations per free SKU hub. |
112+
| IoT Edge automatic deployments<sup>1</sup> | 50 modules per deployment. 100 deployments (including layered deployments) per basic or standard SKU hub. 10 deployments per free SKU hub. |
104113
| Twins<sup>1</sup> | Maximum size of desired properties and reported properties sections are 32 KB each. Maximum size of tags section is 8 KB. Maximum size of each individual property in every section is 4 KB. |
105114
| Shared access policies | Maximum number of shared access policies is 16. |
106115
| Restrict outbound network access | Maximum number of allowed FQDNs is 20. |
@@ -127,8 +136,3 @@ If you see unexpected increases in operation latency, contact [Microsoft Support
127136
## Next steps
128137

129138
For an in-depth discussion of IoT Hub throttling behavior, see the blog post [IoT Hub throttling and you](https://azure.microsoft.com/blog/iot-hub-throttling-and-you/).
130-
131-
Other reference topics in this IoT Hub developer guide include:
132-
133-
* [IoT Hub endpoints](iot-hub-devguide-endpoints.md)
134-
* [Monitor IoT Hub](monitor-iot-hub.md)

0 commit comments

Comments
 (0)