Azure Monitor (aka Application Insights)
So far I was using NewRelic for .NET applications monitoring on production and it is a great product. It has everything that we could expect from APM tool: browser and backend code instrumentation, alerts, error stack traces, requests performance statistics, CPU, memory and disk usage; even showing SQL queries sent to database and Redis query statistics.
Recently I've put some effort to evaluate Azure Monitor as an alternative. I was using it before for basic use cases of monitoring Azure resources but I've never explored it's full capabilities. And that capabilities are enormous!
With NewRelic I was using ELK (Elastic, Logstash , Kibana) as a complementary tool to gather custom application-specific logs and metrics. With Azure Monitor I don't see such need anymore. When hosting applications in Azure, Azure Monitor already covers all the functionalities of both New Relic and ELK in one box.
What I like most about Azure Monitor:
- Integrates seamlessly with Azure cloud to provide host-level metrics
- Provides insights into containers running in Azure Kubernetes Service
- Runs on powerful Azure Data Explorer engine which allows to analyze data in various formats in a consistent way
- Makes it easy to define custom metrics
- Supports advanced alerts and automation based on log queries and metrics
- Easily integrates with .NET Core applications
- Rich visualization tools including ability to export data to Power BI
- ... and yes, it provides exception traces, code profiling and web request performance statistics