azureazure-blob-storageazure-eventhub

EventHubs: Limit Transaction/Operations on dedicated storage accounts


Recently, we had one of our clients running an excessive amount of transaction API calls to the dedicated Event Hubs blob storage account. I believe they were using Event Hub Event Processor to retrieve the data. At one point For over 6 hours they ran over 300k transaction calls to ListBlobs API. These additional transactions added a $50 daily cost to our subscription.

Is there a way for us to limit/cap the transactions on Event Hub's related storage accounts ?

I have already set up an Alert rule to get notified when blob transaction reaches the threshold.

Thanks


Solution

  • Blob storage is used by processor types to track partition ownership and is critical infrastructure for load balancing. Your options to reduce calls:

    Additional context

    Load balancing calls per cycle

    Default configuration:

    Calls to Event Hubs:

    Calls to Storage:

    What is load balancing doing?

    Load balancing is best thought of as a naive competing consumer that runs in a giant while loop on a predictable schedule. It attempts to maintain a fair balance of the work by prioritizing its own "fair share" of partitions and will favor stability if there isn't a clear imbalance.

    At a high level, each cycle will: