O Verdadeiro Custo de uma Integração Silenciosa

Monitoramento de Integrações
Visibilidade em tempo real nas integrações

Imagine isso: seu ERP parou de sincronizar com o CRM há 6 horas. Ninguém notou. Os vendedores continuaram criando pedidos no CRM, mas nenhum deles chegou ao estoque. Quando o problema foi descoberto, já eram 300 pedidos desincronizados. Agora você tem fila de processamento manual, clientes reclamando de atraso, e um débito técnico que custará dias para resolver.

Esse cenário acontece quando você não monitora integrações. E não estou falando de monitores genéricos que dizem "tá online". Estou falando de observabilidade real: métricas que contam a história do que está acontecendo dentro de cada fluxo de dados.

Métricas Que Realmente Importam

A maioria das empresas monitora o óbvio: disponibilidade (está up ou down?). Mas integrações falham de formas mais sutis. Um sync que roda 1000 vezes por dia e falha 50 delas (5% de erro) parece ter "99.99% de uptime". Na verdade, 50 registros ficaram presos.

Aqui estão as métricas que você precisa:

Throughput Normalizado — Não basta contar quantas integrações rodaram. Conte quantas DEVERIAM ter rodado. Se seu job de sincronização roda a cada 5 minutos e completou só 3 vezes em uma hora (esperava 12), algo está errado. Defina uma baseline: qual é a taxa esperada para seu ambiente?

Latência em Percentis — Sua integração de CRM para ERP leva em média 2 segundos. Parece bom. Mas e quando você olha P95? Se 5% das requisições levam mais de 30 segundos, seus usuários notam. E se P99 é 2 minutos? Você tem gargalos que afetam clientes importantes.

Taxa de Retry — Um sync que tenta de novo 10 vezes é um sintoma. A primeira tentativa falhou. A segunda também. Você está mascarando um problema real com retry logic. Quantas vezes cada requisição tenta novamente? Se a taxa de retry subir de 2% para 20%, é hora de investigar.

Dados Desincronizados — A métrica mais invisível e perigosa. Um job completou com sucesso mas só sincronizou 950 de 1000 registros. Como você sabe? Validação. Sua integração deveria contar quantos registros chegaram no destino versus quanto esperava chegar. A diferença é débito em suspensão.

A Arquitetura que Funciona em Produção

Prometheus é ótimo para laboratório, mas em produção você precisa de um stack que escale com seus fluxos. Comece com métricas simples no seu worker de integração. Quando um job começa, registre o status. Quando termina, publique duração, contagem de registros processados, erros encontrados.

import time
      from dataclasses import dataclass
      from typing import Optional
      @dataclass
      class SyncMetrics:
      job_name: str
      started_at: float
      records_expected: int
      records_processed: int = 0
      records_failed: int = 0
      retries: int = 0
      @property
      def success_rate(self) -> float:
      if self.records_expected == 0:
      return 1.0
      return self.records_processed / self.records_expected
      @property
      def duration_seconds(self) -> float:
      return time.time() - self.started_at
      # Uso real
      metrics = SyncMetrics("crm_to_erp", time.time(), records_expected=1000)
      try:
      # Process records
      for record in get_records():
      if sync_record(record):
      metrics.records_processed += 1
      else:
      metrics.records_failed += 1
      except Exception as e:
      send_alert(f"Sync failed: {e}", severity="critical")
      finally:
      # Registre as métricas
      store_metrics(metrics)

Depois, armazene essas métricas em um time-series database (InfluxDB, Prometheus, ou CloudWatch). Não em logs—logs são para debugar, métricas são para observar padrões.

Alertas Que Fazem Diferença

A maioria dos alertas é barulho. "Taxa de erro > 0.1%" soa 200 vezes por dia. Aqui estão os que realmente importam:

Alerta Silencioso (P0): Uma integração completou mas o success_rate caiu abaixo de 95%. Isso é crítico porque o job parece ter funcionado para você, mas falhou silenciosamente para o negócio. Envie para o Slack com severidade alta.

Alerta de Tendência: Latência P95 subiu 5x em 30 minutos. Não é que esteja lenta agora, mas está piorando rápido. Significa que algo começou. Detecte a tendência, não o valor absoluto.

Alerta de Ausência: O job não rodou nos últimos 15 minutos (esperava 3 execuções). Seu scheduler pode estar morto. Isso é fácil de perder porque não há erro—só silêncio.

Dashboard para o Time de Operações

Seu dashboard deveria responder essas perguntas em 5 segundos: Quantos dados passaram por cada integração na última hora? Qual integração é a mais lenta? Se algo falhou, quando foi e quantos dados foram afetados?

Não coloque 50 gráficos lá. Coloque 4: um por integração. Cada uma em sua própria linha com: status (verde/amarelo/vermelho), throughput, latência P95, e taxa de erro. Se algo ficar vermelho, o link direto vai para os logs filtrados daquela integração.

A Diferença Entre Monitorar e Ter Observabilidade

Monitorar é pedir ao sistema "você está bem?". Observabilidade é o sistema contar para você o que está fazendo. A primeira detecta crashes. A segunda detecta degradação silenciosa, vazamentos de dados, e gargalos que ainda não explodiram.

Comece pequeno: escolha sua integração mais crítica. Implemente as 4 métricas que mencionei. Deixe rodar por uma semana, veja os padrões. Depois replique para as outras. Você descobrirá que alguns "problemas misteriosos" que vivem aparecendo têm raiz em métricas que ninguém estava vendo.

← Voltar ao blog