OpenTelemetry Demo

Summary

This repo contains a environment for demonstrating OpenTelemetry tracing support in Uptrace.

The Password Generator Service

A password generator service is instrumented with OpenTelemetry tracing. This is an absurd service and should not be taken as a shining example of architecture nor coding. It exists as a playground example to generate traces. The lower service generates random lowercase letters. The upper service service generates random uppercase letters. The digit service generates random digits, and the special service generates random special characters. There is a generator service which makes calls to the other services to compose a random password. Finally, there is a load script which continuously calls the generator service in order to simulate user load.

All the services are written in Go.

The Observability Infrastructure

All the microservices forward their traces to an instance of the OpenTelemetry Collector. The collector sends the traces on to an instance of the Uptrace.

Running the System

The system runs in docker, is configured via the docker compose file, and is operated with docker-compose. Run the following command from the root of the repo to (re)start the system.

docker-compose up --remove-orphans --build --detach

or

make deploy/up

Once running, the following links will let you explore the various components of the system:

When you are ready to shutdown the system, use the following command.

docker-compose down

or

make deploy/down

To destroy the environment instead of stop, use the following command.

make deploy/destroy

GitHub

View Github