OpenTelemetry for Dummies: Instrumenting Go Apps

A presentation at GopherCon Europe by Ricardo Ferreira

Though tracing technologies are not necessarily a new concept only in the recent years it gained enough traction to become one of the key dimensions required to build observability stacks. Undoubtedly the major force behind this traction are the standards created to help developers to collect telemetry data from their applications, such as OpenTelemetry—an observability framework for cloud-native software.

OpenTelemetry provides a single set of APIs, libraries, agents, and collectors that ensures technology agnostic collection of traces and metrics—but the implementation for each programming language is different. While Java has an agent capable of automatically instrumenting the JVM with additional bytecode, other programming languages like Go have to handle this instrumentation manually.

But Go developers have nothing to fear. This talk will explain in a for-the-rest-of-us style how to instrument applications written in Go and how to send the telemetry data to a backend using a collector.

Video

Code

The following code examples from the presentation can be tried out live.

  • OpenTelemetry in Go with Elastic APM

    This project showcase how to instrument a microservice written in Go using OpenTelemetry, to produce telemetry data (traces and metrics) to Elastic APM.

Buzz and feedback

Here’s what was said about this presentation on social media.