era / guardian_bell

[WIP] Alarm engine written in Rust while live coding on Twitch

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Guardian Bell

Guardian Bell is a WIP Alarm Engine written in Rust, developed during live streams.

It should be compatible with OpenTelemetry standards.

Design

Ingestion

The metrics are kept for a pre-defined ttl. The metrics are kept in-memory and no disk pagination is supported. The metrics are also written in a WAL to make sure in case of crashes the software can recover to its last valid state.

The metrics are saved on buckets based on their name and tags. In other words, each timeseries is kept on their own*.

Any node can receive ingestion requests for any metrics. The metrics are sharded and we use DHT for lookups.

Nodes can only receive requests if their health checks passed for a majority of nodes, avoiding in case of brain-split the two halves decide opposite actions regarding the same alarm configuration.

  • note: the alarms later will subscribe to those buckets

About

[WIP] Alarm engine written in Rust while live coding on Twitch


Languages

Language:Rust 77.2%Language:Makefile 22.8%