2024-08-03, 11:20–11:50 (Asia/Taipei), TR212
As a developer, it can be daunting to choose how and with what strategy to instrument an application. This is the story of how to get started collecting and visualizing data from instrumenting a Golang application with OpenTelemetry.
In this talk, I plan to present the journey I had as a Go developer learning to instrument an application, with the end goal of simply being able to visualize the telemetry data I collected. I restrict the choice to OpenTelemetry for instrumentation as it is open source and because of its growing industry adoption.
When trying to monitor an application, we face a series of choices from how to instrument, then how to extract the data and where to store it and finally how to visualize it. While starting out, all these choices can impede getting something “working” relatively quickly and developing a fast feedback loop on which to iterate. I present here my journey on making those choices and showing that it is relatively straightforward to go from instrumentation to visualization of OpenTelemetry data.
I plan to discuss how I got telemetry data from a Golang application. It is split into 4 steps which form a feedback loop:
1. Instrument the application automatically
2. Extract and transmit the data
3. Store the data
4. Visualize the data
5. Then repeat these steps with manual instrumentation
I often stumbled across multiple ways to do the same thing. I plan to present concrete solutions, which could be suitable for a beginner in the audience to set up as well. I ended up with a solution using automatic eBPF-based instrumentation Grafana Beyla as well as manual instrumentation. Then I found that it was easy for me to store metrics and traces and visualize the data using the Grafana ecosystem. Data can even be sent to Grafana Cloud for convenience.
This is appropriate for a beginner audience who may be familiar with programming but new and interested in monitoring and observability. They may have been like me and spent time primarily coding applications with instrumentation as an afterthought.
Shirley is a software engineer at Grafana Labs working on solutions to facilitate observability. She is passionate about test code, pair programming and believes in facilitating communication through listening, empathizing and clear and understandable explanations. Outside of work, she enjoys bike riding and knitting.