-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
P3Low: Not priority right nowLow: Not priority right nowdif/expertExtensive knowledge (implications, ramifications) requiredExtensive knowledge (implications, ramifications) requiredeffort/weeksEstimated to take multiple weeksEstimated to take multiple weekskind/enhancementA net-new feature or an improvement to an existing featureA net-new feature or an improvement to an existing featureneed/analysisNeeds further analysis before proceedingNeeds further analysis before proceeding
Description
The Server Timing API allows you to pass request-specific timing data from your server to the browser via response headers
Potential uses
In IPFS context, it could be a way for HTTP Gateway to indicate how long it took to
- execute specific subtask of
/api/v0/call - return valid data for
/ipfs/*request, namely:- lookup data in local datastore (if present) or find it on the swarm
- discover providers (could have separate metrics for dht, bitswap)
- download data from providers etc
Improved debugging
As illustrated by @Gozala in ipfs/ipfs-webui#1534 (comment)
I think bifrost team and other gateway providers could leverage it for debugging gateway performance when processing a specific request.
Improved UX in browser context
User agents (eg. IPFS-aware web browser) could utilize hints passed in Server Timing headers to improve user experience by providing higher resolution feedback about the state of request.
Example
> GET /ipfs/QmFoo HTTP/1.1
> Host: ipfs.io
< HTTP/1.1 200 OK
< Server-Timing: miss, ds;dur=53, dht;dur=47.2, bitswap;dur=120
< Server-Timing: cache;dur=23.2
References
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P3Low: Not priority right nowLow: Not priority right nowdif/expertExtensive knowledge (implications, ramifications) requiredExtensive knowledge (implications, ramifications) requiredeffort/weeksEstimated to take multiple weeksEstimated to take multiple weekskind/enhancementA net-new feature or an improvement to an existing featureA net-new feature or an improvement to an existing featureneed/analysisNeeds further analysis before proceedingNeeds further analysis before proceeding