Sonda¶
Sonda is a synthetic telemetry generator that produces realistic metrics and logs for testing observability pipelines. It models the failure patterns that actually break real systems: gaps, micro-bursts, cardinality spikes, and shaped value sequences.
What you can do with Sonda¶
- Validate alert rules -- generate exact metric shapes (sine waves, sequences, CSV replays) to
trigger thresholds and verify
for:duration behavior. - Smoke-test ingest pipelines -- push Prometheus, InfluxDB, or JSON-encoded telemetry to any backend and confirm it arrives correctly.
- Simulate failure modes -- introduce intentional gaps, bursts, and cardinality spikes to test gap-fill logic, alert flap detection, buffer sizing, and cardinality-limiting rules.
- Test recording rules -- push known constant values and verify computed outputs.
- Load-test backends -- generate thousands of events per second in a static binary with zero runtime dependencies.
Quick install¶
More installation options (Cargo, Docker, from source) in Getting Started.
A quick taste¶
sonda metrics --name cpu_usage --rate 2 --duration 2s \
--value-mode sine --amplitude 50 --offset 50 --period-secs 4 \
--label host=web-01
Output (Prometheus exposition format)
cpu_usage{host="web-01"} 50 1774997347438
cpu_usage{host="web-01"} 85.35533905932738 1774997347943
cpu_usage{host="web-01"} 100 1774997348440
cpu_usage{host="web-01"} 85.35533905932738 1774997348943
One command, shaped values, labeled output. Send that same metric straight to a backend -- no YAML needed:
# Push to Prometheus / VictoriaMetrics via remote write
sonda metrics --name cpu_usage --rate 10 --duration 30s \
--value-mode sine --amplitude 50 --offset 50 --period-secs 60 \
--label host=web-01 --encoder remote_write \
--sink remote_write --endpoint http://localhost:8428/api/v1/write
Define reusable scenarios in YAML for anything beyond quick one-offs -- Getting Started shows you how.
Features at a glance¶
| Category | Options |
|---|---|
| Generators | constant, sine, sawtooth, uniform random, sequence, step counter, spike, CSV replay |
| Encoders | Prometheus text, InfluxDB line protocol, JSON lines, syslog, Prometheus remote write, OTLP |
| Sinks | stdout, file, TCP, UDP, HTTP push, Prometheus remote write, Kafka, Loki, OTLP/gRPC |
| Scheduling | configurable rate, duration, gap windows, burst windows, cardinality spikes, jitter |
| Signals | metrics, logs (template and replay modes) |
| Deployment | static binary, Docker, Kubernetes (Helm chart) |
What next¶
Ready to dive in? Get started in 5 minutes -->
Or jump straight to what you need:
- Configuration -- scenario files, generators, encoders, sinks, CLI reference
- Deployment -- Docker, Kubernetes, Server API
- Guides -- tutorial, alert testing, pipeline validation, example scenarios