Comece de fora para dentro

Eu tento reproduzir o problema como usuário: domínio público, HTTPS, página principal e o fluxo que foi relatado. Isso separa rápido problemas de DNS, certificado, proxy e aplicação. Se só o acesso interno funciona, reiniciar o app pode não mudar nada.

Também comparo mais de uma rota. Uma home em cache pode continuar 200 enquanto páginas dinâmicas estão quebradas.

Healthcheck precisa testar algo que importa

Um healthcheck que só pergunta “o processo está vivo?” pode ficar verde mesmo sem banco, fila ou API externa. Para serviços importantes, faz sentido ter readiness separado de liveness e, quando possível, checks sintéticos que executam uma parte controlada do fluxo real.

No caso de um sistema com login, por exemplo, eu gosto de monitorar HTTP, dependências e uma jornada sintética segura em vez de depender apenas da porta aberta.

Olhe o timestamp antes de culpar o alerta

Alertas podem refletir manutenção planejada, troca de roteador, deploy ou um pico que já passou. Correlacionar horário com logs, métricas e mudanças evita “corrigir” algo que não está quebrado.

Da mesma forma, um alerta resolvido não prova que a causa desapareceu. É preciso entender qual condição deixou de acontecer e se o comportamento do usuário voltou ao normal.

Reiniciar é ação, não diagnóstico

Restart pode aliviar vazamento de memória ou travamento, mas também apaga sinais úteis e pode ampliar o impacto se o problema estiver em uma dependência compartilhada. Em servidor com vários serviços, prefiro descobrir qual componente falhou e reiniciar apenas o necessário.

Se a causa ainda não está isolada, logs e métricas antes da mutação valem mais que uma sequência de restarts.

O que monitorar de verdade

Para um site em produção eu considero HTTP externo, DNS, TLS, proxy, erros 5xx, TTFB, CPU, memória, disco, banco, cache, filas, backups e os fluxos críticos da aplicação. O conjunto depende do produto; não existe dashboard universal que substitua entender a operação.

Esse é o motivo de eu tratar observabilidade como parte do projeto, e não como uma tela bonita adicionada depois.