Observabilidade e resposta a incidentes
Nesta aula
Escolher perguntas que a operação precisa responder
Observabilidade é a capacidade de compreender estados internos a partir de sinais do sistema. Logs registram eventos; métricas resumem medidas ao longo do tempo; rastros relacionam etapas de uma operação. Um sistema pequeno pode começar com sinais simples, desde que respondam a perguntas concretas. A Oficina Caracol precisa saber se o catálogo responde, se a operação simulada falha e se uma repetição cria efeito indevido. Coletar todo o conteúdo das solicitações acrescentaria exposição sem necessariamente melhorar essas respostas.
Incidente é uma ocorrência que exige resposta para conter impacto e recuperar o serviço segundo critérios definidos. A primeira decisão procura reduzir o dano com informações disponíveis. A análise posterior investiga condições e melhorias sem transformar a busca por causa numa caça a culpados. A incerteza precisa aparecer na comunicação: hipótese, evidência e decisão têm significados diferentes. Um rollback é uma possibilidade de contenção quando há relação com uma mudança reversível, não a resposta automática para qualquer falha.
Sinais e roteiro preenchidos
| Sinal do caso | Definição didática | Ação prevista |
|---|---|---|
| Falha do catálogo | Respostas 500 em GET /api/casos divididas pelo total de consultas na janela | Investigar se o erro corresponde a dados inválidos, mudança de código ou outra condição |
| Conflito de reserva | Contagem de HTTP 409 em POST /api/reservas | Conferir reutilização da mesma chave para outro caso; não repetir cegamente |
| Saúde da reserva | Repetir mesma chave e caso mantém reservaId durante a mesma sessão | Se houver efeito duplicado, conter a operação e preservar evidência mínima |
| Registro operacional mínimo | Horário, rota, código HTTP e identificador artificial da tentativa | Correlacionar falhas sem guardar corpo completo ou dados pessoais |
Responder com uma sequência verificável
- Reconheça o sinal e abra um registro com horário, escopo afetado e pessoa responsável pela coordenação. Preserve evidência sem divulgar segredos.
- Estime o impacto e comunique o conhecido, o desconhecido e o próximo ponto de atualização. Evite prometer prazo de recuperação sem base.
- Compare hipóteses com os sinais disponíveis. Verifique mudanças recentes, condições dos dados e alcance da falha.
- Escolha contenção adequada: suspender uma operação, corrigir a entrada, retornar versão ou outra medida proporcional. Verifique dependências e reversibilidade antes da ação.
- Após a ação, teste os fluxos afetados e acompanhe os sinais durante a janela definida. Declare recuperação apenas com critérios atendidos.
- Produza análise posterior com linha do tempo, fatores contribuintes, ações, responsáveis e verificação de eficácia. Converta defeitos pertinentes em testes e decisões.
Decidir entre retorno e outro reparo
No cenário fornecido, ocorreram oito respostas 500 em duzentas consultas, ou 4%. A regra local do exercício pede investigação acima de 2%; ela é um limiar de estudo, não um padrão universal. A investigação encontra um arquivo de catálogo inválido, alterado independentemente da última revisão de código. Voltar apenas o código pode manter a falha. É preciso reparar os dados a partir da fonte autorizada e verificar a resposta, preservando evidência do ocorrido.
Em outro cenário, a falha surge imediatamente após uma revisão e o teste comparativo identifica a alteração responsável. Se o retorno estiver ensaiado e os dados forem compatíveis, usar a revisão anterior pode ser a contenção escolhida. Os dois casos começam com o mesmo sinal e levam a decisões diferentes. O registro do incidente explica por que a ação foi adequada e qual observação demonstrou a recuperação. São cenários para análise, sem alegar execução de um incidente real.
Repetir uma solicitação com segurança
Uma resposta perdida não prova que a operação falhou antes de produzir efeito. Por isso, a nova tentativa da mesma reserva conserva a chave e o caso. A prática devolve o mesmo resultado lógico enquanto o registrador permanece em memória. Reutilizar a chave para outro caso gera conflito 409; essa resposta exige corrigir a intenção, não insistir. Estratégias de retry precisam respeitar limites e semântica da operação [S15, seção sobre repetição segura com identificador de solicitação]. Reiniciar o processo elimina a memória; a demonstração não promete idempotência persistente.
Erros e condição de recuperação
Um alerta sem pessoa ou ação definida vira ruído. Dê ao alerta uma pergunta, um responsável e um roteiro. Um log indiscriminado pode virar vazamento; revise campos e acesso. Culpar quem estava de plantão esconde condições de processo; registre fatores verificáveis e medidas acompanháveis. A recuperação exige fluxo novamente aceitável, sinais acompanhados e pendências classificadas. Encerrar a urgência não dispensa as ações de aprendizagem.
Exercício e solução
Dados: após uma resposta perdida, a interface tenta novamente a reserva do caso A. Recebe 409 porque enviou a chave anterior com o caso B. Uma pessoa sugere cinco novas tentativas imediatas. Decida e proponha um teste de proteção.
Ver solução comentada
Solução: interromper a repetição automática e corrigir a associação entre intenção, chave e caso. Para repetir a mesma intenção, conservar chave e A; uma intenção nova para B recebe nova chave. O teste verifica resultado lógico igual para chave/A repetidos e conflito para chave/B. A rubrica exige interpretar 409, distinguir perda de resposta de ausência de efeito e declarar o limite de memória da simulação.
Fontes relacionadas
Consulte os limites e as seções de apoio de cada referência.
S15 S19Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.
A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.