Azure EventHubs KEDA Scaler with Azure Container Apps - FailedGetExternalMetric #6893
Unanswered
ALS-Adebeer
asked this question in
Q&A / Need Help
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Report
I'm having difficulty with configuring the azure-eventhub for our Event hub consumers. Checkpoints is successfully saved via
Azure.Messaging.EventHubs.Primitives.BlobCheckpointStore
but the KEDA scaler reports FailedGetExternalMetric errorExpected Behavior
KEDA is able to fetch required metrics so that consumers replicas can be scaled down to 0 when no messages to process
Actual Behavior
There are no container application errors - only errors in the container app system logs for
FailedGetExternalMetric
And for completeness - I get successful log entries for
KEDAScalersStarted
andSyncingSecretFromAzureKeyVaultForContainerAppSucceeded
(we use User assigned managed identity).Steps to Reproduce the Problem
Scaler configuration (bicep file):
We're not using legacy implementation as blob checkpoints are saved via
Azure.Messaging.EventHubs.Primitives.BlobCheckpointStore
- nuget package v5.12.1Note too that when I didn't use toLower on eventHubNamespace.name (ours have some uppercase letters) - the
KEDAScalerFailed
error message is slightly different sayingunable to get unprocessedEventCount for metrics: unable to get checkpoint from storage: Get "https://./consumer-checkpoints/<EventHubNamespaceWithSomeUpperCase>.servicebus.windows.net%2F<eventhubname>%2Fworkorderlogin%2Fcheckpoint%2F0": dial tcp: lookup . on 10.0.0.2.53: server misbehaving
. In blob storage all the container folder names are lowercase, so hence it makes sense to change to lowercase (bug?)We also don't use
Azure.Messaging.EventHubs.EventProcessorClient
, I did validate that blob storage checkpoint information (folder structure and meta info) matches exactly the checkpoint info written to blob storage and the blob meta data from a nativeEventProcessorClient
implementation. We also don't use the dynamic consumer ownership as we run 1 container app per event hub partition - as such we only write checkpoints to /.servicebus.windows.net///checkpoint' and there is no paired 'ownership' folder and I presume ownership info is irrelevant to KEDA scaler.Logs from KEDA operator
These are from ContainerAppSystemLogs_CL
KEDA Version
2.16.1
Kubernetes Version
Unknown - we use Azure Container Apps with private VNET
Platform
Azure (public cloud)
Scaler Details
azure-eventhub
Beta Was this translation helpful? Give feedback.
All reactions