450cc99f41
Update module path from git.unbound.se to gitea.unbound.se for Go module discovery over HTTPS.
45 lines
1.2 KiB
Markdown
45 lines
1.2 KiB
Markdown
# 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
|
|
|
|
```go
|
|
import "gitea.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
|