Azure / azure-webjobs-sdk

Azure WebJobs SDK
MIT License
739 stars 358 forks source link

ScaleManager.GetTargetScalersResultAsync should only query for concurrency status when Dynamic Concurrency is enabled #3079

Open mathewc opened 5 months ago

mathewc commented 5 months ago

Currently the code here in ScaleManager.GetTargetScalersResultAsync get Dynamic Concurrency status results regardless of whether DC is enabled. Even when Dynamic Concurrency isn't enabled, this code ends up generating Info level logs in customer logs like this:

2024-06-17T01:53:44Z   [Information]   Request [4912b6a3-00cf-4e28-9c60-9f53379eba98] GET https://<sitename>.blob.core.windows.net/azure-webjobs-hosts/concurrency/<appname>/concurrencyStatus.json
x-ms-version:2021-08-06
Accept:application/xml
x-ms-client-request-id:4912b6a3-00cf-4e28-9c60-9f53379eba98
x-ms-return-client-request-id:true
User-Agent:azsdk-net-Storage.Blobs/12.13.0 (.NET 6.0.29; Microsoft Windows 10.0.20348)
x-ms-date:Mon, 17 Jun 2024 01:53:43 GMT
Authorization:REDACTED
client assembly: Azure.Storage.Blobs
2024-06-17T01:53:44Z   [Warning]   Error response [4912b6a3-00cf-4e28-9c60-9f53379eba98] 404 The specified blob does not exist. (00.0s)
Server:Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id:392d9bdc-d01e-0036-3659-c0991c000000
x-ms-client-request-id:4912b6a3-00cf-4e28-9c60-9f53379eba98
x-ms-version:2021-08-06
x-ms-error-code:BlobNotFound
Date:Mon, 17 Jun 2024 01:53:42 GMT
Content-Length:215
Content-Type:application/xml

This confuses customers, and generates a lot of log noise. We should only check for this status if DC is enabled. It's not only a logging issue - if DC isn't enabled, we shouldn't be using stale status data for scale decisions. We should do a check similar to the check done here.