Pilar 02 · Data Blog

Observabilidade de dados: detectar falhas antes do stakeholder

Toda segunda-feira de manhã, alguém no time de analytics responde o mesmo tipo de mensagem: "o número de contratos fechados no dashboard parece errado." Às vezes é um bug de pipeline que rodou com falha silenciosa. Às vezes é uma mudança de schema no sistema fonte que não foi comunicada. Às vezes é dado que chegou com 18 horas de atraso — e o dashboard, honesto, mostrou o que havia. Em todos os casos, quem descobriu o problema foi o usuário — não o time de dados.

Observabilidade de dados é a prática de instrumentar pipelines para que esses problemas apareçam no radar antes de chegarem ao inbox. Não é sobre ter dado perfeito — já é consenso que dado limpo é mito e que conviver com qualidade imperfeita é o trabalho real. É sobre saber, em tempo próximo ao real, quando o dado desviou do comportamento esperado.

O que observabilidade de dados não é

A confusão mais frequente é tratar observabilidade como sinônimo de monitoramento de infraestrutura. Job que termina com sucesso no Airflow ou no dbt Cloud — sem erro de execução, sem timeout, sem falha de conectividade — pode ter produzido dado completamente errado. Colunas com 100% de nulo onde deveriam ter valor. Tabela com 40% menos registros que o histórico. Timestamp de updated_at de ontem num dado que deveria ter chegado hoje cedo.

Monitoramento de infra garante que o pipeline rodou. Observabilidade garante que o dado está certo. São camadas diferentes — e a segunda é a que detecta os problemas que chegam ao usuário. A distinção importa porque investir só na primeira cria sensação de controle que o incidente de quarta-feira vai desmentir.

Observabilidade também não é validação pontual em projeto. Time que sobe um pipeline novo, valida na primeira semana e considera o trabalho feito vai descobrir, três meses depois, que a distribuição de valores mudou, que o time de backend renomeou um campo, que a frequência de atualização do sistema fonte foi alterada sem aviso. Observabilidade é processo permanente — não evento de entrega.

Os cinco eixos de observabilidade de dados

O modelo mais disseminado, popularizado por empresas como Monte Carlo, organiza a observabilidade em cinco dimensões. São eixos independentes, instrumentados em ordem crescente de sofisticação:

  1. Frescor (Freshness). O dado chegou quando deveria? Uma tabela que normalmente atualiza às 6h da manhã e às 9h ainda não mudou tem problema de frescor. É o eixo mais simples de instrumentar e o que detecta a maior fatia de falhas de pipeline — estimativas de times com instrumentação básica indicam que 50–60% dos incidentes são de latência ou ausência de dado, não de dado incorreto.

  2. Volume. A tabela tem o número esperado de registros? Queda de 40% no volume de pedidos pode ser sinal de pipeline silenciosamente cortando dado — não de queda real nas vendas. Esse desvio raramente aparece em logs de execução: o job terminou, a tabela existe, mas está incompleta.

  3. Distribuição. Os valores estão dentro da faixa esperada? Percentual de nulo acima da média histórica, coluna categórica com valores novos não mapeados, campo numérico com outlier absurdo — desvios de distribuição são os que mais demoram a aparecer em produção porque o pipeline funciona normalmente, só o conteúdo está errado.

  4. Esquema (Schema). Colunas foram adicionadas, removidas ou renomeadas no sistema fonte? Essa é a categoria que mais causa falhas silenciosas em pipelines ELT: a fonte muda, o pipeline continua rodando, e a tabela de destino vira dado parcial ou mal interpretado. Sem checagem de esquema, uma renomeação passa invisível até alguém abrir o relatório.

  5. Linhagem (Lineage). Dado uma falha, quais tabelas downstream foram impactadas? Quais dashboards estão consumindo dado comprometido? Sem linhagem, o problema se descobre por contágio — primeiro um dashboard, depois outro, depois uma exportação de CRM. Linhagem transforma "sei que algo está errado" em "sei o que está errado e o que está em risco".

Observabilidade não é encontrar o dado errado — é saber que ele pode estar errado antes de alguém usá-lo.

Onde a maioria dos times começa errado

O erro mais frequente é comprar ou instalar uma ferramenta de observabilidade sem documentar o comportamento esperado dos dados primeiro. Ferramenta que não sabe o que é "normal" não tem baseline para alertar. Vai gerar ou silêncio total ou cascata de falsos positivos — e nenhum dos dois é útil operacionalmente. Time que recebe 50 alertas por dia aprende a ignorar todos.

