When debugging latency issues, it can be difficult to distinguish between geographical latency, VPN latency, and the individual GraphQL query latency itself.
Motivating example
It was really hard to determine proper socket timeout values for tests vs live vs development, knowing how long the actual queries took rather than figuring out how much my VPN and cross-country latency were adding to the total.
Server metrics such as AWS X-Ray, AppDynamics, etc. allow for aggregate timing over a longer period with analytics, but lacking per-request timing lengthens the feedback cycle for developers calling the GraphQL endpoint.
Feature description
When debugging latency issues, it can be difficult to distinguish between geographical latency, VPN latency, and the individual GraphQL query latency itself.
Motivating example
It was really hard to determine proper socket timeout values for tests vs live vs development, knowing how long the actual queries took rather than figuring out how much my VPN and cross-country latency were adding to the total.
Server metrics such as AWS X-Ray, AppDynamics, etc. allow for aggregate timing over a longer period with analytics, but lacking per-request timing lengthens the feedback cycle for developers calling the GraphQL endpoint.
If
Server-Timing
headers were added to responses when enabled, it would effectively solve this problem. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-TimingFor example on a GraphQL query like this:
Supporting development
I [tick all that apply]: