01O que é monitorado
| O que | De onde vem | Para que serve |
|---|---|---|
| Logs | linhas de log do serviço (OpenTelemetry, @evobits/node ou arquivo lido pela sonda) | busca por texto, filtros, "Ao vivo", padrões e contagens |
| Erros | exceções nos traces e logs com exception.* | erros agrupados por tipo, mensagem e ponto do código, com estado (novo, aberto, resolvido, regressão, ignorado) |
| Traces e APM | spans de requisições, chamadas a banco, cache e outros serviços | requisições por minuto, taxa de erro, p50, p95 e p99 por rota, cascata de cada trace |
| Padrões de log | linhas parecidas agrupadas (números, ids, IPs e e-mails viram coringas) | ver o que mais aparece e o que mudou |
| Web Vitals | página no navegador, pelo SDK Web do OpenTelemetry | carga completa, LCP, INP, CLS e erros de JavaScript por página e por versão |
| Consultas de banco | Postgres, PgBouncer, Redis e MongoDB, lidos pela sonda com usuário só de leitura | consultas mais pesadas, conexões, cache, filas do pool, memória |
| Telefonia | Asterisk pelo AMI, só leitura, pela sonda | troncos, ramais, canais, filas, jitter e perda |
02Como funciona
- 1Você cria o serviço em Aplicações > Serviços > Novo serviço (nome, ambiente e tipo: backend, navegador, app ou worker). A tela mostra um token uma vez:
eva_prd_...,eva_hml_...oueva_dev_...conforme o ambiente; serviço do tipo navegador recebe um token públicoevn_.... - 2O serviço manda os dados para
https://otlp.evobits.com.br(OTLP por HTTP, protobuf ou JSON, com ou sem gzip) com o cabeçalhoAuthorization: Bearer <token>. Rede sem saída para a internet manda para a sonda remota, que guarda em disco e repassa. - 3O token decide o serviço e o ambiente. O
service.nameque o serviço manda fica gravado como atributo, mas nunca muda o destino. - 4Ao chegar, os dados passam, nesta ordem, pela máscara obrigatória, pelos totais por minuto (contados antes de qualquer amostragem, por isso taxa de erro e percentis são exatos), pela amostragem dos traces e pela gravação.
- 5Os dados ficam num banco só de aplicações, separado do resto do evobits, na nossa infraestrutura.
03Onde aparece
| Tela | O que mostra |
|---|---|
| Aplicações > Serviços | lista com estado, requisições, taxa de erro, p95, erros novos e o uso do mês; subtítulo com linguagem, framework e instâncias |
| Serviço > Visão geral | requisições, erros, p50, p95 e p99 no tempo (1 h, 6 h, 24 h, 7 d), marcas de deploy (versão nova), rotas que mais pesam, erros recentes, dependências |
| Serviço > Rotas | cada rota (GET /pedidos/:id), com volume, erro e latência; daqui nasce o sensor de rota |
| Serviço > Páginas | só no tipo navegador: carga e Web Vitals por página, por versão e por navegador |
| Serviço > Erros e Aplicações > Erros | grupos de erro, contagem, primeira e última vez, versão, estado; a página do erro mostra a pilha (resolvida pelo source map quando houver), o trace, os atributos comuns e a causa provável pela IA |
| Serviço > Traces e Aplicações > Traces | lista de traces por rota, duração, erro e janela; o trace abre em cascata com os logs do mesmo trace |
| Serviço > Dependências | bancos, caches e serviços chamados, com volume e latência, e "Quem chama" |
| Serviço > Instâncias | cada processo ou máquina, com versão, runtime e último dado; instância parada sai da lista depois de 7 dias |
| Serviço > Configuração | amostragem, retenção, máscara (com "Testar"), regras de extração, origens (navegador) e tokens |
| Aplicações > Logs | Explorador de logs: busca por texto, facetas (serviço, nível, host, atributos), histograma, "Ao vivo", linhas em volta, ligação ao trace e ao erro, aba Padrões |
| Aplicações > Mapa | quem chama quem, montado pelos traces |
| Dispositivo de banco > Consultas | consultas normalizadas do Postgres, pool do PgBouncer, Redis, profiler do MongoDB |
| Dispositivo Asterisk | Troncos, Ramais e Filas, e o painel de troncos e ramais |
| Sonda > Receptores | OTLP local e arquivos de log da sonda coletora |
| Dashboards | grupo "Aplicações" no catálogo: resumo do serviço, erros, contagem de logs, top rotas, mapa de serviços, Web Vitals |
04Alertas
| Condição | Como nasce | Observação |
|---|---|---|
| Rota: latência (p50, p95 ou p99) ou taxa de erro | aba Rotas, "Criar sensor", ou regra de alerta | avaliada a cada minuto pelos totais; alerta quando os últimos N minutos (padrão 5) passam do limiar e têm o volume mínimo (padrão 20 requisições por minuto); abaixo do volume fica "sem dado" |
| Contagem de log | Explorador de logs, "Criar sensor deste filtro", ou regra de alerta | conta as linhas do filtro salvo por janela (1 a 60 min, padrão 5), com limiar por N janelas seguidas; pode somar o syslog |
| Erro novo | regra padrão "Erro novo em produção" | nasce desligada; padrão: 3 ocorrências em 10 min, serviços de produção |
| Regressão de erro | regra padrão "Regressão de erro" | nasce desligada; regressão é um erro resolvido que volta numa versão mais nova (na mesma versão ele só reabre) |
| Banco e Asterisk | sensores comuns do dispositivo | limiares de partida, por exemplo acerto de cache abaixo de 95 %, clientes esperando no pool, jitter e perda por tronco |
Os sensores de aplicação ficam num dispositivo do tipo Aplicação, criado no grupo "Aplicações" quando o primeiro sensor do serviço nasce. Ele não conta no limite de dispositivos do plano.
05IA
Com o módulo de IA ligado e aceito na empresa:
- Causa provável do erro. Gerada sozinha para erro novo e regressão em produção, e no clique para os outros. Vai ao modelo: tipo e mensagem do erro (já mascarados), função, arquivo e linha dos quadros da pilha, contagem por versão, atributos comuns e até 6 linhas de log dos mesmos traces (mascaradas, até 300 caracteres cada).
- Diagnóstico do alerta. Para alerta de sensor de rota ou de contagem de log, o diagnóstico recebe do mesmo intervalo: padrões de log com contagem, grupos de erro, rotas e dependências lentas e as versões que entraram (deploys). Só dado agregado e mascarado.
- Nunca vai ao modelo: o código em volta da pilha, o identificador do usuário, linha de log crua no diagnóstico de alerta, pilha inteira, segredo ou dado que a máscara trocou.
- O gasto respeita o teto mensal da IA da empresa.
06Limites e privacidade
Cota. Cada plano tem uma cota em GB gravados por mês (o valor da sua empresa aparece em Plano e cobrança). Conta o que é gravado depois da máscara, do nível mínimo de log e da amostragem; GB = 10^9 bytes; o mês segue o fuso de Fortaleza. Em 80 % aparece uma faixa em todas as telas de Aplicações, e os proprietários recebem e-mail e aviso no sino. Em 100 % a ingestão de Aplicações para até o mês virar: o evobits responde com sucesso parcial e o cabeçalho X-Evobits-Corte, o @evobits/node para de enviar por 10 minutos e o seu serviço segue rodando normal. Rede, sensores, alertas e o resto do evobits não sentem. Os sensores de rota e de contagem ficam "sem dado" e não alertam durante o corte. Para mais GB, use "Pedir mais GB".
Retenção.
| Dado | Escolha por serviço | Teto | Padrão |
|---|---|---|---|
| Logs | 1, 3, 7, 15 ou 30 dias | 30 | 15 |
| Traces | 1, 3, 7 ou 15 dias | 15 | 7 |
| Erros | fixo | 90 | 90 |
| Totais por minuto (gráficos de até 24 h) | fixo | 3 dias | |
| Totais por hora (gráficos longos) | fixo | 400 dias |
O dado sai até 1 dia depois do prazo (a limpeza apaga o dia inteiro de uma vez).
Amostragem. Traces com erro: 100 %, sempre. Traces lentos (acima de 2 s, ajustável): guardados sempre. Traces sem erro: 10 % por padrão, de 1 % a 100 %. A decisão é tomada no fim do trace (o evobits espera 15 s depois do último span), então nenhum erro se perde. Logs não são amostrados; só o nível mínimo vale (padrão info). Os gráficos de volume, erro e latência contam 100 % do que chegou, antes da amostragem.
Máscara obrigatória. Roda antes de gravar, em tudo o que chega: corpo do log (campo a campo quando é JSON), atributos, nome do span, mensagem e pilha de exceção e URLs. Não desliga. O que ela troca nunca chega ao banco e não tem como ser recuperado.
| O que | Vira |
|---|---|
| Telefone brasileiro com DDD, com ou sem +55 | [telefone] |
| CPF e CNPJ com pontuação; 11 ou 14 dígitos só quando o dígito verificador confere | [cpf] |
[e-mail] | |
Bearer e Basic, JWT, chaves com prefixo conhecido (eva_, evk_, sk_, ghp_, AKIA... e afins), campos token, api_key, authorization, cookie | [token] |
Campos password, senha, secret, pass, pwd e parecidos; senha= em URL e query; usuario:senha@ em URL de conexão | [senha] |
Campos de corpo de mensagem: body, mensagem, texto, content, http.request.body, http.response.body | [corpo] |
Valor com codificação de URL ou de HTML (%40, @) é conferido decodificado. Nunca são mexidos: trace_id, span_id, UUID, marca de tempo, IP, versão, porta. Não estão na lista fixa: nome de pessoa, endereço, CEP e endereço IP. Para eles, crie uma regra extra na Configuração do serviço: por nome de atributo (por exemplo cliente.placa vira [placa]) ou por padrão (expressão regular, até 200 caracteres; padrão lento ou perigoso é recusado no "Salvar"). Regra nova vale do momento em que é salva; o que já foi gravado não muda. O cartão "O que a máscara trocou" mostra só a contagem por categoria.
Logs ficam legíveis. Para a busca por texto funcionar, os logs ficam legíveis no banco de aplicações, sempre depois da máscara.
Isolamento entre empresas. O banco de aplicações guarda só identificadores, sem nome de empresa, serviço ou pessoa. A aplicação lê por visões e funções que filtram pela empresa da sessão; ela não tem acesso direto às tabelas. O token resolve a empresa e o serviço; um service.name de outra empresa não muda nada. Membro restrito por grupo vê só os serviços do grupo.
LGPD. Desligar o módulo para a ingestão; o que foi gravado segue até vencer ou ser excluído. Excluir um serviço revoga os tokens na hora e apaga os dados dele em lote. A exclusão da conta apaga também o banco de aplicações, antes do resto. A exportação de Dados e privacidade inclui Aplicações: o cadastro dos serviços (sem tokens), os grupos de erro, os totais por hora do período inteiro e os dados brutos dos últimos 7 dias, em arquivos NDJSON comprimidos por dia e por serviço. As cópias de segurança guardam dado apagado por até 7 dias.
07Como ligar
- 1A evobits liga o módulo no plano da empresa.
- 2Um proprietário aceita em Aplicações (a tela de aceite lista o que é guardado, a máscara, a cota e a retenção).
- 3Crie o primeiro serviço em Aplicações > Serviços > Novo serviço e siga o guia da linguagem:
- Node.js:
@evobits/node(uma linha); - Python, Java, Go, .NET e PHP: OpenTelemetry oficial;
- Página web: SDK Web do OpenTelemetry com Web Vitals;
- Rede sem internet: sonda coletora;
- Banco e Asterisk: pela página do dispositivo, com usuário só de leitura.
- Node.js:
08Como conferir
- Na tela do serviço novo, o cartão Primeiro dado muda sozinho para "está mandando dados", com a instância, a versão e a contagem de traces, logs e erros.
- Em Aplicações > Logs, filtre pelo serviço e ligue "Ao vivo".
- Em Plano e cobrança, a linha Aplicações mostra o uso do mês.
09Problemas comuns
| Sintoma | Causa provável |
|---|---|
| Nada chega e o SDK registra 401 | token errado, revogado ou sem Bearer na frente |
| 403 | módulo desligado, sem aceite de um proprietário, ou empresa suspensa; no navegador, origem fora da lista |
| 413 | pedido acima de 8 MB (1 MB no navegador) ou acima de 32 MB descomprimido |
| 429 | mais de 20 pedidos por segundo por token (rajada de 100); espere o Retry-After |
| Chega log, mas não aparece trace sem erro | amostragem de 10 %: é o esperado; suba a taxa na Configuração para testar |
Rota aparece só como GET | o framework não informou http.route (ver o guia da linguagem) |
Instância com nome estranho, como processo-1234 | o serviço não manda service.instance.id nem host.name; o evobits cria um nome sozinho. Mande service.instance.id para ter nomes estáveis |
| Corte da cota | faixa vermelha em Aplicações; dados descartados até o dia 1 do mês seguinte |
10Texto para IA
Para pedir a um assistente de código (Claude Code ou afins) que explique o módulo e aponte o guia certo para o seu projeto. Troque os marcadores entre < >; o token fica só na variável EVOBITS_TOKEN.
# Tarefa: entender o módulo Aplicações do evobits antes de instrumentar um serviço
## Objetivo
Explicar para mim (e usar como base para os próximos passos) o que o evobits faz com logs, erros e traces do
serviço <nome do serviço> no ambiente <ambiente>. Não altere nenhum arquivo nesta tarefa: só leia o projeto e responda.
## Contexto do evobits
- O serviço manda dados pelo OpenTelemetry (OTLP/HTTP, protobuf ou JSON, gzip aceito) para https://otlp.evobits.com.br,
caminhos /v1/traces e /v1/logs, com o cabeçalho `Authorization: Bearer <token>`. Métricas OTLP são recusadas.
- O token do serviço (eva_prd_, eva_hml_ ou eva_dev_) decide o serviço e o ambiente. Ele fica SÓ na variável de
ambiente EVOBITS_TOKEN do processo. Nunca escreva o token em arquivo versionado, em log ou na resposta.
- O evobits mascara antes de gravar: telefone, CPF e CNPJ, e-mail, tokens e chaves, senhas, campos de corpo de
mensagem. Nome de pessoa, endereço, CEP e IP não são mascarados (regra extra no painel).
- Traces com erro e lentos (acima de 2 s) são sempre guardados; os outros, 10 % por padrão. Logs não são amostrados.
- A rota que aparece no painel vem do atributo `http.route` do span do servidor.
- A instância vem de `service.instance.id`, `host.name` ou de um nome que o evobits cria; a versão, de `service.version`.
- Cota mensal em GB gravados; ao estourar, o evobits responde 200 com `X-Evobits-Corte` e descarta até o mês virar.
## Passos
1. Identifique a linguagem, o framework web, o gerenciador de pacotes e o arquivo de entrada do serviço.
2. Diga qual guia do evobits usar: Node.js (`@evobits/node`), Python, Java, Go, .NET ou PHP (OpenTelemetry oficial),
página web (SDK Web) ou sonda coletora (rede sem internet).
3. Liste o que seria instrumentado automaticamente e o que precisaria de código (rota, logs, exceções).
4. Aponte no código do projeto qualquer log que grave nome de pessoa, endereço, CEP ou IP, para eu criar uma regra extra.
## Regras
- Não altere nada; esta tarefa é só de leitura.
- Nunca peça nem mostre o token; refira-se a ele como EVOBITS_TOKEN.
## Como saber que deu certo
Você entregou: o guia certo, a lista do que é automático e do que não é, e os pontos de log com dado pessoal fora da
lista fixa da máscara.