Files
otelsetup/CLAUDE.md
T
argoyle da69271e82
otelsetup / vulnerabilities (pull_request) Successful in 3m55s
otelsetup / test (pull_request) Successful in 4m2s
refactor: update import paths to the new repository location
Change the import paths in CLAUDE.md and go.mod to reflect the
migration of the otelsetup module from GitLab to a new Git server.
Remove the build status and code coverage badges from README.md as
they are no longer applicable. Update configuration in
.pre-commit-config.yaml to match the new module path.
2026-01-09 09:27:06 +01:00

1.2 KiB

otelsetup

Shared Go library for OpenTelemetry setup across all microservices.

Shared Documentation

@../docs/claude/architecture.md @../docs/claude/go-services.md @../docs/claude/conventions.md

Library Information

Purpose

Provides standardized OpenTelemetry configuration for tracing, metrics, and logging. Used by all Go microservices to enable observability.

Usage

import "git.unbound.se/shiny/otelsetup"

// Bootstrap OpenTelemetry SDK
shutdown, err := otelsetup.SetupOTelSDK(ctx, enabled, serviceName, buildVersion, environment)
if err != nil {
    log.Fatal(err)
}
defer shutdown(ctx)

// Wrap HTTP handlers with tracing
http.Handle("/", otelsetup.Handler(myHandler))

Features

  • Tracing - OTLP HTTP exporter with batch processing
  • Metrics - OTLP HTTP exporter with periodic reader
  • Logging - Stdout log exporter
  • Propagation - TraceContext and Baggage propagation
  • HTTP Handler - Middleware for automatic span creation

Environment Variables

  • OTEL_RESOURCE_ATTRIBUTES - Auto-set if not provided (service.name, service.version, service.environment)
  • Standard OTLP environment variables for endpoint configuration