The market for application performance monitoring products is pretty crowded these days. On one hand we have the traditional players with their at times old school APM solutions, and on the other hand we have new entrants who have disrupted the market with modern, web centric product offerings.
Traditional heavyweights such as IBM, HP, CA, Compuware and others are facing off with new kids on the block such as New Relic, AppDynamics and many others. Conspicuously absent from this battleground was Microsoft.
While Microsoft acquired Avicode - a dotnet APM and diagnostic product - and subsequently baked it into its System Center Operations Manager - or SCOM in short - it never was given much love and development, at least it was not obvious.
Enter Azure Application Insights. This has recently gone GA and it would appear that it is a key plank in Microsoft's APM strategy. With hooks in Visual Studio, Application Insights would seem to be geared for the developer and is available at design time to Visual Studio developers to help troubleshoot their code.
Initially not sure why you would give it a second thought over the likes of AppDynamics or New Relic, I must say I find the product interesting and the depth of information, ease of access and consumption and the free tier pricing actually quite compelling.
It could not be simpler to actually instrument your application in Visual Studio. A single checkbox allows to bake the SDK into your application code, and a couple of further configuration settings will send application telemetry straight to the Azure Portal based Application Insights service.
Of course you can also instrument your existing applications at run time without changing any code. However, the level of insights and data you get is slightly different. Do this for Azure Web Apps through a few clicks in the portal.
Certainly if you are a dotnet developer already on the Microsoft stack, developing in Visual Studio, running your applications on Azure either on IaaS or PaaS services, Application Insights seems a logical choice. It seamlessly integrates with Microsoft's Azure based Log Analytics offering, which is a very interesting product in itself and worthy of its own post down the track.
Application Insights does not just work for dotnet applications and IIS in Azure, but also works for J2EE / Java applications, and on premise workloads. To instrument on-premise servers, you can download an agent that will configure your IIS server to send telemetry back to Azure Application Insights.
In SummaryAs a whole, Application Insights has got me curious, and I am keen to explore whether it actually has any merit in a commercial/enterprise context.
Its integration with log analytics, automatic graphical application and dependency mapping, code diagnostics capability, ability to combine with single or multi step web tests provide a pretty neat package for all-round availability and performance monitoring.
Related links for this postMicrosoft Azure Application Insights
Documentation for Application Insights - Get Started
AcronymsAPM = Application Performance Management
IIS = Internet Information Server
IaaS = Infrastructure as a Service
PaaS = Platform as a Service
GA = General Availability