Introduction
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 5 microservices written in Java, Go, Python, Node.js and .NET
- Install the application using the following commands:
sudo apt update
sudo apt install odigos-demo-frontend
- 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:
- 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
:
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
- 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.
- Browse to Jaeger UI at
http://localhost:16686
. Replacelocalhost
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.