First published: Last updated:

References

Originally published in Japanese at https://zenn.dev/ymotongpoo/books/tinygo-otel-esp32/viewer/99-references.

This page lists the primary sources that this book refers to. The content at each link is as of the time of writing (October 2026).

OpenTelemetry specifications

  • OTLP Specification: The specification that defines the OTLP transports, the protobuf and JSON encodings, the responses that qualify for a retry, and partialSuccess
  • opentelemetry-proto: The protobuf schema for OTLP. The hand-written encoder in this book follows the field numbers in v1.11.0
  • Metrics Data Model: How the data model treats gauge, cumulative sum, and StartTimeUnixNano
  • Logs Data Model: The timestamps and severity of log records
  • Deployment environment: The semantic convention for the resource attribute deployment.environment.name

OpenTelemetry implementations

OpenTelemetry and embedded devices

TinyGo and drivers

  • TinyGo: A Go compiler for microcontrollers and WebAssembly
  • tinygo-org/tinygo: The TinyGo repository
  • tinygo-otel-esp32: The reference implementation for this book. It contains the code shown in the text, the Collector configuration, and the Grafana dashboard
  • tinygo-org/tinygo#5554: The pull request that adds PSRAM support for the ESP32-S3
  • espradio: A driver that lets TinyGo programs use the Wi-Fi on an ESP32
  • lneto: The TCP/IP stack that espradio uses

Go and protobuf

Protocols

  • RFC 4330: Simple Network Time Protocol (SNTP) Version 4
  • MQTT: The messaging protocol that the base14 case uses between the device and the bridge

Hardware

Backends and tools

Issues that I reported from the research for this book

Of the constraints that I found in the research for this book, I reported the following five to the projects on October 7, 2026.

  • tinygo-org/espradio#75: A report that a program connected through netlink has no way to set the clock (Chapter 8)
  • tinygo-org/espradio#76: A proposal for a function that returns the RSSI of the connected access point (Chapter 10)
  • tinygo-org/tinygo#5839: A report that on the ESP32-S3, TinyGo does not report a goroutine stack overflow as goroutine stack overflow. The program stops silently or crashes with a different error (Chapter 9)
  • Comment on tinygo-org/tinygo#5204: A case in which otlpmetrichttp does not build because tls.X509KeyPair is missing (Chapter 4)
  • Comment on tinygo-org/tinygo#3862: A case in which proto.Marshal in protobuf-go panics because (reflect.Type).MethodByName is not implemented (Chapter 5)