Skip to content

Feat/observability stack - #151

Merged
Benevanio merged 5 commits into
Cla-Code-Community:developfrom
hltav:feat/observability-stack
Jun 21, 2026
Merged

Benevanio merged 5 commits into
Cla-Code-Community:developfrom
hltav:feat/observability-stack

Conversation

@hltav

@hltav hltav commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

O que mudou

Este PR contém duas mudanças relacionadas:

1. Stack de observabilidade (Prometheus, Grafana, Loki)

  • Instrumenta backend (Express) e scraper-go com métricas Prometheus customizadas
  • Adiciona exporters para Postgres, Redis/Valkey, host e containers
  • Substitui ELK por Loki/Promtail para reduzir consumo de memória (viabiliza deploy em VPS de 4GB RAM)
  • Provisiona datasources e 4 dashboards Grafana (API Overview, Scraper Health, Infraestrutura, Business)
  • Adiciona requestId middleware no backend para rastreamento de requisições

2. Remoção do vendoring no scraper-go

  • Corrige o Dockerfile do scraper-go para usar go mod download em vez de vendor/
  • Remove o diretório scraper-go/vendor/ (~147 mil linhas), que não é mais necessário com o novo fluxo de build

⚠️ Nota sobre o tamanho do diff

A maior parte das 412 arquivos alterados é deleção de arquivos vendorizados de dependências Go (scraper-go/vendor/) — não é código novo. As mudanças reais de observabilidade estão concentradas em:

  • docker-compose.observability.yml
  • observability/**
  • backend/src/metrics/, backend/src/middleware/metrics.ts, backend/src/middleware/requestId.ts
  • backend/src/app.ts (integração dos middlewares)
  • scraper-go/internal/metrics/
  • scraper-go/internal/pipeline/pipeline.go (instrumentação)
  • scraper-go/cmd/server/server.go (endpoint /metrics)
  • scraper-go/Dockerfile (build sem vendor)

Esta branch também inclui um merge de upstream/develop para resolver divergência de histórico (a branch foi criada antes da integração de OAuth GitHub/Google/LinkedIn ter sido mesclada), o que trouxe commits adicionais que não são de minha autoria.

Como testar

docker compose -f docker-compose.infra.yml \
               -f docker-compose.yml \
               -f docker-compose.observability.yml \
               up -d
  • Backend metrics: http://localhost:3001/metrics
  • Scraper-go metrics: http://localhost:8081/metrics
  • Prometheus: http://localhost:9091
  • Grafana: http://localhost:3002 (dashboards em "Jobs Scraper Global")

hltav added 3 commits June 10, 2026 10:12
…h providers

- Add trust proxy to Express for correct protocol detection behind nginx
- Replace dynamic req.protocol with APP_URL-based callback URL construction
- Use dynamic provider param in callback URL to support multiple OAuth providers
- Replace openid-client discovery with manual OAuth flow for LinkedIn
…ana e Loki" -m "Implementa observabilidade completa para backend e scraper-go, cobrindo métricas, logs e dashboards.

Métricas (Prometheus):
- Instrumenta o backend (Express) com prom-client: duração e contagem de requisições HTTP, sessões ativas, buscas de vagas, hit/miss de cache
- Instrumenta o scraper-go (client_golang): execuções, duração, vagas encontradas e erros por adapter, além de métricas do pipeline completo
- Adiciona exporters para Postgres, Redis/Valkey, host (node-exporter) e containers (cAdvisor)
- Expõe /metrics no backend (:3001) e no scraper-go (:8081)

Logs (Loki + Promtail):
- Substitui ELK (Elasticsearch/Kibana/Filebeat) por Loki/Promtail para reduzir consumo de memória, viabilizando o deploy no VPS (4GB RAM)
- Logs estruturados em JSON (Pino/slog) parseados e rotulados por container/service para busca via Grafana Explore
- Adiciona middleware de requestId no backend para rastreamento de requisições

Dashboards (Grafana):
- Provisiona datasources Prometheus e Loki automaticamente
- Adiciona 4 dashboards: API Overview, Scraper Health, Infraestrutura e Business

Infra:
- Adiciona docker-compose.observability.yml como compose separado
- Adiciona Alertmanager com rota padrão mínima
- Corrige Dockerfile do scraper-go para usar go mod download em vez de vendoring"
…ty-stack

# Conflicts:
#	backend/src/app.ts
#	backend/src/modules/auth/providers/linkedin.ts
#	package-lock.json
@vercel

vercel Bot commented Jun 21, 2026

Copy link
Copy Markdown

@hltav is attempting to deploy a commit to the Bene Tesla's projects Team on Vercel.

A member of the Team first needs to authorize it.

@vercel

vercel Bot commented Jun 21, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
painel-vagas Ready Ready Preview, Comment Jun 21, 2026 9:48pm

@Benevanio
Benevanio merged commit 3b5e395 into Cla-Code-Community:develop Jun 21, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in JobAtlas – Kanban Jun 21, 2026
@hltav
hltav deleted the feat/observability-stack branch June 21, 2026 22:10

This branch was previously deployed

1 inactive deployment
Preview — a0f523f6 Deployed Jun 21, 2026 by vercel[bot]
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