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
My problem may look like the issue #525 but the analysis made on this thread does not match mine.
I prefer starting a new one here, if I am mistaken thank you for your help putting this message in the right place.
Expected Behavior
When I post N messages in the queue, Azure Queue Job Scaler should create only N Jobs to treat the messages.
When the Jobs read the messages they are made 'invisible' to Peak/Get Messages functions.
Then, after pollingInterval, when the scaler read the queue there is N 'invisible' messages and 0 'visible' messages.
The scaler should not create more jobs because there is no 'visible' messages.
Actual Behavior
When I post N messages in the queue, Azure Queue Job Scaler creates N Jobs to treat the messages.
When the Jobs read the messages they are made 'invisible' to Peak/Get Messages functions.
But, after pollingInterval, when the scaler read the queue there is N 'invisible' messages and 0 'visible' messages.
The scaler creates more jobs because it looks for ApproximateMessagesCount and this returns the global count of messages.
Steps to Reproduce the Problem
Deploy a ScaledObject with a scaleType: job deploying a long running task container witch reads one message in the queue and updates its visibility_timeout regularly during the treatment.
Put 2 messages in the queue
Observe the pods in your cluster and the queue using Azure storage explorer during at least 2 polling intervals
You will see no visible messages in your queue but KEDA will scale up the jobs until you reach the queueLength scaler metadata limit (5 by default).
Specifications
Version: keda.k8s.io/v1alpha1
Platform: Azure AKS
Scaler(s): azure-queue
Fix Suggestion
In /pkg/scalers/azure_queue.go do not read the default Azure Queue Metadata ApproximateMessagesCount.
As Azure Queue does not give the VisibleMessagesCount Metadata, it is not possible to request directly this information.
What I think Azure storage explorer is doing:
Peak all the messages and calculate the length of the queue based on that.
Or maybe if someone has its ways into Microsoft here, he can request a new feature on GetProperties to add VisibleMessagesCount
Thank you for your help 😸
The text was updated successfully, but these errors were encountered:
My problem may look like the issue #525 but the analysis made on this thread does not match mine.
I prefer starting a new one here, if I am mistaken thank you for your help putting this message in the right place.
Expected Behavior
pollingInterval
, when the scaler read the queue there is N 'invisible' messages and 0 'visible' messages.Actual Behavior
pollingInterval
, when the scaler read the queue there is N 'invisible' messages and 0 'visible' messages.ApproximateMessagesCount
and this returns the global count of messages.Steps to Reproduce the Problem
ScaledObject
with ascaleType
:job
deploying a long running task container witch reads one message in the queue and updates itsvisibility_timeout
regularly during the treatment.queueLength
scaler metadata limit (5
by default).Specifications
Fix Suggestion
/pkg/scalers/azure_queue.go
do not read the default Azure Queue MetadataApproximateMessagesCount
.VisibleMessagesCount
Metadata, it is not possible to request directly this information.GetProperties
to addVisibleMessagesCount
Thank you for your help 😸
The text was updated successfully, but these errors were encountered: