tpt-argus
RustZero-overhead, formally verified observability platform in Rust. A DSL compiles alerting rules to provably contradiction-free, loop-free Rust — no alert storms — paired with a Linux eBPF collector. No runtime interpreter, no unverified rule logic.
Languages
tpt-argus
Zero-overhead, formally-verified distributed observability platform.
Named after the mythological giant with a hundred eyes — total, mathematically guaranteed system visibility.
tpt-argus replaces the fragmented Prometheus/Loki/Tempo stack with a unified,
memory-safe Rust workspace that guarantees bounded memory usage, loop-free
alerting logic, and seamless eBPF-based auto-instrumentation.
Architecture
┌─────────────────────────────────────────────┐
│ tpt-argus workspace │
│ │
kernel / apps │ ┌──────────┐ ┌──────────────────────┐ │
┌───────────┐ eBPF │ │argus- │ │ argus-logic │ │
│ syscalls, │────────▶│ │ probe │───▶│ (verified alert DSL) │ │
│ net flows │ │ │ (Linux) │ │ compile() ─▶ verify │ │
└───────────┘ │ └──────────┘ │ ├ loop-freedom (DAG)│ │
│ │ │ └ contradiction-free │ │
│ ▼ └───────────┬──────────┘ │
│ ┌──────────┐ ┌──────────┐│ │
│ │argus- │◀───│ Metric ││ VerifiedRuleSet
│ │ core │ │ Sample │▼ .evaluate() │
│ │(TSDB, │ └──────────┘ │
│ │ P2) │ │
│ └──────────┘ │
│ ┌──────────┐ │
│ │argus- │ ◀── queries (P3) │
│ │ view │ │
│ │ (WASM) │ │
│ └──────────┘ │
└─────────────────────────────────────────────┘
Component status
Crate naming: the bare names
argus-logic/argus-probeare the preferred publish targets. The crates.io namespace already contains several unrelatedargus-*crates, so if either bare name is taken at publish time we will fall back to thetpt-argus-*prefix (per the project spec) rather than squatting or colliding.Cargo.tomlof consumers would then usetpt-argus-logic/tpt-argus-probe.
| Crate | Phase | Status (v0.1.0) | Published |
|---|---|---|---|
argus-logic | 1 | ✅ Full DSL, verifier (loop + contradiction), codegen, tests | yes |
argus-probe | 1 | ✅ Linux eBPF collector + off-Linux no-op stub | yes (Linux) |
argus-core | 2 | 🚧 Stub only (columnar TSDB lands later) | no |
argus-view | 3 | 🚧 Stub only (WASM dashboard lands later) | no |
What "formally verified" means (v0.1.0)
argus-logic proves two static guarantees before any rule set runs:
- Loop freedom — the rule dependency graph is checked to be a DAG (cycle detection). Evaluation therefore always terminates.
- Contradiction freedom — a range/threshold-overlap analysis over rules observing the same signal proves no two declared-mutually-exclusive rules can both fire on the same value.
Out of scope for v0.1 (documented honestly in the crate docs): temporal / cross-window contradictions, contradictions between different metrics not linked by a derivation, and full SMT theorem proving. The overlap check is a sound, conservative over-approximation.
Building
# Whole workspace (Linux, macOS, Windows). argus-probe is a stub off-Linux.
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
# Real eBPF probe (Linux / WSL2 / VM only):
cargo build -p argus-probe --features ebpf
See crates/argus-probe/README.md for the
Linux-only build/test story, and
crates/argus-logic/README.md for the DSL
quickstart.
Repository layout
crates/
argus-logic/ verified alerting DSL + verifier + codegen
argus-probe/ eBPF collector (Linux) / stub (others)
argus-core/ columnar TSDB (stub in v0.1)
argus-view/ WASM dashboard (stub in v0.1)
License
Licensed under either of MIT or Apache-2.0 at your option.