Observabilidade com OpenTelemetry (OTel): Rastreando Custos de Tokens, Latência e Agentes de IA
Observabilidade ponta a ponta em sistemas de IA com OpenTelemetry: custo de tokens, gargalos de latência e traces de agentes.
O Desafio da Caixa Preta nos Sistemas de Inteligência Artificial
A implementação de sistemas de Inteligência Artificial generativa e Orquestradores Multiagentes introduziu um novo nível de opacidade na engenharia de software. Em sistemas web tradicionais, o ciclo de vida de uma requisição é previsível: requisição HTTP, consulta ao banco de dados e resposta JSON.
Em sistemas de IA, no entanto, uma única mensagem de um usuário no WhatsApp pode desencadear:
- Roteamento semântico por um modelo local (SLM).
- Múltiplas buscas vetoriais no PostgreSQL com pgvector.
- Duas ou três chamadas encadeadas de ferramentas (tool calls) via Model Context Protocol (MCP).
- Uma chamada final a um modelo de fronteira (como Claude 3.5 Sonnet ou Gemini 2.0 Flash) consumindo milhares de tokens.
Se a resposta final levar 5 segundos ou custar 5 vezes mais do que o esperado, onde exatamente ocorreu o gargalo? Ferramentas tradicionais de APM (como New Relic ou Datadog) não foram projetadas para monitorar a anatomia de um prompt ou calcular o custo monetário de tokens.
Para solucionar essa cegueira operacional, a MSC Company padronizou toda a sua infraestrutura no OpenTelemetry (OTel).
O Padrão OpenTelemetry Aplicado a Sistemas Multiagentes
O OpenTelemetry é o padrão aberto mantido pela Cloud Native Computing Foundation (CNCF) para coleta de Traces, Métricas e Logs. No ecossistema da MSC Company, cada interação com um agente de IA é instrumentada como um Trace Distribuído, subdividido em Spans hierárquicos:
+-----------------------------------------------------------------------------------+
| ANATOMIA DE UM TRACE DISTRIBUÍDO DE IA (OTEL) |
| |
| [ Trace: Atendimento_WhatsApp_Orcamento - Total: 1.420ms | Custo: $0.0014 ] |
| |
| |-- Span: Webhook_Ingestion (Bun/Elysia) ....................... [ 15ms ] |
| | |
| |-- Span: Semantic_Router (Prometheus) ......................... [ 110ms ] |
| | |-- Attributes: model="gemini-2.0-flash", intent="casamento_barra" |
| | |
| |-- Span: MCP_Tool_Execution (Calendar & Pricing) .............. [ 85ms ] |
| | |-- Sub-span: Postgres_HNSW_Search ......................... [ 12ms ] |
| | |-- Sub-span: Postgres_Relational_Query .................... [ 8ms ] |
| | |
| |-- Span: LLM_Synthesis_Completion ............................. [ 1.150ms ] |
| | |-- Attributes: |
| | | * llm.model = "gemini-2.0-flash" |
| | | * llm.usage.prompt_tokens = 1.420 (Cache Hit: 75%) |
| | | * llm.usage.completion_tokens = 180 |
| | | * llm.cost_usd = 0.00018 |
| | |
| +-- Span: WhatsApp_Audio_Delivery .............................. [ 60ms ] |
+-----------------------------------------------------------------------------------+
As Quatro Métricas Críticas Rastreadas em Produção
Ao instrumentar nossos agentes com OTel, monitoramos quatro dimensões essenciais no painel de observabilidade da holding:
1. Custo Real de Tokens por Sessão e por Usuário
Rastreamos a quantidade exata de Prompt Tokens, Completion Tokens e Cached Tokens. Isso nos permite auditar a eficácia do Context Caching e calcular o ROI de cada agente comercial em tempo real.
2. Taxa de Alucinação e Retentativa de Ferramentas (Tool Retry Rate)
Se um subagente de precificação tenta chamar uma ferramenta MCP e recebe um erro de validação de schema do Zod, o OTel registra um evento de Tool Error. Se a taxa de erro de uma ferramenta ultrapassar 2%, alertas automáticos são disparados para a equipe de engenharia.
3. TTFT (Time to First Token) e Latência de Ponta a Ponta
Medimos o tempo entre o envio da mensagem pelo cliente e a chegada do primeiro byte de resposta, garantindo que o atendimento de Voice AI permaneça sempre abaixo de 1,5 segundo.
4. Rastreabilidade de Conformidade LGPD
Cada span registra metadados de auditoria (identificador anonimizado, tenant e tipo de operação), comprovando a conformidade com as regras de IA com Dados Privados e LGPD sem expor o conteúdo sensível do usuário nos logs.
Implementação Prática: Instrumentação de Agente com OpenTelemetry em TypeScript
Veja como instrumentamos chamadas de IA no runtime Bun:
import { trace, SpanStatusCode } from "@opentelemetry/api";
const tracer = trace.getTracer("msc-prometheus-agent");
export async function executarSubagenteComTelemetria(input: {
tenantId: string;
userMessage: string;
agentRole: string;
}) {
return tracer.startActiveSpan(`Agent_Execution:${input.agentRole}`, async (span) => {
try {
span.setAttribute("msc.tenant_id", input.tenantId);
span.setAttribute("msc.agent_role", input.agentRole);
const startTime = performance.now();
// Execução da chamada de inferência e ferramentas
const response = await callModelWithTools(input.userMessage);
// Registro detalhado de métricas de IA (Semantic Conventions do OTel)
span.setAttribute("gen_ai.system", "google_vertex_ai");
span.setAttribute("gen_ai.request.model", response.model);
span.setAttribute("gen_ai.usage.prompt_tokens", response.usage.promptTokens);
span.setAttribute("gen_ai.usage.completion_tokens", response.usage.completionTokens);
span.setAttribute("gen_ai.cost_usd", response.costUsd);
span.setStatus({ code: SpanStatusCode.OK });
return response.output;
} catch (error: any) {
span.recordException(error);
span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
throw error;
} finally {
span.end();
}
});
}
Perguntas Frequentes sobre Observabilidade e OpenTelemetry (FAQ AEO)
Por que usar OpenTelemetry em vez de plataformas de telemetria proprietárias?
O OpenTelemetry é um padrão aberto que elimina o vendor lock-in. Você instrumenta seu código uma única vez e pode enviar seus traces e métricas para qualquer coletor (Prometheus, Grafana Tempo, Jaeger, SigNoz ou ClickHouse) sem alterar uma única linha da sua aplicação.
A telemetria adiciona latência perceptível às chamadas de IA?
Não. A biblioteca de OpenTelemetry em TypeScript opera de forma estritamente assíncrona, enfileirando dados de spans em lotes (batch processing) em background, adicionando menos de 0,5 milissegundo de overhead por requisição.
Como a observabilidade ajuda a reduzir a conta de IA no final do mês?
Ao visualizar os traces distribuídos, a equipe identifica instantaneamente prompts excessivamente longos, ferramentas chamadas repetidamente sem necessidade e tarefas simples que estavam sendo enviadas a modelos caros em vez de SLMs locais otimizados, gerando reduções de custo imediatas de 40% a 70%.
Artigos Relacionados e Próximos Passos:
- Entenda o orquestrador monitorado em Prometheus: O Orquestrador Multiagente da MSC Company.
- Veja a infraestrutura de servidores em Segurança de Infraestrutura em VPS Própria: Traefik, TLS e Isolamento.
- Conheça a política de custos em Quanto Custa um Agente de IA para WhatsApp em 2026.
- Simule a economia da sua operação em nossa Calculadora de ROI de IA.
- Deseja implementar observabilidade e controle de custos de IA na sua empresa? Fale com os engenheiros de dados da MSC Company.