Premier Field Engineer, Microsoft Services Customer Service and Support
Update 6/23/2009: Due to popular demand, Jim from the Developer Support team at Microsoft has re-created the three reports that required SQL2008 Reporting Services. See the support team blog for more details.
Update 7/13/2010: These reports also work with TFS2010. When you setup the data source, just specify the name of a collection DB instead of TfsActivityLogging.
I’m on the team that runs the busiest Team Foundation Server at Microsoft. The Developer Division instance has over 3,500 active users and processes over 10,000,000 source control and work item tracking requests per day (not including the requests that our 5 proxy servers handle).
We have a responsibility to ensure that the server is performing as expected and to identify any efficiencies that can be made in the server or the tools. To do this, we have created a number of reports that we use ourselves and make available to our own users.
We’re now making these reports available to you to install on your own server and monitor your TFS server’s performance. The plan is to eventually roll these into a power tool release or a subsequent release of VSTS but I’ll let you know more about that when it happens.
The report pack consists of a ZIP file with a number of Report Definition (*.rdl) files. These files are designed to be deployed onto your existing TFS reporting server, e.g. http://your-tfsserver/Reports/
Here’s an overview of what the reports look like and what questions you can answer with them.
This report visualizes the load, in this case reflected by total execution time, on the server from two axis: users and commands.
Use this report when you want to know:
Source Control is undoubtedly the application that consumes the most resources on an Application Lifecycle Management (ALM) Server. Across the day, a series of requests get queued to be processed as transactions are committed to the database. This report provides a view into that queue.
Lots of red means that you have some long running operations and you may have some problems.
In the past, I’ve blogged a query to get this information – How many user’s are not using a TFS Proxy server? Internally, we have setup a scheduled subscription that emails this report twice a week.
IT departments strive to provide the best level of service to their users. Hardware requirements planning and setting up proxies are activities that ensure optimal performance for their internal teams when interacting with team Foundation Server. This report allows administrators a view into which users are not complying with internal guidelines and hence decreasing overall server performance.
This report serves as a summary of the average response time for two of the Team Foundation Server subsystems: Work Item Tracking and Version Control
This report provides more data granularity about the performance of the server. We start with a view into the server average response time, now looking at the entire picture instead of broken down by subsystem. We then follow with charts relating information about version control downloads and average response time distributions for the same time period.
I hope that you find these reports useful. Please send any questions or feedback as comments to this post, or contact me via email.
PingBack from http://blog.a-foton.ru/index.php/2009/02/04/announcing-tfs-performance-report-pack/
Hi Granth,
The reports looks great!
Do you have a version for SQL Server Reporting Services 2005.
/Magnus
Granth, This report pack looks very promising. I followed the steps you provided but encountered the following error when i tried to upload the .rdl file:
La definición del informe no es válida. Detalles: La definición de informe tiene un espacio de nombres de destino no válido 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' que no se puede actualizar. (rsInvalidReportDefinition)
Can you help me out?
Granth, I forgot to mention that we are running TFS2008 with SQL Server 2005.
Great work, much appreciated
Just what I was looking for, saves me hours and hours :)
I’v started working on a report of witch client accessing the server, and having some issues figuring out the different values of UserAgent . Do you have any plans for publishing such a report?
/Mattias
Nice post Grant :), I translated/resumed it for the spanish community: http://www.lfraile.net/post/Informes-de-rendimiento-de-TFS.aspx
Для формирования отчетности TFS использует механизмы SQL Server Reporting Services, а значит при необходимости
Hola a todos, veo en el blog del ex-MVP (ahora trabaja en Microsoft), Grant Hollyday , que ha creado
Managing the Developer Division Dogfood instance of Team Foundation Server is always a real challenge. 
Grant Holliday , former Team System MVP, is now working on the VSTS product group on various things but
My latest in a series of the weekly, or more often, summary of interesting links I come across related to Visual Studio. Visual T4 Blog is a new blog focused on the T4 code generation tool that ships with VS2008. Here are the first few posts: New Blog
Hi, I am getting error uploading reports:
The report definition is not valid. Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' which cannot be upgraded. (rsInvalidReportDefinition)
Does this mean this only work with SQL 2008. That would be too bad.
Follow-up
Half the reports cannot be uploaded (see message above)
These do not load: Execution Time for User.rdl
Execution Time Summary.rdl
Server Status - Source Control Request Queue.rdl
The Microsoft’s Developer Division has one of the busiest Team Foundation Server at Microsoft. Their
La División de Desarrollo de Microsoft tiene uno de los Team Foundation Server con más carga en Microsoft.