da69271e82
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.
1.2 KiB
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