Skip to content

Conversation

@paulirish
Copy link
Member

We upgrade the performance trace tools to include real-user experience data from the Chrome User Experience Report (CrUX).

https://developer.chrome.com/docs/crux
https://developer.chrome.com/docs/crux/methodology

Deets

  • When a trace is stopped, the server now extracts the primary navigation URLs from the trace (determined by insightSets).
  • It calls the public CrUX API to fetch field metrics (LCP, INP, CLS) for each unique URL/Origin.
  • The formatting of crux data is handled by upstream TraceFormatter, but it looks like this:
Metrics (field / real users):
  - LCP: 2595 ms (scope: url)
  - LCP breakdown:
    - TTFB: 1273 ms (scope: url)
    - Load delay: 86 ms (scope: url)
    - Load duration: 451 ms (scope: url)
    - Render delay: 786 ms (scope: url)
  - INP: 140 ms (scope: url)
  - CLS: 0.06 (scope: url)
  - The above data is from CrUX–Chrome User Experience Report. It's how the page performs for real users.
  - The values shown above are the p75 measure of all real Chrome users
  - The scope indicates if the data came from the entire origin, or a specific url
  - Lab metrics describe how this specific page load performed, while field metrics are an aggregation of results from real-world users. Best practice is to prioritize metrics that are bad in field data. Lab metrics may be better or worse than fields metrics depending on the developer's machine, network, or the actions performed while tracing.

Privacy Considerations:

  • Updates the server README to inform users that performance analysis tools may send trace URLs to the Google CrUX API.
  • Adds a notification message to the server startup logs regarding the CrUX API interaction.

Doc: go/crux-in-bifrost
Fixes b/446630695

Change-Id: Ibda3954500250fa9c2d0ae95dd996409ea525080
Change-Id: Ib9b76305409bb660a25182497d9b54591e2297a0
Change-Id: I3886ba86705ce423ccf8024133bc58fff16fa6c8
Change-Id: I921880b40788863151962d13dc9838c4793a840f
Change-Id: I94c55d08bad7c58b28a5febccdc126dc0b012e5f
Change-Id: I70fa78a46ebb1bc43be66dcd80177cec2ab34f1c
Change-Id: Id8ff5120b5f02cd57ed42427b182763afbf65dff
Change-Id: I22e211eebdca6bf25878cb4dd4182d9b6ca34cf8
Change-Id: Ie1905a1b746cce82b27dfe89c56d2b591c050291
Change-Id: I331aa991818b151e7b4080490475736afd30120f
Change-Id: I2e45c268b8510658b4ece06f52a7bd67b5154b2a
Change-Id: I04829e52b7e38bf4384b6db89f977abe518d7b5e
Change-Id: I2b5dcda9b32db8ec0ca1270e267edfeb562ff7b5
Change-Id: I5e824dbb077b94accb65420d97f5fc3de61fbd53
Change-Id: Ibf10ea910e34bac5fc44bf13760ceb971680dd35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant