Microsoft has released an SDK for its monitoring platform Visual Studio Application Insights that brings support for ASP.NET 5. Application Insights is divided into two main components; the Azure portal is where the data is displayed and the SDK provides the API to send telemetry events.
Dependency injection, which was improved in ASP.NET 5, provides the necessary objects to configure and send telemetry events. To learn more about this release, we talked with Sergey Kanzhelev, senior development lead at Microsoft and asked him a few questions.
InfoQ: What are the key points ASP.NET 5 enabled you to do that you couldn't do before, for example with ASP.NET 4?
Sergey Kanzhelev: There are many new features in ASP.NET 5 like native support of dependency injection, improved request processing pipeline, non-Windows platforms support and more. Application Insights benefits from all those framework improvements by having better a testability story and by being easier to configure.
InfoQ: This release supports both Azure and non-Azure ASP.NET 5 web sites?
SK: Yes, the SDK supports both Azure and non-Azure installations of ASP.NET 5 web sites. For Azure Web Apps (used to be Azure Web Sites) we’re planning more in-depth integration similar to what we have with ASP.NET 4. For example, you can use the Azure web app control panel in Azure portal to configure monitoring by Application Insights.
Also, ASP.NET 5 runs on Linux and Mac. We have customers who are running Application Insights on those platforms.
InfoQ: There are other monitoring tools available on the market with ASP.NET monitoring capabilities. What are the key differentiators that would make you choose Application Insights?
SK: Application Insights is very much aimed at DevOps: it’s for continuously enhancing your app. For example, we designed it as an SDK, not as an external agent. That means it has an API that you can use to track usage and performance in detail from your code. When you design a new user story, you also design the monitoring of how users are actually using it – to see whether the new feature is working and how you can improve it.
Of course, there’s plenty of functionality you get right out of the box – you don’t have to write a line of code to get useful results. But we emphasize putting you, the developer, in control of the telemetry you send, to get the data you need to make your product really great.
InfoQ: In the blog post, you wrote "We’ve designed it primarily as a development tool..." Can you elaborate on this? What makes it a development tool, rather than a tool for load management?
SK: As a developer, I want to know how I should write or rewrite my code so that it works better for the users. I’m interested in how many of them achieve their goals with my app or where they drop out, what mistakes they make, how well it performs for them, and which paths they take through the user experience. With Application Insights I can find out some of those things right out of the box, and I can get more detail by writing a few lines of code. And I can switch modules in or out depending on the information I want. By contrast, tools aimed at operations focus more on raw performance – how many transactions per minute, without putting much emphasis on what the users were trying to do.
For more information about the ASP.NET 5 SDK, the project's documentation and source code are available on GitHub.