A frustrated user calls to inform you that your .NET application is running slow in production. Pop quiz hotshot, what do you do?
The most obvious choice would be to check system resource of your IIS web servers that run your application. For example, Performance Monitor (Perfmon) in Windows gives you visibility of how an application consumes server resource like CPU, memory, disk I/O and database connection pools. Unfortunately, Windows metrics and CLR counters simply tell you how resource is being consumed by an application, they don’t tell you what application component is responsible for that consumption. Application monitoring visibility must therefore go beyond traditional server metrics and health, they need to expose what application components are responsible for poor performance.
In addition to Perfmon you might also check:
- Windows Event Viewer
- Log files
- SQL Profiler
- Visual Studio Profiler
Visual Studio is the only viable option that really provides visibility into an application and its performance. The only limitation is that Visual Studio is really a profiler/debugger for development and test environments, it was never designed for production usage. Its safe to say there’s been a lack of free or commercial tools that will monitor .NET application performance out-of-the-box, in production. That is until now.
Introducing AppDynamics Lite for .NET
Today, we’re announcing AppDynamics Lite for .NET – the first completely free .NET application monitoring solution for production. This, in addition to our commercial solution AppDynamics Pro for .NET, which has already experienced significant success since its launch in July 2011.
Why release a free monitoring solution for .NET? Because we wanted to prove that monitoring .NET application performance in production can be simple, thru software that was designed to auto-discover, configure and monitor whats relevant in your .NET application, without you lifting a finger. Our mission at AppDynamics is to deliver maximum monitoring visibility thru minimal effort.
For example, 2 minutes after downloading and installing AppDynamics Lite for .NET you might see something like this:
Application Mapping, Business Transaction Monitoring and Diagnostics for Free!
Instead of looking at Server metrics, Events and SQL profiles, AppDynamics Lite will automatically discover and visualize your .NET application. Showing all IIS web server interactions (e.g. Web services, databases, LDAP and message queus), business transactions (user requests) and associated performance metrics. End users experience business transactions, with AppDynamics Lite you now have complete business transaction context to monitor and troubleshoot what your end users experience.
For example, in the screenshot above we can drill-down on the “Update Orders” business transaction to see why it was taking 7.9 seconds:
After drilling down we now see a view showing all bad requests (known as snapshots) that were captured by AppDynamics Lite. Snapshots represent an individual execution of a business transaction that relates to a user. You can see the response time of snapshots shown in the above screenshot differ. This means some user requests were OK, some threw exceptions (red icons) and others stalled (exclamation icons).
From the above snapshots view its possible to drill-down on any snapshot to understand its code execution and latency, as well as identifying the actual root cause behind slow performance:
In the above screenshot, AppDynamics Lite provides a view showing the code execution latency (call graph) of application classes and methods that were invoked by the slow snapshot (business transaction). Its worth stating that this visibility is available in production with minimal impact to the application running. Notice that the majority of total response time spent in this “Update Order” business transaction was spent on two ADO.NET calls which took ~3.5 seconds each.
From the above view we can see the associated SQL calls by either clicking on the ADO.NET link (next to each call) or by clicking the “SQL Calls” tab to the left of the call graph. Here we see the two SQL statements responsible for the 7.5 second response time. We can now confirm that the root cause of “Update Orders” business transaction taking 7.5 seconds was data access and two offending SQL queries.
Pro-Active Alerting for Free!
AppDynamics Lite also has pro-active dashboard and alerting capabilities. This means you can continuously monitor the performance of your application and business transactions in real-time, and be alerted via email when performance deviates from its normal baseline or threshold. For example, below is a screenshot showing a simple dashboard which has been created with four alerts (Overall App Response Time, Overall App Errors/min, Get Product Response Time and Login Response Time). You can see that the Overall App Response Time is breaching its 1 second threshold, in this scenario an alert would be fired to development or operations so they can begin troubleshooting.
All these features are completely free and will run all day in production 24/7! AppDynamics Lite is limited to a single IIS web server, with AppDynamics Pro becoming the choice for applications that are distributed across multiple IIS web servers and services.