The errors
| Error | Meaning |
|---|---|
ServerBusyException / The request was terminated because the entity is being throttled. Error code: 50002 | Ingress or egress above the namespace's capacity |
QuotaExceededException | Too many consumer groups, connections or receivers per partition |
Kafka clients: THROTTLING_QUOTA_EXCEEDED or large throttle_time_ms | Same throttling via the Kafka endpoint |
1. Check the metrics
In the namespace Metrics, chart over the incident window: Throttled Requests, Incoming Bytes, Outgoing Bytes, Incoming Messages, with a 1-minute grain.
Standard tier limits per throughput unit (TU): about 1 MB/s or 1,000 events/s ingress, and 2 MB/s egress.
az eventhubs namespace show -g rg-stream -n evh-prod --query "{sku:sku.name, tu:sku.capacity, autoInflate:isAutoInflateEnabled, max:maximumThroughputUnits}"
2. Add capacity
# Standard: more TUs, or enable auto-inflate
az eventhubs namespace update -g rg-stream -n evh-prod --capacity 8
az eventhubs namespace update -g rg-stream -n evh-prod --enable-auto-inflate true --maximum-throughput-units 20
Note
Auto-inflate scales up only. It never scales back down, so check the TU count after a peak, or you keep paying for it.
Premium and Dedicated use processing units or capacity units, with much higher per-unit throughput.
3. Partition hot spots
Each partition has its own throughput ceiling (around 1 MB/s on Standard). If all events use the same partition key (for example, a constant tenant ID), one partition throttles while others idle.
- Use a high-cardinality partition key, or no key (round robin), when ordering isn't needed.
- The partition count can't be reduced, and on Standard can't be increased after creation. Plan it upfront (Premium and Dedicated allow increases).
4. Producer settings
- Batch events (
EventDataBatch). Many tiny sends waste capacity and hit the events-per-second limit. - Keep the SDK retry policy with exponential backoff; it handles short throttling bursts.
- Reuse producer clients. Don't create a connection per message.
5. Consumer lag
Lag isn't throttling, but often appears with it:
- Only one active reader per partition per consumer group with the processor client. More instances than partitions sit idle.
- Checkpoint every N events or seconds, not every event (checkpoint storage becomes the bottleneck).
- Give each downstream application its own consumer group.
Tip
Alert on Throttled Requests > 0 for 5 minutes and on consumer lag. Throttling for a few seconds is normal; throttling for minutes means you need more units or a better key.