Link Search Menu Expand Document

Open Source -
Real User Monitoring system.

A tasty mix of Boomerang JS, ClickHouse DB and Grafana.

Demo


What’s Basic RUM?

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.

How does it work?

This is a high level overview of the Basic RUM components:

Basic RUM - system overview showing the role of ClickHouse DB, Grafana na Boomerang JS

  1. 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.

  2. The Beacon Catcher server persists beacons in a raw format in a temporary storage prepared for reading and decoding on the nex.

  3. The beacon decoding service reads a batch of raw beacons, decodes them and prepares the decoded beacon data for inserting in ClickHouse DB.

  4. 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.

  5. 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.

  6. 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.

Basic RUM - Grafana first byte and percentile example panel