-
Notifications
You must be signed in to change notification settings - Fork 8
Scaling not working, external scaler throws exception #18
Comments
Which version of KEDA are you running? |
I'm using 2.0 stable version of KEDA, which I installed using helm: |
We have changed the name of the scaled object type, you can find it in our migration docs. However, I think this scaler has not ben migrated to 2.0 as well, right @TsuyoshiUshio ? Function tooling is being updated to support 2.0 and should land soon. |
Thank you for your guidance @tomkerkhove, I changed values of scaled object after referring to migration docs, and I'm able to run 2.0.0-rc version. However, I'm getting the same error. Will wait for @TsuyoshiUshio 's inputs regarding migrating the scaler to 2.0. Please let me know if I could be of any help. Thanks! |
@rohannevrikar |
Hi.
Also, when running
I am using KEDA v2.2.0: Like @rohannevrikar, my pod is running fine but there is no scaling. Any help would be greatly appreciated. Thanks! |
Hi @samfisher07 You can consider SQL backend for the Durable. @cgillum develops SQL backend and keda support it. SQL Provider is developed for k8s usage since on-prem scenario sometimes, they can't access to the Storage Account. If you are interested, please have a look! https://techcommunity.microsoft.com/t5/apps-on-azure/new-storage-providers-for-azure-durable-functions/ba-p/2382044 Durable Task SQL Provider |
Hi @TsuyoshiUshio, Thanks for the workaround, it works very well. Not sure if this belongs here, but I had to modify the "GetScaleRecommendation" query to return a minimum value of 1 for the mssql scaler to work correctly with durable functions. Cheers, |
@samfisher07 I’m glad to hear the SQL provider worked well for you! Would you be willing to share more details of your feedback on dt.GetScaleRecommendation here? https://github.com/microsoft/durabletask-mssql/issues? |
I want to use KEDA for durable functions. I have been following Getting Started doc of this repo to test scaling of durable functions, but can't get to make it work. I have a simple durable function orchestration like this one. Also tried with QueueTriggered orchestration (actually this is what I to implement in my project), but doesn't work for that too.
Steps which I followed:
Logs of events and external scaler pod:
kubectl get events
FailedGetExternalMetric horizontalpodautoscaler/keda-hpa-durable-keda unable to get external metric default/ScaleRecommendation/&LabelSelector{MatchLabels:map[string]string{deploymentName: durable-keda,},MatchExpressions:[],}: unable to fetch metrics from external metrics API: No matching metrics found for scalerecommendation FailedComputeMetricsReplicas horizontalpodautoscaler/keda-hpa-durable-keda invalid metrics (1 invalid out of 1), first error is: failed to get ScaleRecommendation external metric: unable to get external metric default/ScaleRecommendation/&LabelSelector{MatchLabels:map[string]string{deploymentName: durable-keda,},MatchExpressions:[]LabelSelectorRequirement{},}: unable to fetch metrics from external metrics API: No matching metrics found for scalerecommendation
kubectl logs keda-durable-external-scaler-86c6f85bcc-s77qz -n keda -f
Request starting HTTP/2 POST http://durable-external-scaler-service.keda.svc.cluster.local:5000/externalscaler.ExternalScaler/GetMetrics application/grpc info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0] Executing endpoint 'gRPC - /externalscaler.ExternalScaler/GetMetrics' dbug: Grpc.AspNetCore.Server.ServerCallHandler[1] Reading message. info: Keda.Durable.Scaler.Server.Services.ExternalScalerService[0] Namespace: default DeploymentName: durable-keda GetMetrics() called. fail: Grpc.AspNetCore.Server.ServerCallHandler[3] Error when executing service method 'GetMetrics'. System.NullReferenceException: Object reference not set to an instance of an object. at Keda.Durable.Scaler.Server.Services.ExternalScalerService.GetMetrics(GetMetricsRequest request, ServerCallContext context) in /src/src/Keda.Durable.Scaler.Server/Services/ExternalScalerService.cs:line 112 at Grpc.AspNetCore.Server.Internal.CallHandlers.UnaryServerCallHandler3.HandleCallAsyncCore(HttpContext httpContext, HttpContextServerCallContext serverCallContext) at Grpc.AspNetCore.Server.Internal.CallHandlers.UnaryServerCallHandler.HandleCallAsyncCore(HttpContext httpContext, HttpContextServerCallContext serverCallContext) at Grpc.AspNetCore.Server.Internal.CallHandlers.ServerCallHandlerBase3.<HandleCallAsync>g__AwaitHandleCall|17_0(HttpContextServerCallContext serverCallContext, Method2 method, Task handleCall)
Specifications: Docker Desktop for Windows (2.4.0.0), Kubernetes (1.18.8)
Please let me know if more information is needed, I'd be happy to dig out as much as I can. I'm still new to Kubernetes so not sure whether this is a bug or I'm just missing something. Thanks!
The text was updated successfully, but these errors were encountered: