An Azure service that provides an event-driven serverless compute platform.
Thanks for the checklist. I went through it:
Scope. The limit was read from the running resource (functionAppConfig.scaleAndConcurrency): maximumInstanceCount 10 with 512 MB during the first test and 20 with 2048 MB during the second. The activity log shows no writes to the app between setting each value and the end of each test. The Application Insights resource receives telemetry from this one function app only: every row during both tests has the same cloud_RoleName. There are no deployment slots (Flex Consumption doesn’t support them).
Instances. Filtered on that cloud_RoleName:
- Test 1 (2 Nov, 18:44–18:52 UTC, limit 10): 42 distinct
cloud_RoleInstancevalues. 41 of them executed our HTTP functions; the last one only sent host telemetry for one minute. - Test 2 (3 Nov, 21:14–21:21 UTC, limit 20): 31 distinct instances, all 31 executed the HTTP functions.
- The app’s only non-HTTP function (a nightly timer) did not run on any of them.
Counted with customMetrics | where name endswith ' Count' | summarize instances=dcount(cloud_RoleInstance) by name and union customMetrics, performanceCounters, traces | summarize dcount(cloud_RoleInstance) by bin(timestamp, 1m). I can share the instance IDs privately.
Billing. The platform metric OnDemandFunctionExecutionUnits also exceeds what the limit allows: up to 3,170 GB-s per minute in test 2, where 20 instances × 2 GB × 60 s = 2,400, and up to 515 GB-s per minute in test 1, where the maximum is 300. That metric is metered by the platform, not by our telemetry, so the gap can’t be explained by the telemetry scope.
We don’t have a paid support plan, so I can’t open a technical case. Could you forward this to the Azure Functions product group? A billing case about the charges is already open.