Início/Blog/Observabilidade de baixo custo
Engenharia Prática de Observabilidade

Observabilidade de baixo custo para PMEs latino-americanas

Pequenas empresas raramente precisam de uma plataforma enterprise no primeiro dia. Precisam saber se o cliente consegue comprar, se integrações e jobs rodaram, se dados estão frescos, se erros aumentaram e quem responde. Observabilidade eficiente começa por essas decisões.

Defina o budget pelo risco do negócio

Varejo, clínica, logística, escritório contábil ou SaaS regional pode operar com poucas VMs, bancos gerenciados, functions, APIs, ERP, planilhas e cron. As falhas caras costumam ser silenciosas: nota que não sincroniza, webhook rejeitado, estoque stale, backup quebrado ou relatório com dados antigos.

Liste jornadas, tempo máximo para detectar e recuperar, owner e canal de resposta. Depois instrumente o menor conjunto capaz de provar sucesso ou localizar a fronteira que falhou.

CriticidadeReceita, pagamentos, atendimento, compliance, folha, logística, relatórios e recuperação.
VolumeRequests, bytes de log, séries, spans, eventos, ambientes, regiões e retenção.
Capacidade humanaOwner, horário, escalonamento, idioma, runbook, suporte e limites fora do expediente.
Vida da evidênciaJanela quente, histórico operacional, auditoria, incident hold, backup e exclusão.

Use stack mínimo com contratos abertos

OpenTelemetry oferece APIs, SDKs, convenções e Collector neutros. Prometheus atende métricas e alertas. Loki ou outro store indexa labels de baixa cardinalidade, mantendo contexto dinâmico em campos. Tempo ou equivalente guarda traces amostrados. Dashboard e roteador de alertas ficam acima.

O primeiro deploy pode ser gerenciado, single-node ou híbrido. Mantenha OTLP, Prometheus/OpenMetrics, W3C Trace Context, logs JSON e schemas documentados nas fronteiras para trocar storage sem reescrever aplicações.

Desenhe o caminho dos sinais

Stack mínimo de observabilidade
01 InstrumentarEmita sinais limitadosLogs, métricas, trace context, eventos de job, marcadores de deploy e health.
02 ColetarUse um gatewayCollector recebe, enriquece, redige, agrupa, amostra, repete e roteia.
03 ControlarAplique policy de custoRemova ruído, limite atributos, normalize rotas, amostre traces e defina retenção.
04 ArmazenarUse backends adequadosTSDB, logs comprimidos, traces, eventos de status e arquivo barato.
05 DetectarCombine visão interna e externaGolden signals, freshness, dependências, certificado e jornadas sintéticas.
06 AlertarRoteie condições acionáveisOwner, impacto, evidência, dashboard, runbook, silêncio, escalonamento e recovery.
07 InvestigarCorrelacione antes de guardar tudoServiço, ambiente, deploy, trace, job, integração e chave sanitizada.
08 RevisarMeça valor e gastoIncidentes, falso alerta, tempo poupado, custo, cardinalidade, dashboards e retenção.

Métricas respondem perguntas operacionais estáveis

Comece com tráfego, erro, latência e saturação. Adicione pedidos concluídos, pagamentos, falhas de integração, idade de fila, registros sincronizados, idade do backup e freshness de relatório. Métricas servem para agregados, não IDs de clientes ou payloads.

Cada combinação de labels vira série. Não use usuário, email, pedido, trace, query string ou exception message. Prefira serviço, ambiente, operação, rota normalizada, classe de resultado, dependência, fila e região limitada.

Logs precisam de estrutura e fronteira de privacidade

Use JSON com timestamp, severidade, serviço, ambiente, versão, operação, outcome, duração, trace/span, request, job, integração e código de erro seguro. Identificadores dinâmicos ficam em campos pesquisáveis, não labels indexados.

Não registre tokens, senhas, cartão, documento integral, saúde ou payload completo por padrão. Redija na origem e no Collector. Dê retenção curta a logs verbosos e longa apenas a eventos com finalidade operacional, jurídica ou de auditoria.

Jobs agendados exigem monitoramento próprio

Scheduler disparado não prova trabalho concluído. Emita started, heartbeat, completed, failed, skipped, timed out e partial. Registre agenda esperada, início real, duração, processados, rejeitados, watermark, output e próxima execução.

Use dead-man check: o monitor espera heartbeat ou conclusão até o prazo. É essencial para sync de ERP, folha, backup, certificado, nota e relatório diário.

