An Azure service that is used to collect, analyze, and act on telemetry data from Azure and on-premises environments.
Hello Dewa, You are currently running Azure Functions: Consumption plan (.NET 8) and Azure SQL Database: General Purpose – Serverless (4 vCores). You have already configured baseline monitoring (requests, memory, CPU, connections). Your goal is to ensure that as traffic increases, you can:
- Detect approaching resource limits early
- Identify performance bottlenecks before failures
- Monitor scaling behavior and saturation signals
the metrics that actually warn you you're approaching a limit are mostly utilization-%-vs-limit and scaling signals, which your current list is missing. I'd add:
Azure Functions (depends on your plan — Consumption/Flex/Premium scale differently):
- Instance count (Flex: Automatic Scaling Instance Count) vs your plan's max scale-out — the real ceiling.
- Connections vs the per-instance SNAT/connection limit (outbound SNAT port exhaustion is a classic scale failure).
- Http5xx / FunctionErrors, Response Time, CPU Percentage, Thread pool queue length.
- Enable Application Insights for per-function duration/dependencies/exceptions, and use Dashboards with Grafana under Monitoring. Ref: https://learn.microsoft.com/azure/azure-functions/monitor-functions-reference#metrics
Azure SQL Database (DTU vs vCore changes which apply). Your CPU/memory metrics miss the IO/log/worker/session ceilings that usually hit first:
- DTU percentage (= max of CPU/Data IO/Log IO — best single signal, DTU model), Data IO %, Log IO percentage (write-heavy bottleneck), Workers percentage, Sessions percentage (very relevant as Functions scale out and open connections), Data space used %.
- Alert at >80% for CPU/DTU/Log IO; Deadlocks > 1.
- For capacity-fit decisions, query
sys.resource_stats/sys.dm_db_resource_stats(avg/max CPU, IO, log, workers, sessions vs tier) and use Query Performance Insight / Database Watcher. Ref: https://learn.microsoft.com/azure/azure-sql/database/monitoring-metrics-alerts
Best practice before the traffic increase: set alerts at ~75–80% of each limit for lead time, then run a load test watching Functions instance-count-vs-max + connections and SQL DTU/Log-IO/Workers/Sessions %..
Your current monitoring configuration provides a strong baseline, but to proactively detect scaling and capacity issues, it is critical to:
- Add latency, error rate, and scaling metrics for Azure Functions
- Extend SQL monitoring to include IO, log, sessions, and worker limits
- Enable Application Insights for end-to-end observability
References: https://learn.microsoft.com/azure/azure-functions/monitor-functions https://learn.microsoft.com/azure/azure-functions/monitor-functions-reference#metrics https://learn.microsoft.com/azure/azure-sql/database/monitoring-metrics-alerts?view=azuresql https://learn.microsoft.com/azure/azure-sql/database/serverless-tier-overview?view=azuresql#monitor
Hope this helps! thanks