motel¶
motel /mōˈtel/ noun mock opentelemetry. A synthetic signal generator for testing and developing observability pipelines.
motel is a synthetic OpenTelemetry generator.
Describe your distributed system in YAML and motel generates realistic traces, metrics, and logs — no live services required.
Install¶
brew tap andrewh/tap
brew install motel
Or with Go:
go install github.com/andrewh/motel/cmd/motel@latest
Or download a binary from the releases page.
Quick start¶
# my-topology.yaml
version: 1
services:
gateway:
operations:
GET /users:
duration: 30ms +/- 10ms
error_rate: 1%
calls:
- users.list
users:
operations:
list:
duration: 15ms +/- 5ms
traffic:
rate: 10/s
# Validate the topology
motel validate my-topology.yaml
# Generate traces to stdout
motel run --stdout --duration 5s my-topology.yaml
# Send to an OTLP collector
motel run --endpoint localhost:4318 --duration 30s my-topology.yaml
What it does¶
motel reads a YAML topology file describing services, operations, call
patterns, latency distributions, and error rates. It walks the topology tree
once per trace, producing spans that look like they came from real instrumented
services. Every span carries synth.service and synth.operation attributes,
and all signals include a motel.version resource attribute, so synthetic
traffic is never mistaken for real data.
Use cases:
- Test observability pipelines — feed realistic traces into collectors, backends, or dashboards without deploying services
- Load test — generate trace traffic at controlled rates with configurable patterns (uniform, diurnal, bursty, custom)
- Demo and prototype — show what your system's telemetry will look like before building it
- Import real traces —
motel importinfers a topology from existing trace data, so you can replay and modify production patterns
Signals¶
By default motel emits traces. Use --signals to add metrics and logs:
motel run --stdout --signals traces,metrics,logs --slow-threshold 200ms topology.yaml
All three signal types are driven by the same topology.
Documentation¶
- Getting started tutorial
- CLI reference
- DSL reference — full topology schema
- Example topologies
- Modelling your services
- How import infers a topology
- How motel uses OTel semantic conventions