Skip to main content
In this tutorial, we are going to use Odigos for instrumenting and collecting distributed traces from an application written in Go. We are going to deploy the application on a virtual machine and use Jaeger as the backend for storing and visualizing the traces.

Deploying the target application

We are going to install Odigos demo application that consists of 6 microservices written in Java, Go, Python, Node.js, .NET and PHP.
Architecture of demo application
  1. Install the application using the following commands:
  • APT
  • DNF
sudo apt update
sudo apt install odigos-demo-frontend
  1. Check that the application is running:
sudo systemctl status odigos-demo-frontend
The service should show up in active (running) state.

Deploying Jaeger

This Jaeger setup is intended for demonstration purposes only. In a production environment, you should deploy Jaeger or any other backend solution in a more reliable and scalable manner. Install Jaeger using the following commands:
  1. Download a version of Jaeger which is compatible to your OS and arch from GitHub releases page and extract the archive.
Examples for jaeger v1.0.57:
  • amd64
  • arm64
wget https://github.com/jaegertracing/jaeger/releases/download/v1.59.0/jaeger-1.59.0-linux-amd64.tar.gz
tar -xvf jaeger-1.59.0-linux-amd64.tar.gz
cd jaeger-1.59.0-linux-amd64
  1. Run the Jaeger All-in-One binary:
./jaeger-all-in-one --collector.otlp.grpc.host-port 0.0.0.0:44317 --collector.otlp.http.host-port 0.0.0.0:44318
We map the OTLP endpoints for Jaeger to different ports (44317\44318 instead of 4317\4318) to avoid conflicts with Odigos collector.
  1. Browse to Jaeger UI at http://localhost:16686. Replace localhost with the IP address of the machine where Jaeger is running if you are accessing it from a different machine.
At this point, jaeger is running and ready to receive traces from the demo application.
I