I’ve been hearing this question quite a bit… “Can I collect an IntelliTrace log in Production?” This would be a really good idea especially now that there is a standalone command-line utility, IntelliTrace.exe, that you can run to collect IntelliTrace log files. Unfortunately, it looks like the Visual Studio 2010 Licensing White Paper answers that question for us on page 28:
The IntelliTrace DDA and/or IntelliTrace.exe cannot be used:
- On a device or server in a production environment.
- For purposes of system or application monitoring.
- In non-interactive scenarios other than as part of an automated test or debugging-data collection session.
Bummer! :( Honestly, I imagine that has to do with something around how IntelliTrace works and Microsoft doesn’t feel comfortable the impact it may have on running Production environments. Just my conjecture though…
You’ll notice that you can use IntelliTrace in other instances though; most notably on development & test environments!
The IntelliTrace diagnostic data adapter (DDA) and/or IntelliTrace.exe can be used for test and debugging purposes:
- As part of an interactive test or debugging session.
- As part of an automated test or debugging-data collection session that is authored by a licensed user and triggered by the same or another licensed user.
You can even share IntelliTrace files between two companies as long as both companies are properly licensed!
IntelliTrace files may be shared among two or more companies as long as all users capturing and debugging IntelliTrace files are licensed with either Visual Studio 2010 Ultimate or Visual Studio Test Professional 2010, depending on the activities they are performing. For example, a company can share IntelliTrace files with an external development consultant. Similarly. a company can use an external company for testing purposes and debug IntelliTrace files provided by that vendor.
Here were the common scenarios mentioned in the licensing white paper. See if you happen to fit into one of them:
Example 1: Finding a defect in a test environment Company A is building a Web application. All the developers are licensed for Visual Studio 2010 Ultimate with MSDN, and the testers are licensed with Visual Studio Test Professional 2010 with MSDN. During a test run a defect is discovered in the test environment that is difficult to reproduce in a development environment. The test machines have previously been configured with the Visual Studio Test Agent 2010, which includes the IntelliTrace DDA. The tester uses the Microsoft Test Manager to execute the test case with the IntelliTrace diagnostic data adapter (DDA) enabled. When the defect is encountered, the tester files a new bug, with the IntelliTrace files from each of the test machines is automatically attached to the bug. When a developer opens the bug using Visual Studio Ultimate, he or she can open the IntelliTrace files and step through the execution.
Example 2: Working with an external consultant In Example 1, Company A uses an external consultant to help with development. If the external consultant is licensed for Visual Studio Ultimate, he or she can open and debug the IntelliTrace files provided by Company A.
Example 3: Working with an external test vendor In Example 1, Company A uses Company B as an outsourced test vendor. The two companies can work together using IntelliTrace as long as all developers at Company A and all testers at company B are licensed appropriately.
I’m not sure what the minimal technical footprint is to get IntelliTrace.exe to collect an iTrace file just yet but my answer right now will be to have one of these installed:
- Visual Studio 2010 Ultimate
- Visual Studio 2010 Test Professional
- Visual Studio 2010 Test Agents (additional software) <--- probably the smallest impact to a system
If I find out some more information about this scenario, then I’ll be putting together a future blog post!