Skip to content

feat: OpenTelemetry integration - #14

Merged
arber-salihi merged 13 commits into
mainfrom
feature/otel-integration
May 25, 2026
Merged

feat: OpenTelemetry integration#14
arber-salihi merged 13 commits into
mainfrom
feature/otel-integration

Conversation

@hibare

@hibare hibare commented May 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds OpenTelemetry instrumentation for traces, metrics, and logs. Disabled by default; enable via otel.enabled: true.

What is instrumented

  • Traces: HTTP server (otelhttp + chi route labeler), outbound HTTP (GitHub, OIDC), PostgreSQL (GORM), DynamoDB (otelaws), Redis (redisotel), and manual spans: TokenExchange, ValidateOIDC, EvaluatePolicy, SelectApp, MintInstallationToken.
  • Metrics: token_exchange_total{outcome}, token_exchange_duration_seconds, token_issued_total{repository}, caller_exchange_total{sub, issuer, outcome}, plus Go runtime metrics and Redis metrics.
  • Logs: slog records fanned out to stdout (enriched with trace_id/span_id) and OTLP via the otelslog bridge.

Configuration

OTLP/gRPC only. Key options: otel.endpoint, otel.insecure (default false), otel.sample_rate, otel.exporter_timeout. See README §5 and config.example.yaml.

Local development

local/compose.dev.yml ships Aspire Dashboard (UI: http://localhost:18888, OTLP: :4317).

@hibare hibare changed the title feat: OTLP integration feat: OpenTelemetry integration May 21, 2026
@hibare
hibare marked this pull request as ready for review May 21, 2026 18:02

@arber-salihi arber-salihi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

Comment thread internal/config/testdata/full_config.yaml
@arber-salihi
arber-salihi merged commit f31bfe8 into main May 25, 2026
2 checks passed
@arber-salihi
arber-salihi deleted the feature/otel-integration branch May 25, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants