# Can OpenTelemetry Run on TinyGo? A Hands-On Test (October 2026)

> Source: https://www.ymotongpoo.com/books/tinygo-otel-esp32/


This is the companion book to my TinyGo Conference 2026 talk "Observability with TinyGo? Can OpenTelemetry Run on TinyGo?" (in Japanese). OpenTelemetry is not designed for embedded devices. With that assumption in mind, I built an implementation that sends metrics, logs, and traces over OTLP to the OpenTelemetry Collector from an M5Stack CoreS3 (ESP32-S3) that runs TinyGo. Then I tested it on the real device. The book explains why the official Go SDK does not work, what you must write yourself to speak OTLP, and where memory, stacks, and time cause problems. You can check each point against the test code and the measured values as you read.

- [Introduction](/books/tinygo-otel-esp32/00-introduction/)
- [Assumptions and Constraints](/books/tinygo-otel-esp32/05-constraints/)
- [Prior Work](/books/tinygo-otel-esp32/10-prior-art/)
- [Trying the Official Go SDK](/books/tinygo-otel-esp32/15-official-sdk/)
- [Protobuf and reflect](/books/tinygo-otel-esp32/20-protobuf/)
- [Speaking OTLP/JSON](/books/tinygo-otel-esp32/25-otlp-json/)
- [The HTTP Client and Failed Exports](/books/tinygo-otel-esp32/30-http/)
- [Time](/books/tinygo-otel-esp32/35-clock/)
- [Memory, GC, and Stacks](/books/tinygo-otel-esp32/40-memory/)
- [Metrics, Logs, and Traces](/books/tinygo-otel-esp32/45-three-signals/)
- [The Collector and Operations](/books/tinygo-otel-esp32/50-collector/)
- [Conclusion](/books/tinygo-otel-esp32/55-conclusion/)
- [References](/books/tinygo-otel-esp32/99-references/)
