Observabilidade de API: O Que É e Como Implementar
O que a observabilidade de API realmente significa
Na teoria de controle, um sistema é observável quando você consegue inferir seu estado interno a partir de suas saídas externas. Em software, isso significa que a API deve emitir dados suficientes para responder perguntas como:
- Qual endpoint ficou lento?
- Qual região foi afetada?
- Qual versão da API gerou mais erros?
- Qual serviço interno adicionou latência?
- Qual requisição específica falhou e por quê?
A diferença prática é esta: se um cliente relata que o checkout ficou lento às 2h da manhã para usuários de uma região específica, você não deveria precisar fazer deploy de novo para adicionar console.log. A telemetria já coletada deve permitir investigar o incidente.
Observabilidade vs monitoramento
Monitoramento e observabilidade se complementam, mas não são a mesma coisa. O monitoramento acompanha sinais conhecidos e dispara alertas quando eles passam de um limite definido. Exemplo:
- Taxa de erro acima de 2%
- Latência p99 acima de 500 ms
- CPU acima de 80%
- Endpoint
/checkoutretornando 5xx
A observabilidade permite fazer perguntas novas durante a investigação. Exemplo:
- A latência aumentou apenas para
POST /v2/checkout? - O problema acontece só na versão 2026-05 da API?
- Há correlação com uma região específica?
- Qual chamada downstream consumiu mais tempo?
- Quais logs compartilham o mesmo
trace_id?
Em resumo: o monitoramento diz que algo está errado; a observabilidade ajuda a encontrar a causa.
| Aspecto | Monitoramento | Observabilidade |
|---|---|---|
| Pergunta respondida | Um sinal conhecido está fora da faixa? | Por que o sistema está se comportando assim? |
| Definido quando | Antes do incidente | Durante a investigação |
| Melhor para | Falhas conhecidas e violações de SLO | Problemas novos ou inesperados |
| Saída | Alertas e dashboards | Telemetria consultável de alta cardinalidade |
Os três pilares: métricas, logs e traces
A observabilidade normalmente combina três tipos de telemetria: métricas, logs e traces. O OpenTelemetry formaliza esses dados como sinais de telemetria, junto com outros recursos como baggage, eventos e perfis em desenvolvimento.
1. Métricas
Métricas são medições numéricas agregadas ao longo do tempo. Para APIs, comece com:
- Requisições por segundo
- Taxa de erro
- Latência p50, p95 e p99
- Throughput por endpoint
- Disponibilidade por rota crítica
Evite depender apenas de médias. Uma média de 120 ms pode esconder um p99 de 4 segundos, que é o que usuários reais podem estar sentindo.
Exemplo de métricas úteis por endpoint:
http_requests_total{method="POST", path="/v2/checkout", status="200"}
http_requests_total{method="POST", path="/v2/checkout", status="503"}
http_request_duration_ms_bucket{method="POST", path="/v2/checkout"}
Métricas são baratas de armazenar e rápidas de consultar. Use-as para dashboards, alertas e SLOs.
2. Logs
Logs registram eventos discretos com timestamp. Para observabilidade, prefira logs estruturados em JSON em vez de texto livre.
Exemplo:
{
"timestamp": "2026-06-22T02:14:09Z",
"level": "error",
"method": "POST",
"path": "/v2/checkout",
"status": 503,
"duration_ms": 4812,
"trace_id": "8f3a1c9d2e7b4a16",
"user_region": "ap-southeast-1",
"api_version": "2026-05"
}
Campos recomendados para logs de API:
timestampleveltrace_idrequest_idmethodpathstatusduration_msuser_regionapi_versionclient_idoutenant_id, se aplicável
O campo mais importante para correlacionar dados é o trace_id. Ele conecta logs individuais ao fluxo completo da requisição.
3. Traces
Um trace distribuído acompanha uma requisição enquanto ela passa por diferentes serviços. Cada etapa é registrada como um span.
Exemplo de fluxo:
POST /v2/checkout
├── API Gateway: 20 ms
├── Auth Service: 35 ms
├── Checkout Service: 120 ms
├── Payment Service: 3900 ms
└── Notification Service: 40 ms
Nesse exemplo, a causa da lentidão está no serviço de pagamento. Sem traces, você provavelmente começaria a investigar serviço por serviço.
Os três pilares funcionam melhor juntos:
- Uma métrica dispara o alerta: p99 subiu.
- Um trace mostra onde o tempo foi gasto.
- Os logs filtrados por
trace_idexplicam o erro específico.
Use RED como ponto de partida
Você não precisa instrumentar tudo no primeiro dia. Para APIs, comece com o método RED:
- Rate: quantas requisições por segundo a API processa.
- Errors: quantas requisições falham.
- Duration: quanto tempo as requisições levam.
| Métrica | Definição |
|---|---|
| Rate | Requisições por segundo |
| Errors | % de respostas 5xx e 4xx inesperadas |
| Duration | Latência p95 e p99 por endpoint |
RED funciona bem para APIs, gateways e service meshes porque é centrado em requisições. Para infraestrutura, complemente com USE: utilização, saturação, erros.
Uma abordagem prática:
- API → RED
- Servidor → USE
- Banco → RED + USE, dependendo do caso
Transforme sinais em metas com SLIs e SLOs
Coletar telemetria é só o começo. Para tornar os dados acionáveis, defina SLIs e SLOs.
Um SLI é uma métrica que representa a qualidade do serviço. Exemplos:
- SLI de disponibilidade = requisições bem-sucedidas / total de requisições
- SLI de latência = % de requisições abaixo de 300 ms
- SLI de erro = requisições 5xx / total de requisições
Um SLO é a meta para esse indicador. Exemplos:
- 99,9% das requisições devem retornar sem erro em 28 dias.
- 95% das requisições de checkout devem concluir em menos de 300 ms.
- 99% das chamadas de autenticação devem concluir em menos de 200 ms.
Sem SLO, um gráfico de latência é apenas uma linha. Com SLO, ele vira um critério objetivo para decidir quando priorizar confiabilidade em vez de novas funcionalidades.
Instrumente com OpenTelemetry
Você pode dividir a stack de observabilidade em duas partes:
- Geração de telemetria: o que seu código emite.
- Backend de análise: onde você armazena e consulta os dados.
Para geração, OpenTelemetry é o padrão mais importante. Ele é um projeto da CNCF, surgiu da fusão entre OpenTracing e OpenCensus e é independente de fornecedor.
Com OpenTelemetry, você pode:
- Gerar traces, métricas e logs
- Padronizar nomes e atributos com convenções semânticas
- Exportar dados via OTLP
- Usar auto-instrumentação quando disponível
- Enviar telemetria para diferentes backends
- Reduzir dependência de um fornecedor específico
Para armazenamento e análise, você pode usar ferramentas como Prometheus com Grafana para métricas, ou plataformas como Datadog e Honeycomb para traces, métricas e logs.
A principal vantagem do OpenTelemetry é instrumentar uma vez e trocar o backend depois sem reescrever toda a instrumentação.
Inclua testes e verificações sintéticas
Observabilidade não deve começar apenas em produção. Testes também geram sinais úteis.
Shift left: testes de contrato em CI
Antes do deploy, testes de contrato verificam se a API ainda corresponde à especificação. Isso ajuda a detectar mudanças incompatíveis antes que cheguem aos usuários.
Cada execução de CI gera dados úteis:
- commit
- branch
- ambiente
- cenário executado
- resultado
- duração
- timestamp
O Apidog CLI permite executar cenários de teste em pipelines. Ele é construído em Node.js e requer Node v16 ou superior.
Instalação:
npm install -g apidog-cli
# verificar instalação
node -v && apidog -v
Executar um cenário de teste:
apidog run --access-token $APIDOG_ACCESS_TOKEN -t 637132 -e 358171 -r html,cli
Onde:
-t= ID do cenário de teste-e= ID do ambiente-r= formatos de relatório: cli, html, json ou junit
Para executar com dados de iteração em CSV ou JSON:
apidog run --access-token $APIDOG_ACCESS_TOKEN -t 637132 -e 358171 -r html,cli -d ./data.csv
Para enviar um resumo do relatório para a nuvem Apidog:
apidog run --access-token $APIDOG_ACCESS_TOKEN -t 637132 -e 358171 -r html,cli --upload-report
Monitoramento sintético em produção
Monitoramento sintético executa requisições roteirizadas contra sua API em produção, em intervalos definidos, como um usuário real faria.
Comece simples:
- Chamar um endpoint de saúde
- Validar status code
- Medir latência
- Verificar payload mínimo
- Registrar falhas
Uma verificação de saúde da API é o ponto inicial. O monitoramento sintético expande isso para fluxos de várias etapas, como login, criação de recurso e checkout.
Essas verificações também são sinais de observabilidade. Uma execução sintética falhando às 02:00 com duração de 4 segundos deve ser correlacionável com logs, métricas e traces.
Gerando sinais recorrentes com Tarefas Agendadas do Apidog
O Apidog pode gerar sinais sintéticos recorrentes por meio de Tarefas Agendadas. O recurso executa automaticamente cenários de teste em horários definidos, captura resultados e ajuda em testes de regressão agendados.
Você encontra o recurso no módulo de Testes, em Tarefas Agendadas. Ao configurar uma tarefa, defina:
- Cenários de Teste: um ou mais cenários para executar.
- Modo de Execução: por exemplo, todo domingo às 23h ou a cada 6 horas.
- Notificação: após cada execução ou apenas em caso de falha.
Pontos importantes:
- Tarefas Agendadas estão em Beta.
- O recurso requer um Runner auto-hospedado configurado.
- As opções atuais de "Executar Em" listam Runner auto-hospedado.
- Apidog Cloud aparece como "em breve".
- O número de execuções depende do plano de assinatura.
O benefício é fechar o ciclo: você projeta e testa a API, depois executa os mesmos cenários periodicamente para gerar sinais de aprovação, falha e latência.
Um caminho prático para tornar sua API observável
Se você está começando do zero, siga esta ordem:
Padronize logs estruturados - Use JSON. Inclua
trace_id,request_id, método, rota, status e duração. Evite logs de texto livre para eventos importantes.Adicione correlação por requisição - Gere ou propague um
trace_id. Inclua o mesmo ID em logs, traces e respostas de erro quando fizer sentido.Instrumente com OpenTelemetry - Comece pelos endpoints críticos. Exporte traces e métricas via OTLP. Mantenha atributos consistentes, como
http.method,http.routeehttp.status_code.Monitore RED - Rate, Errors, Duration com p95 e p99.
Defina SLIs e SLOs - Disponibilidade, latência, taxa de erro. Janelas de medição, como 7, 14 ou 28 dias.
Adicione testes de contrato ao CI - Execute cenários em cada pull request ou antes do deploy. Exporte relatórios em junit ou json quando precisar integrar com outras ferramentas.
Execute verificações sintéticas - Comece com health checks. Evolua para fluxos críticos. Agende execuções recorrentes.
Correlacione tudo - Métrica aponta o sintoma. Trace mostra o caminho. Log explica o evento. Teste sintético confirma impacto externo.
Você não precisa implementar tudo de uma vez. Só migrar de logs de texto livre para logs JSON com trace_id já melhora bastante sua capacidade de investigação.
Checklist rápido
Use este checklist para revisar sua API:
- [ ] Logs são estruturados em JSON
- [ ] Cada requisição tem
trace_idourequest_id - [ ] Erros incluem contexto suficiente para debug
- [ ] Latência é medida por percentis, não apenas média
- [ ] Métricas RED existem por endpoint crítico
- [ ] Há SLOs definidos para disponibilidade e latência
- [ ] Traces mostram chamadas entre serviços
- [ ] Testes de contrato rodam em CI
- [ ] Verificações sintéticas rodam em produção
- [ ] Alertas apontam para sintomas acionáveis
Perguntas frequentes
O que é observabilidade de API?
Observabilidade de API é a capacidade de entender o estado interno de uma API a partir da telemetria que ela emite: métricas, logs e traces. Uma API observável permite investigar por que ela se comporta de certa maneira sem adicionar nova instrumentação primeiro.
Observabilidade de API e monitoramento são a mesma coisa?
Não. Monitoramento acompanha sinais predefinidos e alerta quando eles cruzam limites. Observabilidade permite fazer perguntas novas durante a investigação. O monitoramento informa que algo está errado; a observabilidade ajuda a descobrir por quê.
Quais são os três pilares da observabilidade?
Os três pilares são métricas, logs e traces. Métricas mostram números agregados, logs registram eventos discretos e traces acompanham uma requisição entre serviços.
Como tornar uma API observável?
Comece com logs estruturados e trace_id em cada requisição. Depois, adicione OpenTelemetry, métricas RED, SLIs, SLOs, testes de contrato em CI e verificações sintéticas em produção.
OpenTelemetry é obrigatório?
Não. Observabilidade é uma propriedade do sistema, não uma ferramenta específica. Mas OpenTelemetry é um padrão CNCF independente de fornecedor e facilita instrumentar uma vez para enviar dados a diferentes backends, como Prometheus, Datadog ou Honeycomb.
Comments
No comments yet. Start the discussion.