| # Chrome Speed Metrics |
| |
| [TOC] |
| |
| ## Mission |
| The Chrome Speed Metrics team aims to quantify users' experience of the web to |
| provide Chrome engineers and web developers the metrics, insights, and |
| incentives they need to improve it. We aim to: |
| |
| * **Quantify** web UX via a high quality set of UX metrics which Chrome devs |
| align on. |
| * **Expose** these metrics consistently to Chrome and Web devs, in the lab and |
| the wild. |
| * **Analyze** these metrics, producing actionable reports driving our UX |
| efforts. |
| * **Own** implementation for these metrics for TBMv2, UMA/UKM, and web perf |
| APIs. |
| |
| ## Goals |
| |
| ### Quantify Users’ Experience of the Web |
| Chrome needs a small, consistent set of high quality user experience metrics. |
| Chrome Speed Metrics is responsible for authoring reference implementations of |
| these metrics implemented using Trace Based Metrics v2 (TBMv2) in |
| [tracing/metrics](https://source.chromium.org/chromium/chromium/src/+/main:third_party/catapult/tracing/tracing/metrics/). |
| These reference implementations will often require adding C++ instrumentation. |
| Some metrics work will also be driven by more focused metrics teams, such as the |
| work on Frame Throughput. Chrome Speed Metrics also owns UMA/UKM metrics, and |
| speed metrics related Web Perf APIs. |
| |
| The wider set of folks involved in defining these metrics will include: |
| |
| * Area domain experts. |
| * Focused metrics teams. |
| * Devtools folks. |
| * DevX, documenting what these metrics mean for external developers. |
| * Occasional other experts (e.g., UMA folks). |
| |
| ### Expose Consistent Metrics Everywhere |
| Chrome Speed Metrics is responsible for ensuring that our core metrics are |
| exposed everywhere. This includes collaborating with devtools, lighthouse, etc. |
| to make sure our metrics are easy to expose, and are exposed effectively. |
| |
| ### Analyze Chrome Performance, providing data to drive our performance efforts |
| Metrics aren’t useful if no one looks at them. Chrome Speed Metrics performs |
| detailed analysis on our key metrics and breakdown metrics, providing actionable |
| reports on how Chrome performs in the lab and in the wild. These reports are |
| used to guide regular decision making processes as part of Chrome’s planning |
| cycle, as well as to inspire Chrome engineers with concrete ideas for how to |
| improve Chrome’s UX. |
| |
| ### Own Core Metrics |
| The Chrome Speed Metrics team will gradually gain ownership of |
| [tracing/metrics](https://source.chromium.org/chromium/chromium/src/+/main:third_party/catapult/tracing/tracing/metrics/), |
| and will be responsible for the long term code health of this directory. We’re |
| also ramping up ownership in the Web Perf API space. |
| |
| ## Contact information |
| * **Email**: speed-metrics-dev@chromium.org |
| * **Tech lead**: sullivan@chromium.org |
| * **File a bug**: |
| * For issues related to web performance APIs, file a bug |
| [here](https://bugs.chromium.org/p/chromium/issues/entry?template=Defect+report+from+developer&components=Blink%3EPerformanceAPIs) |
| * For other kinds of issues, file a bug |
| [here](https://bugs.chromium.org/p/chromium/issues/entry?template=Defect+report+from+developer&components=Speed%3EMetrics) |
| |
| ## APIs we own |
| * [Element Timing](https://github.com/WICG/element-timing) |
| * [Event Timing](https://github.com/WICG/event-timing) |
| * [HR Time](https://github.com/w3c/hr-time/) |
| * [Largest Contentful Paint](https://github.com/WICG/largest-contentful-paint) |
| * [Layout Instability](https://github.com/WICG/layout-instability) |
| * [Longtasks](https://github.com/w3c/longtasks/) |
| * We own some of the implementation details of [Navigation |
| Timing](https://github.com/w3c/navigation-timing/) |
| * We are ramping up on [Page |
| Visibility](https://github.com/w3c/page-visibility/) |
| * [Paint Timing](https://github.com/w3c/paint-timing/) |
| * [Performance Timeline](https://github.com/w3c/performance-timeline) |
| * We own some of the implementation details of [Resource |
| Timing](https://github.com/w3c/resource-timing) |
| * [User Timing](https://github.com/w3c/user-timing) |
| |
| ## Web performance objectives |
| * See our [web performance objectives](webperf_okrs.md). |
| |
| ## Metrics changelog |
| We realize it's important to keep developers on the loop regarding important |
| changes to our metric definitions. For this reason, we have created a [metrics |
| changelog](../speed/metrics_changelog/README.md) which will be updated over time. |
| |
| ## User Docs |
| * [Metrics for web developers](https://web.dev/metrics/). |
| * [Properties of a good metric](../speed/good_toplevel_metrics.md) |
| * [Survey of current |
| metrics](https://docs.google.com/document/d/1Ww487ZskJ-xBmJGwPO-XPz_QcJvw-kSNffm0nPhVpj8/edit) |
| * [Debugging CLS](http://bit.ly/debug-cls) |
| |
| ## Talks |
| * [Lessons learned from performance monitoring in |
| Chrome](https://www.youtube.com/watch?v=ctavZT87syI), by Annie Sullivan. |
| * [Shipping a performance API on |
| Chromium](https://ftp.osuosl.org/pub/fosdem/2020/H.1309/webperf_chromium_development.webm), |
| by Nicolás Peña Moreno. |
| * [Understanding Cumulative Layout |
| Shift](https://www.youtube.com/watch?v=zIJuY-JCjqw), by Annie Sullivan and |
| Steve Kobes. |