A tasty mix of Boomerang JS, ClickHouse DB and Grafana.
Basic RUM is an open source Real User Monitoring system aimed to enable web performance enthusiasts, consultants, Ops, front-end developers and other interested parties visualise and look at trends in performance data.
Load tests proved 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 this in the Cost analyses section.
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 visualises performance information by querying ClickHouse DB. We have a bunch of pre-backed dashboards that visualise Core Web Vitals and other performance data in histograms, percentile, barcharts and more.