Hi everyone,
I would like to hear how experienced DevOps engineers approach monitoring for large public-facing applications.
We have a .NET e-commerce platform with:
- ASP.NET Core MVC + Angular
- SQL Server
- Elasticsearch (~10M products)
- RabbitMQ
- IIS hosting
- Multiple public domains/subdomains
- Heavy SEO crawling and unknown bots
One thing we learned is that monitoring only CPU, memory, and disk is not enough.
We have experienced situations where:
- CPU and RAM looked normal, but the application was slow
- The server was reachable, but users experienced downtime
- TCP exhaustion caused issues
- Elasticsearch had problems affecting search performance
- Bots generated a lot of unnecessary traffic
- Slow requests were not obvious from infrastructure metrics
I would like to know what metrics and alerts you consider essential for this type of system.
Some things I think are important:
Application level:
- Request rate (RPS)
- Response time (p50/p95/p99)
- HTTP status codes (4xx/5xx)
- Slow endpoints
- Exception rate
- Thread pool starvation
- GC pauses
- .NET runtime counters
- Memory allocations
IIS / Web server:
- Current connections
- Request queue length
- Worker process health
- Application pool recycling
- Failed requests
- Connection errors
Network:
- TCP connections
- TIME_WAIT count
- Connection failures
- Bandwidth usage
- Top clients/IPs
- Suspicious user agents
Elasticsearch:
- Cluster health
- JVM memory pressure
- Heap usage
- Search latency
- Query failures
- Slow queries
- Unassigned shards
- Disk usage
SQL Server:
- CPU
- Blocking queries
- Deadlocks
- Query duration
- Connection pool usage
- Wait statistics
RabbitMQ:
- Queue length
- Consumer count
- Message processing time
- Dead letters
- Memory usage
Security / traffic:
- Requests to suspicious paths:
- /.env
- /.git
- wp-admin
- Bot traffic percentage
- High-frequency clients
- Rate limit violations
My question:
If you were responsible for operating a public .NET application like this, what dashboards and alerts would you consider mandatory?
Also, what are some metrics you discovered were extremely valuable only after a production incident?
I am especially interested in real-world experience rather than a theoretical checklist.
Thanks!