-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
🧠 Issue 1 — Observability (zap + Prometheus + OpenTelemetry/Jaeger)
Descrição
Como time, queremos ter observabilidade mínima da API (logs estruturados, métricas e tracing)
para facilitar debug e SLOs.
Esta tarefa adiciona:
- Logger estruturado (
zap) com JSON e campos padrão (service,env,trace_id) - Métricas Prometheus (endpoint
/metrics) com contadores e histograma de latência - Tracing com OpenTelemetry exportando para Jaeger (
JAEGER_COLLECTOR_ENDPOINT) - Middleware que injeta
trace_idnos logs e adicionaX-Trace-Idnos headers docker-compose.ymlcom Prometheus, Grafana e Jaeger +prometheus.yml- Documentação (
docs/observability.md) explicando execução local
Critérios de Aceite
-
zapinicializado e utilizado pela aplicação; logs em JSON com camposserviceetrace_id - Endpoint
/metricsexpõe métricas Prometheus (http_requests_total,http_request_duration_seconds) - Tracing com OpenTelemetry ativo e enviando spans para Jaeger
- Middleware adiciona header
X-Trace-Idnas respostas -
docker-compose.ymlcontémgames-api,prometheus,grafanaejaeger - Documentação adicionada em
docs/observability.md - Testes unitários garantem que
/metricse/healthrespondem corretamente
Tasks
- Criar pacote
internal/observcomInitObservabilitye middlewares - Adaptar
cmd/main.gopara inicializar observability e passar logger - Adicionar handler
/metrics(viapromhttp) - Integrar OpenTelemetry/Jaeger
- Criar
docker-compose.ymlemonitoring/prometheus.yml - Adicionar documentação (
docs/observability.md) - Escrever testes básicos (
internal/observ/observ_test.go)
Exemplo de Execução
JAEGER_COLLECTOR_ENDPOINT=http://jaeger:14268/api/traces
PORT=3000
docker compose up --buildReactions are currently unavailable