This example illustrates how to export trace and metric data from the OpenTelemetry-Go SDK to the OpenTelemetry Collector. From there, we bring the trace data to Jaeger and the metric data to Prometheus The complete flow is:
-----> Jaeger (trace)
App + SDK ---> OpenTelemetry Collector ---|
-----> Prometheus (metrics)
You will need Docker Compose V2 installed for this demo.
This command will bring up the OpenTelemetry Collector, Jaeger, and Prometheus, and expose the necessary ports for you to view the data.
docker compose up -d
You can find the complete code for this example in the main.go file. To run it, ensure you have a somewhat recent version of Go (preferably >= 1.13) and do
go run main.go
The example simulates an application, hard at work, computing for ten seconds then finishing.
Now the exciting part! Let's check out the telemetry data generated by our sample application
The Jaeger UI is available at http://localhost:16686. Navigate there in your favorite web-browser to view the generated traces.
The Prometheus UI is available at http://localhost:9090. Navigate there in your favorite web-browser to view the generated metrics.
To shut down and clean the example, run
docker compose down