Use the open-telemetry/opentelemetry-go SDK to instrument your Go application by creating a tracer and propagating context.
import (
"context"
"log"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
"go.opentelemetry.io/otel/sdk/trace"
)
func main() {
exp, _ := stdouttrace.New(stdouttrace.WithPrettyPrint())
provider := trace.NewTracerProvider(trace.WithSyncer(exp))
otel.SetTracerProvider(provider)
tracer := otel.Tracer("my-service")
ctx, span := tracer.Start(context.Background(), "operation")
defer span.End()
log.Println("Processing request")
_ = ctx
}