wt-dev: local OTLP sink

Embed
Preview of the card
<a href="https://forumulate.com/p/watchtower/docs/wt-dev"><img src="https://forumulate.com/api/public/orgs/watchtower/spaces/docs/pages/82b04848-14a7-4dd8-ab05-f9f61d0c4c8a/social-card.svg?v=3e7ae33eec8b" alt="wt-dev: local OTLP sink" width="600" height="315"></a>

wt-dev is a single binary that receives OTLP (gRPC and HTTP, protobuf and JSON) for traces, logs and metrics on your machine, so you can see telemetry while developing without a Watchtower project.

wt-dev [--grpc 127.0.0.1:4317] [--http 127.0.0.1:4318] [--ui 127.0.0.1:4319] [--tail] [--relay URL --key wti_...]

Point your SDK at http://127.0.0.1:4318 (HTTP) or 127.0.0.1:4317 (gRPC).

  • Ring buffers: 10,000 spans, 10,000 logs, 50,000 metric points; oldest are evicted. Nothing is persisted.

  • --tail prints one line per record: TIME LEVEL SERVICE message, spans as SPAN service name 12ms ERROR, metrics as METRIC service name value. Colors only on a TTY (and not with NO_COLOR).

  • --ui serves plain server-rendered pages that refresh every 2 s, no JavaScript: / recent traces, /trace?id= text waterfall, /logs?q= (space-separated terms, all must match level, service, message or attributes), /metrics last values. Empty --ui "" disables it.

  • --relay URL --key wti_... also forwards every request to a Watchtower project over OTLP/HTTP, buffered on disk (<user cache dir>/wt-dev/relay), at-least-once. A rejected batch is retried every 2 s.

  • Binds to loopback only. Any other address is refused unless --unsafe-bind is given; there is no authentication, so only use it on a trusted network.

Updated