Backend language

Go observability, live in minutes.

Native OpenTelemetry for Go services: gin middleware, OTLP exporters, zero vendor lock-in.

Three ways in

Snippet, wizard, or manual.

Lead with the fastest path — the copy-paste snippet with your token baked in. The wizard and manual setup stay available.

  1. STEP 1
    Copy-paste the snippet

    Create an OpenTelemetry project and point the OTLP exporter at your TracePath ingest URL with the project token.

  2. STEP 2
    Run the wizard

    npx tracepath-wizard scaffolds the OTel setup for gin/chi/stdlib apps.

  3. STEP 3
    Manual path

    Wire otlptracehttp + otelgin in your server bootstrap.

Real code

A working main.go.

Taken from our own examples and docs — this is the actual shape of a Go integration.

headers := map[string]string{"Authorization": "Bearer " + token}

traceExporter, err := otlptracehttp.New(ctx,
  otlptracehttp.WithEndpoint("ingest.tracepath.dev:4318"),
  otlptracehttp.WithHeaders(headers),
  otlptracehttp.WithInsecure(), // remove for TLS endpoints
)
if err != nil {
  return err
}

tp := sdktrace.NewTracerProvider(
  sdktrace.WithBatcher(traceExporter),
  sdktrace.WithResource(resource.NewWithAttributes(
    semconv.SchemaURL,
    semconv.ServiceName("my-go-service"),
  )),
)
otel.SetTracerProvider(tp)

r := gin.New()
r.Use(otelgin.Middleware("my-go-service"))

Source: examples/devtesting-embedded/main.go in the TracePath repo. TODO-verify: snippet matches the latest SDK release before publishing.

What you get

Built for Go.

otelgin/otelchi middleware for request spans

Logs and metrics via the OTel log/metric SDKs

Exception capture with panic recovery

Works with any OpenTelemetry collector in front

From the blog

More on Go.

Browse everything tagged #go

Other frameworks

Instrument Go today.

Free plan, no credit card. First event in under five minutes.