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