SPIisLatency and SPRequestDuration Response Headers in SPO Pages

MVP

@Bill Baer, this is primarily for you. I hate to be a persistent pain-in-the-butt ... but I know that I and several other folks out here would love to get some official position on this:

 

When troubleshooting SPO performance issues, the SPIisLatency and SPRequestDuration headers are critical. For every customer who complains that "SharePoint Online is slow," I can immediately use these two headers to hone-in on whether the issue is page weight, sub-optimal development, potential internal network issues, or some combination of the two.

 

I wrote a blog post to help users leverage these response headers in troubleshooting  (https://sharepointinterface.com/2017/07/07/the-five-minute-page-performance-troubleshooting-guide-fo...), but for some time now the presence of those two headers on a page that is returned from SPO has been spotty at best. It looked like the headers came back for a while after I sent you and @Chris McNulty a note (and spoke with Chris on a couple of occasions), and I officially declared the headers to be back at one point.

 

At DevConnections last week, I was giving a performance troubleshooting session, went to find the headers, and was once again left holding the bag in front of a live audience. For example, this is from the home page of the SPO root site in one of my tenants:

 

image.png

Notice: no SPRequestDuration and SPIisLatency headers.

 

Please, please: are these headers supposed to be present? Are they for some reason being phased-out because something "better" is being developed? It's getting harder and harder to tell live audiences, "Hey, they're supposed to be there. Let's pretend they're there." I'd like to know what exactly is going on.

 

Could you please take a moment to comment?

 

- Sean

15 Replies

(11/5/2017): For anyone interested in the outcome of this issue: Bill and I were at the DEVIntersections conference in Las Vegas this past week. A bunch of us went out for dinner one night, and I took the opportunity to approach him on this topic. That seemed to jump-start things, and he's followed-up with an internal (to Microsoft) email to the developers to get an appropriate response.

 

When I have some sort of semi-official reply, I'll update this thread. Stay tuned!

Have you received any feedback yet on this issue?

Nothing definitive, no. Bill Baer approached the dev team about it, and they seemed to indicate (or think) that it had something to do with web parts on a page. I called BS on that, because it's happening on blank pages. Bill also didn't seem to buy it, but he said the dev team would need a repro case to make headway. I generated the necessary data to repro the case, and that's where it was left.

I'm planning to send him another note today to see if there's been any progress.

Any updates on this yet?

Joakim et al,

 

I wish I had something more to share ... but nothing yet. I've gone back to Bill several times, and he continues to nudge the development team. My latest note to him was on 1/9, and he followed-up with me within a day. I haven't heard anything "usable" yet, though.

 

I'm planning to give it until the end of this week and then reach out again. This has obviously been going on for months and remains unresolved ... so I'm going to continue to be a pain in the butt about it until someone gives me/us a usable reply.

 

Thanks for checking in  :)

 

- Sean

Thanks all.  I've made the connections between Sean and our engineering PM owner.

Joakim,

 

I can understand if you (and others) had thought that this issue/question had died. It didn't. I've made myself a royal pain-in-the-butt for Bill and a couple of others, and I think we're starting to make progress. My hope is to have some meaningful discussion with some folks internal to Microsoft soon.

 

As if to underscore the issue, one of the sessions I'll be presenting at the upcoming SharePoint Conference North America (in Vegas) is on performance ... so that places some extra priority on getting answers soon. It's obviously difficult to talk about performance and measuring it when two of the HTTP headers that matter the most for that are in Limbo!

 

Stay tuned.

Thanks for keeping us updated on this topic Sean, really appreciate it! :)

From my blog post (https://sharepointinterface.com/2017/07/07/the-five-minute-page-performance-troubleshooting-guide-fo...:(

 

UPDATE (3/20/2018): As most of you who have been following-along in your own tenants know, this issue wasn't actually truly resolved last September. For a while, in some cases, it looked like the SPIisLatency and SPRequestDuration headers came back. But the victory was fleeting, and since that time I've continued to get comments from people saying "but I don't see them!" And while I had the headers for a while in my tenant, I haven't seen them in any predictable fashion.

 

The good news is that after much hounding and making myself a royal pain-in-the-tuckus to Bill Baer and others at Microsoft, it looks like we FINALLY have the right engineering and dev teams engaged to look at this. We got traction on it this week, with multiple repro scenarios and Fiddler traces being passed around ... so I'm truly hopeful we'll see something before long. Stay tuned!

I'll take that as a thank you ;)

Please do ... and to back it up, I'll get you a beverage of your choice at SPCNA  :)

Do you know that the IISLatency and RequestDuration values can now be found in the page content? Just search for g_iisLatency and g_Duration.

Hello @Yorick Kuijs -

I noticed that the variables for g_iisLatency and g_Duration are in the page source for certain types of pages but not all. Seems to me that all pages in classic sites have these variables.  In Modern sites,  document library pages, also have the same variables.  

 

However, on the home page for a Modern Team site, I could not find these variables (at least not with the spellings below).  But I did discover that these values are provided within a json string in the page source in modern site pages.  Simply search for "perf" or "spRequestDuration" and you'll find something like this:

"perf" : {
"IisLatency":"2",
"spRequestDuration":"238",
"QueryCount":"5",
"QueryDuration":"29",
"CPUDuration":"189",
"ClaimsAuthenticationTime":"204935",
"ClaimsAuthenticationTimeType":"CacheHitVelocity",
"Network-WindowScaleOption":"8",
"Network-PacketRetransmitCount":"0",
"Network-SmoothedRoundTripTime":"31"
}

As you can see this contains the details @Sean McDonough was describing, plus some additional metrics. 

 

I hope at some point this data shall be provided in a consistent manner across all types of pages.  Ideally, it would great to have it in the headers instead of page source.

I wanted to take a moment to share an important link with everyone!

 

Scott Stewart and his team at Microsoft have been working to put together a Page Diagnostics Tool for SharePoint, and it is now available for the Chrome browser. I know it was Scott's intention to have it ready for Edge, as well, so keep your eyes open if you're an Edge user.

 

The link (above) takes you to an article on the tool, how to use it, and how to get it. The tool directly incorporates the headers we've been talking about here, as well as a bunch of other analyses and tips. You'll want to get it ASAP!

 

Thank you, Scott and team!

On modern pages, yes, @Yorick Kuijs . I'm moving slowly, but I finally put together a post on how to get the metrics you mention: https://sharepointinterface.com/2019/03/26/obtaining-performance-metrics-for-sharepoint-online-moder...