From a0e1ad35b34264a3f24086b5761339e72487b53d Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Wed, 31 Dec 2025 21:54:03 +0100 Subject: [PATCH] docs: add CLAUDE.md for Claude Code integration --- .gitignore | 1 + CLAUDE.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore index 9ada4d7..7d212e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea +.claude /release diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b2c4c99 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,44 @@ +# 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 "gitlab.com/unboundsoftware/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