Checks sintéticos provam a visão externa

Métricas internas podem ficar verdes enquanto DNS, TLS, CDN, rota, autenticação ou terceiro quebram. Rode probes de fora da rede produtiva. Verifique status, latência, certificado, schema e fluxo read-only.

Em caminhos críticos, use transação controlada com dados de teste e compensação. Não polua finanças, estoque, mensagens ou analytics.

Amostre traces pelo valor diagnóstico

Guardar todo request custa caro. Retenha erros, traces lentos e pequena amostra normal. Tail sampling decide após o trace completo, mas consome memória no Collector. Head sampling é simples e barato, mas perde falhas raras.

Propague contexto mesmo sem retenção. Logs e eventos ainda podem correlacionar. Proteja atributos sensíveis e limite span events.

Alertas precisam de owner e ação

Interrompa uma pessoa apenas quando ação rápida é necessária. Outros sinais viram ticket, digest ou dashboard. Prefira sintomas: checkout falhando, confirmação de pagamento atrasada, job stale, error budget queimando ou fila envelhecendo.

Todo alerta inclui serviço, owner, severidade, jornada, início, valor, razão do limite, deploy, dashboard, runbook e condição de recuperação. Teste o próprio canal de notificação.

Retenção segue a meia-vida diagnóstica

Sinais recentes e detalhados valem mais durante debug. Depois, deployments e dependências mudam. Mantenha janela quente curta, agregue métricas, arquive logs selecionados em object storage e exclua o que não tem finalidade.

Retenção deve ser configuração versionada com owner e data de revisão. Guardar tudo para sempre aumenta custo e risco.

Use uma matriz de sinal e custo

SinalMínimo útilDriver de custoControleReter mais quando
Métricas de serviçoTráfego, erro, histograma de latência, saturação e versão.Séries, intervalo, buckets e retenção.Labels baixos, recording rules e intervalo maior em baixo risco.Capacidade, SLO e sazonalidade exigem histórico.
Métricas de negócioPedidos, pagamentos, sync, fila e freshness.Dimensões e labels por entidade.Agregar por operação/resultado; detalhar via logs.Há necessidade operacional ou de auditoria.
LogsWarnings/errors estruturados e infos amostrados.Bytes, índice, queries e retenção.Nível, rate limit, dedupe, redaction, labels baixos e archive.Incidente, segurança ou compliance justificam.
TracesErros, lentos e pequena amostra normal.Spans, atributos, eventos e índice.Sampling, limites e normalização.Latência distribuída ou dependência precisa ser analisada.
Eventos de jobInício, conclusão, outcome, duração, watermark e deadline.Baixo; volume de histórico e alerta.Um resumo por tentativa e erros limitados.Financeiro, backup ou regulação exigem evidência.
Checks sintéticosDNS/TLS/HTTP e uma jornada segura.Frequência, locais e browser minutes.Frequência por risco e browser apenas onde necessário.Comportamento regional ou de terceiros precisa comparação.

Comece com três dashboards

Overview de serviço: golden signals, alertas, deploys, dependências e erros. Operações de negócio: pedidos, pagamentos, integrações, freshness, backlog e exceções. Custo de telemetria: ingest por sinal, séries, logs, sampling, retenção, queries e cardinalidade.

Dashboard sem owner ou uso recorrente deve sair.

Considere restrições regionais

Use idioma local nos alertas e runbooks, mas mantenha campos estáveis. Considere equipe pequena, on-call limitado, conectividade de filial, distância de regiões cloud, câmbio na fatura e dependência de ERP, fiscal, pagamentos e mensageria locais.

Sistemas de filial devem bufferizar telemetria limitada e priorizar health, segurança e evidência transacional. Monitore também Collector, exporters, filas e storage.

O que eu construiria

Eu começaria com logs estruturados, métricas Prometheus, checks externos de uptime/TLS, heartbeats de jobs, roteador simples e três dashboards. Depois adicionaria Collector para centralizar enrichment, redaction, batching, sampling e routing.

Tracing começaria nas jornadas críticas e integrações. Todo mês eu revisaria falsos alertas, dados sem uso, cardinalidade, retenção, cobertura e custo por serviço.

O princípio de design

Observabilidade barata não é enxergar menos. É enxergar com disciplina: capturar o que muda uma decisão, preservar contexto suficiente, alertar o owner correto e parar de pagar para guardar ruído.