O segundo erro é confundir alerta com resolução. Observabilidade detecta; o processo de resolução precisa ser desenhado separadamente. Quem recebe o alerta? Quem tem autoridade para pausar dashboards dependentes enquanto investiga? Como se comunica o status do incidente para o stakeholder? Sem esse fluxo, o alerta vira notificação ignorada na primeira semana de silêncio.

O terceiro erro é tentar instrumentar os cinco eixos de uma vez, em todos os modelos. Times que tentam cobertura total logo no início geralmente travam no primeiro mês. A abordagem que funciona é sequencial: frescor e volume primeiro — rápido, alto impacto —, depois distribuição, depois esquema, depois linhagem. Cada eixo só quando o anterior está estável e monitorado.

Como instrumentar sem reescrever o pipeline

A sequência que uma consultoria especializada aplica na prática, do mais simples para o mais sofisticado:

  1. Testes nativos do dbt. Se você já usa dbt, já tem 80% do caminho — not_null, unique, accepted_values, relationships. O problema é que times instalam e não expandem além dos testes padrão. O pulo do gato no dbt está na documentação e nos testes customizados — e os testes customizados são onde a observabilidade de negócio vive, não só a técnica.

  2. Freshness check por SQL. Uma query simples por tabela crítica: MAX(updated_at) < CURRENT_TIMESTAMP - INTERVAL '3 hours' detecta 60% dos problemas de pipeline sem nenhuma ferramenta adicional. Corre como step do próprio pipeline ou como job separado de checagem periódica.

  3. Volume baseline por janela histórica. Calcule a mediana de registros por dia nos últimos 30 dias para cada tabela crítica. Alerte se o volume hoje cair abaixo de 70% desse histórico. Custo: uma tabela de metadados e um job de 10 linhas de SQL. Detecta partição cortada, join errado, filtro acidental.

  4. Data contracts como camada de proteção de esquema. Definir contrato explícito entre produtor e consumidor de dados cria o baseline formal para qualquer alerta de esquema. Sem contrato, não há desvio — há só surpresa. Data contracts são o jeito menos doloroso de não quebrar produção e são o complemento natural da observabilidade: contract previne a mudança não comunicada; observabilidade detecta quando ela passou assim mesmo.

  5. Ferramentas especializadas quando a escala justificar. Monte Carlo, Soda, Acceldata, Anomalo entram quando a operação tem dezenas de pipelines e equipes distribuídas. Para times menores, dbt com testes customizados e checks em SQL cobrem o necessário sem licença adicional. A ferramenta só traz ganho real se o baseline de comportamento esperado já está documentado.

A pergunta antes de qualquer ferramenta

Antes de avaliar qualquer stack de observabilidade, a pergunta básica é: você já documentou o comportamento esperado dos seus dados? Volume típico por tabela, frequência de atualização, campos obrigatórios, relações entre entidades, valores válidos por coluna. Sem esse baseline, qualquer ferramenta monitora no escuro.

O paradoxo prático: o exercício de documentar o comportamento esperado já revela, sozinho, boa parte dos problemas de qualidade. Times que fazem esse levantamento raramente precisam comprar ferramenta no primeiro momento — descobrem os problemas mais graves durante a documentação e os resolvem sem instrumentação automática. A ferramenta vem depois, quando o volume de dados e pipelines torna a checagem manual inviável.

A maioria dos problemas críticos de qualidade que chegam até usuários é detectável com três checks simples: frescor, volume e nulo em campo obrigatório. O stack avançado importa quando o básico está resolvido e você precisa de cobertura estatística sobre distribuição e linhagem completa. Comece pelo que detecta mais falhas com menos instrumentação; o resto vem naturalmente à medida que a maturidade cresce.

O sinal de que a observabilidade está funcionando não é zero incidentes — é o time detectando antes do usuário. Quando a proporção "detectamos primeiro" supera "usuário descobriu pelo dashboard", a camada está entregando valor. Essa métrica simples é o proxy mais honesto de maturidade de dados em qualquer operação.

Continuar a conversa

Quer discutir esse tema com um sócio?

Diagnóstico inicial sem compromisso. Levamos uma primeira leitura do seu cenário em uma semana e devolvemos um relatório.

Conversar com um sócio