Skip to content

Simple in/out app to demonstrate Open Telemetry tracing in and out

License

Notifications You must be signed in to change notification settings

fortio/otel-sample-app

Repository files navigation

Open Telemetry (OTEL) Sample App

Install

using golang 1.18+

Locally

go install fortio.org/otel-sample-app@latest

Or Docker - optimized for istio kubernetes cluster

Testing:

Start a local jaeger with otel receiver:

docker run -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one:latest --collector.otlp.enabled=true
fortio server & # echo/debug server
OTEL_SERVICE_NAME=local-test go run . -b3multi -listen :8000 -url http://localhost:8080/debug &
curl -v localhost:8000

Get traces: http://localhost:16686/search

See also Makefile for examples.

The Dockerfile is setup for istio/envoy 1.15.x config with b3 multi headers (what istio envoy uses by default).

Documentation

Initially loosely based on

https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/net/http/httptrace/otelhttptrace

and

https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/instrumentation/net/http/otelhttp/example/client/client.go

and

https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/instrumentation/net/http/otelhttp/example/server/server.go

all combined

(which doesn't work without an outer span setup first in the context, see fortio/fortiotel/simple)