Instrumenting your application with OpenTelemetry

Welcome to a hands-on workshop where you'll instrument a multi-service application from scratch with OpenTelemetry, and ship metrics, logs and traces into the VictoriaMetrics stack. Roughly 25% talk, 75% keyboard.

Three parallel tracks: Node.js/Express, Python/Flask and Go. Same system, same backend, same exercises — only the SDK surface differs.

Prerequisites

Workshop Overview

This workshop consists of 9 modules that take you from a service emitting nothing at all to one you can debug from telemetry alone. You'll instrument a multi-service system, run an OpenTelemetry Collector as the single ingress point, and query the results in VictoriaMetrics, VictoriaLogs, VictoriaTraces and Grafana:

Every module is written once for all three tracks. Use the track switcher in the navigation bar of any module page to flip the code examples between Node.js, Python and Go — your choice is remembered as you move through the workshop.

Getting Started

  1. Start with Module 1, an introduction to observability and OpenTelemetry; Module 2 gets your environment ready
  2. Work through the modules in order — each one builds on the last
  3. Pick the track you want to type in: JavaScript, Python or Go. All three build the same system against the same backend.

Tips for Success

Resources

Workshop Completion

Upon completing all modules, you'll have:

Congratulations! You'll have gained the confidence to instrument your own services deliberately rather than by accident. This knowledge enables you to:

Contributing

Found an issue, have an improvement idea or want to add more modules? Please open an issue or submit a pull request!

Start with Module 1 →