Announcing TFS Performance Report Pack

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.

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.

Download

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.

Requirements

  • SQL Server Reporting Services
  • A user with read-only access to the TfsActivityLogging database
  • A shared datasource to connect the report to (see below)
  • Command Logging enabled - This logging is enabled by default in TFS 2008.

Installing

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/

  1. As a TFS administrator, extract the files to your PC
  2. Open http://your-tfsserver/Reports/
  3. Create a new folder in Reporting Services called “Server Status”
  4. Create a new shared data source called “TfsActivityReportDS” and set the connection string to:
    1. Data Source=localhost;Initial Catalog=TfsActivityLogging
    2. Credentials: domain\user that has access to the TfsActivityLogging database
    3. Use as windows credentials when connecting to the data source

Here’s an overview of what the reports look like and what questions you can answer with them.

Execution Time Summary

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:

  • Which commands account for the largest load on the server?
  • Which tools / or users are putting the biggest load on the server?

image image image

Server Status - Source Control Request Queue

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.

Use this report when you want to know:

  • If a request is blocking source control operations and for how long
  • How healthy is the performance of version control on this hardware?

Lots of red means that you have some long running operations and you may have some problems.

image

Server Status - Top Users Bypassing Proxies

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.

image 

Server Status - Historical Performance Trends

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

Use this report when you want to know:

  • How long are users, on average, waiting for a subsystem to process their request
  • Which days of the week are the most critical when it comes to performance

clip_image002 clip_image004 image

Server Status - Recent Performance Trends

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.

Use this report when you want to know:

  • The correlation between degraded server performance and average response times by the subsystems
  • How does a large number of downloads affect overall server performance
  • Overall health indicator of the server

clip_image002[4]clip_image004[4] image

I hope that you find these reports useful. Please send any questions or feedback as comments to this post, or contact me via email.

Published 03 February 09 04:00 by grantholliday
Attachment(s): TFS Performance Report Pack.zip

Comments

# infoblog » Announcing TFS Performance Report Pack said on February 3, 2009 8:29 PM:

PingBack from http://blog.a-foton.ru/index.php/2009/02/04/announcing-tfs-performance-report-pack/

# Magnus Timner said on February 4, 2009 2:05 AM:

Hi Granth,

The reports looks great!

Do you have a version for SQL Server Reporting Services 2005.

/Magnus

# Federico said on February 4, 2009 6:56 AM:

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?

# Federico said on February 4, 2009 7:03 AM:

Granth, I forgot to mention that we are running TFS2008 with SQL Server 2005.

# Mattias Sköld said on February 4, 2009 5:22 PM:

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

# Luis Fraile said on February 4, 2009 5:48 PM:

Nice post Grant :), I translated/resumed it for the spanish community: http://www.lfraile.net/post/Informes-de-rendimiento-de-TFS.aspx

# Константин Косинский said on February 5, 2009 4:41 AM:

Для формирования отчетности TFS использует механизмы SQL Server Reporting Services, а значит при необходимости

# Luis Fraile said on February 5, 2009 2:43 PM:

Hola a todos, veo en el blog del ex-MVP (ahora trabaja en Microsoft), Grant Hollyday , que ha creado

# bharry's WebLog said on February 6, 2009 8:56 AM:

Managing the Developer Division Dogfood instance of Team Foundation Server is always a real challenge. 

# Ed Blankenship said on February 7, 2009 1:11 AM:

Grant Holliday , former Team System MVP, is now working on the VSTS product group on various things but

# Visual Studio Hacks said on February 9, 2009 7:49 AM:

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

# Bertrand said on February 9, 2009 10:45 AM:

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.

# Bertrand said on February 9, 2009 10:51 AM:

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

# Carlos Alexei's Blog said on February 10, 2009 7:34 AM:

The Microsoft’s Developer Division has one of the busiest Team Foundation Server at Microsoft. Their

# Carlos Alexei's Blog said on February 10, 2009 7:36 AM:

La División de Desarrollo de Microsoft tiene uno de los Team Foundation Server con más carga en Microsoft.

# Shai Raiten said on February 10, 2009 9:41 AM:

Announcing TFS Performance Report Pack Grant Holliday upload TFS Performance Reports that Microsoft use

# Benjamin said on February 10, 2009 9:17 PM:

I guess SRS 2008 is required. An error occurred when uploading a report in SQL Server 2005

"  

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)"

# Team System News said on February 11, 2009 6:57 AM:

Charles Sterling on New Visual Studio Team System Web Site:  http://www.tfsexamples.com Brian Harry

# JH said on February 12, 2009 8:42 AM:

I get this error when using any of the two performance trends reports

An error occurred during client rendering.

An error has occurred during report processing.

Cannot create a connection to data source 'PrivateDataSource'.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

# Sucharith said on February 12, 2009 4:44 PM:

Th error with 'PrivateDataSource' can be easily resolved by switching the datasource from the report server interface itself. Onc eyou see the error select the properties link and then go to the DataSource section and then you can select the previously created Shared Data Source. With this change I was able to get 3 reports working. However for the other reports I need 2005 format rdl. Is there anyway to convert the 2008 format to 2005?

The reports look good.

Thanks

Sucharith Vanguri

# Ken S. said on February 16, 2009 8:45 AM:

Having similar issues as folks above.  We're running 2005 and only some of the reports can be uploaded.  Those that are not uploading are because of the 2008 issue reported above.  For those that I'm able to upload and run, I'm getting the error "Query execution failed for data set 'PerfData'."

# MrEdxoxo said on February 20, 2009 5:39 PM:

Having the same problems as above.  the 2 "execution time..." reports would not load at all.  One of the other 4 failed with the same error, but loaded on a second round.  Of the 4 all fail to run.  I also could not get the ReadMe file to open.  I think the docx format is an oversight.  Not enough people are running 2007.  I have it at home but not in the office.  After 45 minutes of trying to get it to open, including installing the converter pack, I gave up.  I will send it home and resave it and send it back to the office.  What a pain, but I have to do it all the time.

# Joel From Canada said on March 1, 2009 3:19 PM:

This is a bit easier with the TFS Performance Report Pack – check it out: http://blogs.msdn.com/granth

# Brthomas said on March 3, 2009 11:12 AM:

any further development on getting these to work on SQL2005?

# Enders said on March 9, 2009 3:00 PM:

Can you make the pictures bigger when you click on them ?

# Moin Khan said on April 24, 2009 8:44 PM:

Can these reports be available for SSRS 2005? upgrading the SQL Server 2008 is not an option right now. :)

# Rahul Hameed said on April 27, 2009 8:57 AM:

TFS Performance Report Pack looks cool.

I have TFS 2008 running with SQL 2005...is it possible to make it happen with SQL 2005.

Thank you.

# granth's blog said on May 21, 2009 1:27 PM:

Since joining Microsoft, I’ve become intimately familiar with running a TFS server for ~3,500 users in

# Developer Support Team Foundation Server said on May 29, 2009 8:07 PM:

Here are some words of wisdom from our “go to” Engineer for TFS: My name is Brad Peterson and I am an

# Developer Support Team Foundation Server said on June 19, 2009 4:28 PM:

Grant Holliday has created a great set of TFS performance monitoring reports, called the TFS Performance

New Comments to this post are disabled

Search

This Blog

Syndication

Page view tracker