Skip to main content

Runbook: Reprocessamento de DLQ

Serviço afetado: events/ — pipeline Kafka Alerta relacionado: atlas_dlq_messages_total > 0 Impacto: Eventos não ingeridos → métricas analíticas desatualizadas

1. Detectar

O alerta atlas_dlq_messages_total > 0 dispara quando qualquer mensagem é enviada ao topic atlas.events.dlq. Para verificar manualmente:
Se o offset máximo for maior que 0, há mensagens na DLQ.

2. Inspecionar

Ler as últimas mensagens da DLQ sem confirmar offset (modo dry-run):
Cada mensagem tem o seguinte formato:
Categorias de erro comuns:

3. Reprocessar

3a. Reprocessamento automático via script

O serviço events/ expõe um endpoint interno para reprocessar a DLQ:
Parâmetros: Resposta esperada:

3b. Reprocessamento manual via kafka-console-producer

Para casos onde o endpoint automático não está disponível:
Atenção: Substitua atlas.events.raw.sportsbook pelo topic correto conforme o campo original_topic de cada mensagem.

4. Verificar Integridade

Após o reprocessamento, confirmar que:

4a. DLQ zerada

4b. Eventos chegaram ao ClickHouse

4c. Métricas analíticas atualizadas

Acessar o dashboard de um operador afetado e verificar que os KPIs refletem os eventos reprocessados.

4d. Confirmar offset da DLQ

Após verificar integridade, confirmar o offset do grupo consumidor da DLQ para evitar reprocessamento duplo:

5. Escalar se necessário

Se o reprocessamento falhar repetidamente para as mesmas mensagens:
  1. Isolar as mensagens problemáticas: mover para um topic atlas.events.dlq.poison para análise sem bloquear o reprocessamento.
  2. Abrir ticket no Linear com as mensagens exportadas e o erro observado.
  3. Notificar o time de dados se o volume de DLQ ultrapassar 10.000 mensagens — pode indicar problema sistêmico no pipeline.

Referências

  • Configuração do Kafka producer: events/internal/kafka/producer.go
  • Topics e ACLs: data/migrations/kafka/
  • Alertas de observabilidade: infra/terraform/staging/monitoring.tf
  • Regras de alerta relacionadas: atlas_dlq_messages_total, atlas_pipeline_gold_stale_minutes