If you are an astute follower of Peter Bourgon's [Go best practices](https://peter.bourgon.org/go-best-practices-2016/#logging-and-instrumentation), you have known it since 2016: “You should be instrumenting every significant component of your codebase.” But what does that even mean? Back then, Peter was mostly talking about metrics (and flatteringly recommended [Prometheus](https://prometheus.io) for it). However, logging can also be seen as instrumentation. (Peter considered it related but separate in his post from 2016.) And then there is instrumentation for distributed tracing. All three of them, metrics, logs, and traces, are nowadays often referred to as the [three pillars ob observability](https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ch04.html). Wouldn't it be nice if you could do all three of them within the same framework? [OpenTelemetry](https://opentelemetry.io) is a project promising exactly that. There is a wide field of techniques between simple standard Go packages like `expvar` and `log` and the newest and most ambitious projects like OpenTelemetry. This talk doesn't intend to give you hands-on instructions for using any of them. Instead, it will provide a (necessarily incomplete) overview of established and new approaches and some guidelines how to navigate the many choices.