RE: communicating server timing data to the client.. Server Timing?

I’ve been thinking about this since I took on the task of integrating server-side information into timing spec per our TPAC discussion.

One concern is that it has the potential to add significant weight to the headers. I’m not necessarily opposed because the actual document is allowed to add as much weight as it wants as well. And further, I would expect that some of this information might not be sent unless the developer had opened up dev tools. However, I would suspect that analytics packages might be picking this data up, and then beaconing it back.  It seems strange to send data to the client just to send it back to the server again. But again, those are choices left up to the developer.

While working on the user timing spec this past week, I too was heading toward a per-resource header that would better fit in resource timing. So, in general, I’m not opposed to writing this into its own spec instead of integrating it into user timing.  Just let me know if you’d like me to continue working or if you’d like to take this.

Regardless, I think we should be clear on the scenarios that we see this being used in (developer tools, analytics packages) and really nail the implementation based on those scenarios otherwise we have a potential for scope problems.

tt

From: Ilya Grigorik [mailto:igrigorik@google.com]
Sent: Monday, November 10, 2014 12:16 PM
To: Aaron Heady (BING AVAILABILITY)
Cc: Ben Maurer; public-web-perf
Subject: Re: communicating server timing data to the client.. Server Timing?


On Mon, Nov 10, 2014 at 10:44 AM, Aaron Heady (BING AVAILABILITY) <aheady@microsoft.com<mailto:aheady@microsoft.com>> wrote:
What’s the case that this solves that requires it to be built in?

You're right, if you control the server and client code, you could instrument most of this already.. However:

a) every implementation is custom; UA can't surface this data in developer tools - e.g. I'd like to see server marks and annotations in my network waterfall and/or other timelines. Instead, developers have to build custom toolbar overlays for their pages, etc.

b) analytics / monitoring vendors can't automatically gather this data without custom hooks - e.g. Google Analytics has a mechanism for reporting user timing metrics, but the developer must provide manual plumbing to extract metrics they care about and beacon them to the server.. as a result, it's an infrequently used mechanism.

c) CDNs / proxies would have a standard mechanism to inject timing and other meta-data.

d) this may be a good way to address ServiceWorker use cases (extension of c) where SW could annotate fetches with additional data, like local cache lookup times, time to fetch from remote destination, etc.

In short, the main value here is standardizing the HTTP header + browser interface, which would enable interop for a variety of existing tools and use cases.

ig

Received on Monday, 10 November 2014 21:26:16 UTC