A tasty mix of Boomerang JS, ClickHouse DB and Grafana.
Basic RUM is a budget, open source Real User Monitoring system aimed to enable web performance enthusiasts, consultants, Ops and developers and others to visualize and look at trends in performance data.
Load tests proven that for about 15 Euro a month a website with 50 000 views a day / 1.5 million views a month could be efficiently monitored. Read more about the budget research.
This is a high level overview of the Basic RUM components:
A visitor loads a webpage and with the help of Boomerang JS we collect performance information and other page details. The performance information is sent over a beacon to the Beacon Catcher server.
The Beacon Catcher server persists beacons in a raw format in a temporary storage prepared for reading and decoding on the nex.
The beacon decoding service reads a batch of raw beacons, decodes them and prepares the decoded beacon data for inserting in ClickHouse DB.
The raw beacons are bundled, compressed and stored in a file system. The stored beacons could be used as a backup or re-imported in case we add new columns in ClickHouse DB.
The decoded beacon data is inserted in a flat table in ClickHouse DB. Columns in this table for example are: Time To First Byte (TTFB), First Input Delay (FID), Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) and others.
Grafana visualizes performance information by querying ClickHouse DB. We have a bunch of pre-backed dashboards that visualize Core Web Vitals and other performance data in histograms, percentile, barcharts and more.