Skip to content

feat: add OpenTelemetry metrics with Prometheus-compatible export#52

Merged
allisson merged 1 commit intomainfrom
prometheus
Feb 16, 2026
Merged

feat: add OpenTelemetry metrics with Prometheus-compatible export#52
allisson merged 1 commit intomainfrom
prometheus

Conversation

@allisson
Copy link
Owner

Implements observability instrumentation with metrics collection for HTTP requests and business operations. Metrics can be enabled/disabled via METRICS_ENABLED configuration and are exposed at GET /metrics endpoint in Prometheus exposition format for scraping and monitoring.

Major additions:

  • internal/metrics package with Provider, HTTP middleware, and business operation decorators
  • Prometheus exporter with configurable namespace prefix (METRICS_NAMESPACE)
  • Four metric families: http_requests_total, http_request_duration_seconds, operations_total, operation_duration_seconds
  • UseCase decorators for auth, secrets, and transit domains tracking operation counts and latencies with domain, operation, and status labels
  • HTTP metrics middleware recording request counts and durations by method, path, and status_code
  • Runtime disable behavior: when METRICS_ENABLED=false, metrics middleware and /metrics route are not registered

Documentation updates:

  • Added docs/operations/monitoring.md with quickstart, metrics contract, Prometheus/Grafana examples, and production hardening guidance
  • Added docs/releases/v0.3.0.md release notes
  • Updated environment variable defaults and CLI command examples across getting-started, configuration, and operations guides
  • Added metrics troubleshooting matrix and feature PR docs consistency checklist to contributing guide
  • Updated README with v0.3.0 highlights and monitoring links

Breaking changes: None (additive feature)
Compatibility: API v1 remains stable, metrics endpoint outside versioning

Implements observability instrumentation with metrics collection for HTTP
requests and business operations. Metrics can be enabled/disabled via
METRICS_ENABLED configuration and are exposed at GET /metrics endpoint in
Prometheus exposition format for scraping and monitoring.

Major additions:
- internal/metrics package with Provider, HTTP middleware, and business
  operation decorators
- Prometheus exporter with configurable namespace prefix (METRICS_NAMESPACE)
- Four metric families: http_requests_total, http_request_duration_seconds,
  operations_total, operation_duration_seconds
- UseCase decorators for auth, secrets, and transit domains tracking operation
  counts and latencies with domain, operation, and status labels
- HTTP metrics middleware recording request counts and durations by method,
  path, and status_code
- Runtime disable behavior: when METRICS_ENABLED=false, metrics middleware and
  /metrics route are not registered

Documentation updates:
- Added docs/operations/monitoring.md with quickstart, metrics contract,
  Prometheus/Grafana examples, and production hardening guidance
- Added docs/releases/v0.3.0.md release notes
- Updated environment variable defaults and CLI command examples across
  getting-started, configuration, and operations guides
- Added metrics troubleshooting matrix and feature PR docs consistency
  checklist to contributing guide
- Updated README with v0.3.0 highlights and monitoring links

Breaking changes: None (additive feature)
Compatibility: API v1 remains stable, metrics endpoint outside versioning
@allisson allisson merged commit 1b75eb8 into main Feb 16, 2026
2 checks passed
@allisson allisson deleted the prometheus branch February 16, 2026 15:30
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.

1 participant

Comments