Process RUM events into bundles by domain/time. Provides API to read bundles.
- RUM events logged to S3 in files
- triggered by cron (every 10min)
- read files from logs bucket in batches of N
- sort RUM event into bundle
- append or write to RUM bundle
- move
rawfile toprocessedlocation
- EventBridge schedule
- bucket (
/helix-rum-bundles)- contains bundled RUM events in the format:
/{domain}/{year}/{month}/{date}/{utc_hour}.json - each
date/directory contains a "bundle manifest" to track sessions
- contains bundled RUM events in the format:
- bucket (
/helix-rum-logs)/raw/: raw event log location, each file in this folder is a single unprocessed RUM event/processed/: processed event location, unbundled, eg./{domain}/{year}/{month}/{date}/{utc_hour}/{date}-{id}.log
- bucket (
helix-rum-users)/orgs/: org data/domains/: { org -> orgkey } maps
Contains information needed to efficiently relate new RUM events to an existing session.
{
"sessions": {
"id--path": {
"hour": 1
},
"J3Ed2--/some/path": {
"hour": 2
}
}
}requires authorization, domainkey
GET /bundles/{domain}/{year}/${month}/{date}/{hour}GET /bundles/{domain}/{year}/${month}/{date}GET /bundles/{domain}/{year}/${month}
requires authorization, membership in allowlist
GET /domainkey/{domain}POST /domainkey/{domain}DELETE /domainkey/{domain}
requires orgadmin authorization
GET /org/{id}POST /orgs/{id}/key
requires superuser authorization
GET /orgsPOST /orgsPOST /orgs/{id}DELETE /orgs/{id}/domains/{domain}GET /orgs/{id}/keyPUT /orgs/{id}/key