Experiment tracking on your infrastructure.
For training runs, agents and evals.
- Non-blocking
run.log() - Live charts, up to 500 points per line
- Spools to disk during API outages
- Spikes survive downsampling
A simulated run page for vit-b16-pretrain with four metric charts, Insights and SDK health. Scroll down to advance from step 800 to step 3,289,474 and 10 million stored points; scroll up to rewind. During an API outage the page shows Offline and the SDK spools to disk. The points replay when the API returns. Each line draws at most 500 points.
Agents and evals.
Agent trace
- Traces from the SDK or OTLP
- A scoped key per agent
- Tokens and cost per session
A simulated agent trace. Scrolling plays the 3.18-second session: spans appear in start order and grow as they run. The totals reach 2,698 tokens and $0.0079. Scroll up to rewind.
Eval scorecard
- Versioned eval suites
- Thresholds per scorer
- Pass/fail gates
A simulated eval scorecard. Scroll through 1,200 examples. Exact match ends at 86%, above its 80% threshold. LLM judge falls below 80% at example 719 and ends at 78%; the gate fails. Scroll up to rewind.
Benchmarks.
10.52µs
p99 per call. W&B offline: 193.478 µs. MLflow with SQLite: 2,761.424 µs.
124,293points/s
sustained ingest, with chart queries at 60 ms p95.
0points lost
through our SIGKILL, API outage and ClickHouse restart tests.
Self-host with Docker Compose.
-
Start the stack
git clone https://github.com/rundial-dev/rundial cd rundial && bash scripts/setup/open_core_up.sh -
Make an API key
Create one in default-project's settings. Export it as RUNDIAL_API_KEY.
-
Install the Python SDK
pip install rundial -
Log your first run
import rundial as rd with rd.init( workspace="default-workspace", project="default-project", name="resnet50-lr3e-4", ) as run: for step, batch in enumerate(loader): loss = train_step(batch) run.log({"train/loss": loss}, step=step)