I have a EventHub trigger function app using Elastic Premium tier and I’m getting a bottleneck on the EventHub side because the function doesn’t scale more than 20 instances(Maximum of Minimum Instances Always Ready) to process messages, even reaching a high CPU percentage.
Is there any way to "force" this scaling to hit the Maximum Burst?
Because as I’m using EventHub trigger, I need a larger number of instances to consume more messages.
FYI: I’m using Runtime Scale Monitoring as Microsoft recommends here: Runtime Scale Monitoring
I’m trying to scale my Elastic Premium Azure Function to consume my EventHub messages without any lag.
2
Answers
I found the issue. Two app settings were missing:
Here the doc
These appsettings are mandatory and the Function doesn't create it automatically. The behavior I noticed is that without these properties the function is limited to scaling up to 20 instances, which is the max for Always Ready Instances even if you haven't used that max number.
I think this is a little trick because the documentation is a bit ambiguous about the use of these properties.
As per the Ms-Doc the Always Ready Instances in a Premium plan has the limitation we can’t extend more than 20 instances.
When the function requires more instance once it reach the Always Ready Instance 20 it will allocate the instances as per the function load. As of now we can’t increase the Always Ready Instances more than 20.