Learn to use Visual Studio, Visual Studio Online, Application Insights and Team
Foundation Server to decrease rework, increase transparency into your application and increase the rate at which
you can ship high quality software throughout the application lifecycle
Over the past little while, the System Center Operations Management team and the Visual Studio IntelliTrace team have been working together to create an increasingly rich debugging experience for applications in production environments. This collaborative effort provides the ability to take Application Failure events from System Center 2012 SP1 and export them as IntelliTrace files for tight integration in Visual Studio Ultimate 2012 Update 2. We also take advantage of the integration with Team Foundation Server using the System Center Management Pack for Microsoft Visual Studio Team Foundation Server 2010 Work Item Synchronization to automatically attach or link to IntelliTrace files from TFS work items.
A complete virtual machine with hands-on-lab is available from Brian Keller’s blog to explore these features and capabilities. You can download just the hands-on-lab / demo script document to see the details or the entire virtual machine to play around with the full experience.
Let’s take a quick lap around the features. Note that the following screenshots are taken directly from the hands-on-lab which goes into much greater detail on how to enable and use the features described in this post.
With these new integrated capabilities you are able to assign an Application Error from System Center to the development team using the TFS connector by opening an error alert and selecting the “Assign to Engineering” option from the Alert Status menu.
Once an alert has been “Assigned to Engineering” an Operational Issue work item type is created in Team Foundation Server. By default an IntelliTrace file is linked to the work item. This IntelliTrace file was created based on the data gathered by System Center as part of creating the Application Error alert and adds no further impact to the monitored application. Clicking on the linked IntelliTrace file will allow you to open the file in Visual Studio Ultimate and see the error that happened on the monitored server.
You can now use the IntelliTrace capabilities within Visual Studio Ultimate to dig into the details of the error and jump directly to code where possible. Note, to jump to code you need to ensure that there is indeed user code on the call stack and that you have the matching symbols and source code available to Visual Studio. To understand how Visual Studio, symbol files and source code all relate to the best possible IntelliTrace experience refer to Ed Blankenship’s excellent blog post on the subject.
In addition to the automatically created IntelliTrace files for Application Failures, System Center 2012 SP1 also includes the ability to enable full IntelliTrace data collection to solve those extremely challenging problems. By selecting an existing alert you can enable full IntelliTrace collection using the tasks panel.
This capability enables operations teams to easily switch on full IntelliTrace data collection to capture rich and detailed data about the problem application. When the IntelliTrace snapshot is taken it is automatically linked to an existing work item that may have been created for the alert. If no work item had yet been created you can use the workflow described above to assign the alert to engineering to create the work item.
If you aren’t using the Team Foundation Server integration the IntelliTrace files are stored to a local server directory that is configured with System Center.
To explore these capabilities further take a look at the hands-on-lab / demo script as well as the virtual machine provided by Brian Keller on his blog.
Nice touch, now you just need to implement automatic crash dump collection for normal developers that are not made of gold.
And then the minor issue of System Center being a prime example of how slow and painful a WPF application can be (So far only VS2010/VS2012 have been able to hide its use of WPF). Please dump the fat WPF client and make a METRO web-app version of System Center instead. And please don't get help from the Sharepoint team to implement this. Then maybe in 3-4 years we have something useful.
Also when implementing the automatic crash dump collection, then also make it possible to connect to local PDB symbol server.
When creating the work-item then it can automatically add the fully detailed call stack. Makes it a lot easier for the developers to investigate.
This can then be extended into automatic creating relationships between workitems where the callstack is the same.
Ofcourse this crash dump collection and call stack expansion logic should work for both .NET and native applications.