Deep Diagnostics for Web Apps with Application Insights
By Merav Davidson Partner PM Director, Application Insights
4 min read
Today, at Connect() 2015 in New York, we made a few announcements on our offering for application analytics and diagnostics consisting of the following products:
- Web apps and services: Visual Studio Application Insights
- Mobile apps: HockeyApp
We are now focusing on enhancing each of these products and extending their integration into ALM tools and services including Visual Studio and Visual Studio Team Services.
HockeyApp is our Mobile DevOps solution for those of you building iOS, OS X, Android or Windows device apps, as well as cross platform apps based on Xamarin, Cordova, and Unity. With it, you can distribute builds to beta testers, collect crash data, and get user feedback. It’s integrated with Visual Studio Team Services enabling easy build deployments and work item integration. You can learn more from the HockeyApp Knowledge Base and keep up to date on the HockeyApp Blog.
In this post, I am excited to talk about Application Insights for web apps and services.
Visual Studio integration
The role of Application Insights within the broader Microsoft ALM/DevOps stack is to help developers detect and diagnose issues in their live web apps, and prioritize issues based on their impact. As dev teams adopt continuous delivery, it’s critical for them to be on top of what is happening in their rapidly changing app.
We’re therefore making Application Insights an integral part of the development process. Already, it comes as part of Visual Studio 2013 and 2015, enabling you to onboard your new or existing apps quickly and with minimal effort.
With Visual Studio 2015 Update 1, releasing soon, you can now initiate the same Application Insights Search experience you’ve had in the Azure Preview Portal without having to leave the IDE. This means that while you are investigating an issue, or triaging a bug, you can search through your production telemetry, see the results and drill into the details of that event, without having to launch your browser. This will help you use Application Insights as a development tool, and also make it easy to test your custom telemetry before pushing it to production.
Also beginning Update 1, Application Insights will integrate with Visual Studio Diagnostics Hub bringing together the F5 debugging experience with data emitted by Application Insights SDK. Simply by having the SDK installed into your project you can now see the Application Insights telemetry events in the same Events timeline you use for other F5 diagnostic investigations.
Soon you’ll also see more integration with Visual Studio Team Services (VSTS), making a bridge between pre and post production, testing and monitoring. You’ll be able to display deployment annotations from VSTS Release Management in the Application Insights charts and graphs, so that you can easily correlate changes in performance with builds.
Proactive problem detection
Application Insights is designed for developers. Dev teams no longer throw their applications over the wall to the ops team: the development cycle is tight, and developers need to know what’s happening to their app while it’s live. But the big difference between live and debug or test environments is the variability of conditions out there in the wild. If your response times get worse across the board, that’s easy to see; but it can be harder to spot variations that only affect some users in some cases.
We are in the process of introducing a machine learning based experience that will identify anomalous segments and service degradation. This will shorten the time to mitigate production issues by providing you deeper insights into the characteristics of the problem. For example, if your web app responds slowly from a particular server at a particular time of day, it will alert you with the problem details. If you would like to try it out, please contact AppInsightsML@microsoft.com and we will work with you to set it up.
Azure Application Diagnostics Hub
We are addressing the key pain points faced by Azure app developers, specifically diagnostics of performance degradation, app deployment and upgrade failures, making Application Insights your hub for Azure Application Diagnostics.
Starting with Azure SDK 2.8, you can now use Application Insights to access Azure Diagnostics telemetry from your Web Roles, Worker Roles and Windows VMs. You can now correlate these perf counters, Windows event logs and app traces in Application Insights with the response times, dependencies and custom events sent from within your app. You now have all the information you need in one place to detect, triage and diagnose issues faster.
Extensible, open and flexible
While Application Insights provides a big chunk of its value with out-of-the-box telemetry, it also enables you to provide custom instrumentation to capture traces, exceptions, page views, dependencies, and much more, from your application. To give you more control over data collection, we recently introduced the concept of sampling. It basically allows you to collect and store a reduced set of telemetry while maintaining a statistically correct analysis of application data in the portal.
If you are looking to mash up your data with other data sources, you can set up continuous export enabling you to analyze the data in SQL, Excel, Power BI and other tools. With the recently announced Application Insights Content Pack for Power BI you could, for example, pull sales data and website usage into the same real-time Power BI dashboard.
Application Insights is growing to be the powerful application analytics solution you were looking for. It has out of the box performance and exceptions diagnostics, coupled with powerful log and metrics analytics enabling efficient detection, triage, and investigation of service issues.
I love the way one of our customers summed up their experience with Application Insights:
“A couple of days ago, we deployed a 'minor' hotfix. We didn't run a broad test pass, but unfortunately some unexpected change got merged into the payload, causing incompatibility between the front and back ends. Immediately, server exceptions surged, our alert fired, and we were made aware of the situation. A few clicks away on the Application Insights portal, we got enough information from exception call stacks to narrow down the problem. We rolled back immediately and limited the damage. Application Insights has made this part of the DevOps cycle very easy and actionable.”
Please share your ideas for new or improved features at the Application Insights User Voice page and for any questions visit the Application Insights Forum.