otel-edge v0.1.0 — first release
An embedded-Linux-first OpenTelemetry agent that natively ingests MQTT and
NATS/JetStream, maps IoT topic/payload semantics onto OpenTelemetry, survives
power/network loss with a durable on-disk buffer, and emits OTLP for metrics,
logs, and traces — as a single tiny static binary.
What's in this release
- MQTT source (rumqttc) → JSON decode → topic→resource mapping → OTLP/HTTP
export of metrics, logs, and traces, all validated end-to-end against a real
Mosquitto broker and OpenTelemetry Collector v0.153.0. - NATS + JetStream durable pull consumers with explicit ack (opt-in
--features nats). - Durable offline buffer (redb): collector down → telemetry buffers to disk →
flushes automatically on recovery. Survives restarts. - Agent self-telemetry, SIGHUP hot config reload, systemd
sd_notify+
watchdog integration, graceful shutdown. - 49 tests pass; clippy + fmt clean.
Binaries
Fully static, dependency-free musl binaries (no libc, no C toolchain needed for
the default pure-Rust build). Verify with the matching .sha256.
| Target | Size |
|---|---|
x86_64-unknown-linux-musl |
2.7 MB |
aarch64-unknown-linux-musl |
2.2 MB |
armv7-unknown-linux-musleabihf |
2.2 MB |
curl -L https://github.com/aashish-thapa/otel-edge/releases/download/v0.1.0/otel-edge-aarch64-unknown-linux-musl -o otel-edge
chmod +x otel-edge && ./otel-edge --helpDeliberately deferred (documented, not blocking core value)
OTLP/gRPC + protobuf transport (binary-size cost vs. the embedded-first thesis;
HTTP/JSON covers the path), Sparkplug B codec, and the Yocto image build (recipe
provided; needs an OpenEmbedded host). See docs/milestones.md.