A modular approach to performance monitoring
AutoWebPerf (AWP) is a modular library that automates the collection of performance data from multiple lab and field measurement tools. Existing options such as Chrome UX Report, PageSpeed Insights, and WebPageTest each expose data captured at a specific moment. AWP sits on top of these APIs and lets you configure recurring queries so you can track Core Web Vitals over time without manual, repeated effort.
The tool originated from the engineers' own recurring performance audit work and has now matured enough for broader use. The code is available in the public GitHub repository.
How the engine fits together
AWP follows a modular architecture built from three component types:
- Engine — orchestrates the flow from test definition to result output
- Connectors — read the list of tests to run and write the results
- Gatherers — execute performance audits through a particular API
The engine takes a test list supplied by an input connector (for instance, a local CSV file), runs audits through the selected gatherers, then delivers results to an output connector such as Google Sheets.
Pre-implemented gatherers include:
Available connectors cover Google Sheets, JSON, and CSV.
Running recurring audits
Because the input and output are decoupled from the auditors, you can mix sources and destinations freely. A test list stored in Google Sheets can be audited with results written to a CSV file, for example.
AWP also supports scheduling audits at daily, weekly, or monthly intervals. One option is to point the engine at a local JSON file containing the audit definitions, as in this daily run that outputs to CSV:
PSI_APIKEY=<YOUR_KEY> ./awp run json:tests.json csv:output.csv
To keep the process running as a background service on a daily cadence, use:
PSI_APIKEY=<YOUR_KEY> ./awp continue json:tests.json csv:output.csv
Alternatively, on a Unix-like system you can register AWP with crontab so it executes as a daily job:
0 0 * * * PSI_APIKEY=<YOUR_KEY> ./awp run json:tests.json csv:output.csv
The GitHub repository documents additional automation approaches for day-to-day audit collection.
Turning results into trend charts
Continuous measurement only becomes useful when you can spot regressions in the collected data. Data Studio works well for this purpose: you can import the metrics gathered by AWP, load them into a spreadsheet, and plot time-series charts. For example, a chart that shows Cumulative Layout Shift trending upward over recent weeks points to layout stability problems that deserve investigation.
An important nuance with Chrome UX Report (CrUX) data is that it reflects a 28-day moving aggregation, which can muddy an otherwise clear regression signal. The authors recommend pairing CrUX with your own real user monitoring (RUM) data so you can detect regressions faster.
To shorten the path from measurement to dashboard:
- Run AWP against your URL list to export results straight into Google Sheets.
- Create a Data Studio dashboard that reads directly from that spreadsheet.
- Chart the fields you care about as time series.
Detailed setup steps for the Google Spreadsheets API Connector are available in the repository.
What the current release covers
Today AWP targets the most frequent monitoring use cases: recurring lab and field audits with output to a spreadsheet or file for downstream analysis. Future releases will extend the built-in modules to cover further scenarios. The project continues to live at the AutoWebPerf repository.



