Andrew Connell

SharePoint Health Score - Something to add to your SharePoint-based applications

When building rich applications on SharePoint you have quite a few options. You can build Silverlight or Flash applications, those that are more JavaScript focused using things like jQuery or even the SPServices CodePlex project , or thick client apps using something like WPF. All of these apps can use the REST ListData.svc service or the client side object model (CSOM) to read and write to the various lists in your SharePoint site or (when using the CSOM) do even more things.

One thing about these remote calls back to SharePoint is that they can be slowed down if your SharePoint environment is under heavy load. This might confuse your users as they may have this very responsive application that slows down every time it needs to talk back to SharePoint.

Microsoft introduced a new little thing to help with this called the health score. What’s going on is that when you make a call to SharePoint, it adds a custom HTTP header to the response that tells you how the server is doing. This header, X-SharePointHealthScore, will be a number between 0 and 10. The lower the number the less stressed the server is… the higher, the more taxed it is. As the number approaches 10 SharePoint will start to queue up HTTP GET requests in order to handle the HTTP POST requests.

You could, to provide your users a good experience, indicate how the server is doing by looking at every other call. Here’s how you can do it:

Anmiated GIF
Andrew Connell
Developer & Chief Course Artisan, Voitanos LLC. | Microsoft MVP
Written by Andrew Connell

Andrew Connell is a web developer with a focus on Microsoft Azure & Microsoft 365. He’s received Microsoft’s MVP award every year since 2005 and has helped thousands of developers through the various courses he’s authored & taught. Andrew’s the founder of Voitanos and is dedicated to delivering industry-leading on-demand video training to professional developers. He lives with his wife & two kids in Florida.