Ir para o conteúdo
Monitoramento

O erro não fica num painel à parte. Ele vira demanda

Uma linha no seu sistema e o erro passa a chegar aqui: agrupado, limpo de dado pessoal, com o cliente e a pessoa que o sofreram. Ele nasce como tarefa no Projetos e, quando esse cliente abre chamado, o erro já está anexado à conversa.

  • Adicional sobre qualquer plano, a partir de R$ 29/mês
  • 9 plataformas, um contrato só
  • O mesmo erro em 300 clientes é um grupo só
O que muda

Captura de erro é fácil. O difícil é o que vem depois

O bFocus já tem os projetos, os chamados e o cadastro dos seus clientes. O erro cai dentro disso, não ao lado disso.

Grupo novo vira tarefa

Um erro inédito cadastra sozinho uma tarefa de bug, em rascunho, no projeto que você escolheu no agente — com onde estourou, o rastro e os números. A prioridade vem sugerida pela gravidade e pelo número de clientes atingidos; quem decide é a equipe.

O chamado já chega com o erro

Chamado aberto por quem teve erro nos últimos 30 minutos — ou por alguém do mesmo cliente nas últimas 2 horas — ganha uma nota interna ligando o chamado ao erro, à demanda e à provável causa. O atendente não precisa perguntar "o que apareceu na tela?".

Com nome de cliente

Cada grupo mostra quantos clientes e quantas pessoas foram atingidos, e quem são. Só entra aí quem chegou com identidade assinada pelo seu servidor — a mesma assinatura do widget —, então não há vínculo adivinhado.

Como funciona

Do erro no navegador à tarefa concluída

  1. 1

    Uma linha no seu sistema

    Instale o pacote da sua plataforma e chame `init` com a chave do agente (`bf_mon_…`), a versão e o ambiente. O pacote encadeia o tratador de erro que já existe em vez de substituí-lo: o seu sistema quebra exatamente como quebraria sem ele.

  2. 2

    Chega limpo

    A query string é cortada antes de sair, e senha, token, cookie, CPF e cartão viram "[filtrado]". O pacote não manda corpo de requisição nem cabeçalho de autorização — e o servidor limpa tudo de novo na entrada.

  3. 3

    Agrupa por assinatura

    A impressão digital do erro não leva cliente nem usuário: o mesmo erro em 300 clientes é um grupo só, com as ocorrências somando. O grupo guarda a quebra por cliente, por versão e por dia, e até 20 amostras completas, mais a primeira.

  4. 4

    Vira trabalho, e sai de cena

    A mesma falha de novo não abre outra tarefa: comenta nos marcos (10, 100, 1.000 ocorrências; a cada 5 clientes novos). Concluir a demanda resolve o grupo, e um evento de versão mais nova que a corrigida reabre como regressão.

A regressão depende de uma versão no formato X.Y.Z no envio: sem ela, o bFocus não separa "voltou" de "ainda não atualizou", e não reabre a demanda por engano.

Investigação

A IA lê o seu código antes de alguém abrir o editor

Com um repositório ligado ao agente, a investigação não fica no rastro: ela vai ao código da versão em que o erro aconteceu e volta com causa provável e linhas apontadas, dentro da própria demanda.

  • GitHub, GitLab, Bitbucket, Azure DevOps ou Gitea — o agente guarda o repositório e o mapeamento do caminho do rastro para o caminho do repositório
  • Lê a janela de código em volta de cada linha do rastro, na tag da versão com erro (sem tag, no branch padrão)
  • Correlações que não dependem de IA nenhuma: o commit que mexeu naquele arquivo, o pull request, a tarefa daquele PR e a nota de versão em que o erro apareceu
  • A IA roda na chave da sua empresa, com os mesmos tetos em reais do resto do bFocus — não há margem nossa em cima de token
  • Ela lê código e mensagem de commit como dado não confiável: texto plantado num comentário não vira ordem para a IA
  • Devolve resumo, causa provável, linhas, sugestão de correção, confiança — e o que ela não conseguiu verificar
  • Sem IA configurada, ou com o teto batido, as correlações e o trecho de código entram na demanda do mesmo jeito

A chave é sua

O bFocus não fornece IA e não cobra por investigação. Você cadastra a chave do seu provedor, escolhe o modelo e define o teto em reais; sem chave, o módulo funciona igual, só sem a análise.

Como a IA funciona aqui
O ciclo fecha

Quem sofreu o erro descobre que você corrigiu

Este é o pedaço do caminho que, com uma ferramenta de erro à parte, ninguém percorre: a correção volta para a pessoa que levou o erro na tela — e para o chamado que ela abriu.

  • Concluir a demanda resolve o grupo, e a primeira versão publicada depois disso fica registrada como a versão em que a correção saiu
  • Evento de uma versão mais nova que a corrigida reabre a demanda como regressão: "voltou na X". Quem ainda não atualizou e continua mandando o erro velho não reabre nada
  • Com a correção numa versão, a tela oferece avisar as pessoas afetadas e a equipe decide — o aviso nunca sai sozinho
  • O e-mail sai com a marca da sua empresa, uma vez por grupo, para cada pessoa identificada que teve aquele erro, respeitando o horário de quem recebe
  • Cada chamado ligado ao erro ganha uma nota interna: corrigido na versão X, avisamos N pessoas, responda ao cliente e resolva
  • O envio fica no histórico, com quem mandou e quando. A conta de demonstração não manda nada

E a novidade, dentro do seu sistema

Publicada a nota daquela versão, o selo de novidades acende no widget do cliente — e o relatório mostra, cliente a cliente, quem leu.

Ver as novidades no app do cliente
Sinal de vida

Saber que está de pé, mesmo sem erro nenhum

Painel vazio pode ser um dia bom ou um agente que ninguém instalou. O bFocus separa os dois casos.

Cada agente dá sinal

No servidor, a cada 5 minutos; no navegador e no app, no máximo a cada 30 minutos por aparelho. Silêncio longo demais marca o agente como silencioso — 15 minutos no servidor, 24 horas no front e no app, porque front só fala quando alguém abre.

Checagem de porta aberta

Opcional: você dá uma URL e o bFocus pinga esperando 2xx ou 3xx, guardando a latência e o erro de quando cai. Serve para sistema web e API, ao lado da captura de erro.

Aviso na mudança

O time é avisado quando o estado muda — vivo, silencioso, fora do ar —, não a cada verificação. Alerta que chega o tempo todo ninguém lê.

Controle

O agente é seu: você decide o que entra

Um agente por parte monitorada (web, API, app), sempre ligado a um produto. A configuração mora no agente, não no produto.

Amostragem

De 0 a 100% dos erros enviados. Sistema de volume alto não precisa mandar tudo para o grupo contar certo.

Cota diária

Teto de eventos por dia no agente. Rajada de um sistema não consome o mês inteiro.

Regras de ignorar

Expressões por mensagem, URL ou tipo do erro. Ruído conhecido (extensão de navegador, robô) não chega a virar grupo.

Origens e ambientes

A chave de envio é pública, como a chave publicável do widget: no navegador, só as origens que você listou são aceitas, e você escolhe quais ambientes entram.

Projeto de destino

Onde a demanda nasce. Sem projeto definido, ela fica no backlog sem projeto, esperando alguém puxar.

Juntar grupos

Dois grupos que são o mesmo problema viram um, com os números somados e a demanda preservada.

Onde instalar

Nove plataformas, um contrato só

Mesma rota, mesmo formato de evento e a mesma versão em todos. Nenhum deles tem dependência de runtime, e nenhum faz chamada de rede ao ser importado.

Navegador

npm install @bfocus/monitor — ou uma tag <script> do nosso CDN, sem build nenhum. É o mesmo núcleo que já roda dentro do widget de chamados.

Node 20+

npm install @bfocus/monitor-node, com tratador para Express, plugin para Fastify e um envelope para Next e serverless.

React Native

npm install @bfocus/monitor-react-native, encadeando o tratador global que o app já tem, mais um ErrorBoundary.

Python 3.9+

pip install bfocus-monitor, com middleware para FastAPI e Starlette, Django e Flask.

PHP 8.1+

composer require bfocus/monitor, com registro para Laravel 11 e middleware PSR-15 para Slim, Mezzio e Laminas.

.NET

dotnet add package Bfocus.Monitor.AspNetCore, com middleware de uma linha; o pacote base cobre netstandard2.0 e net8.0.

Java 11+

br.com.bernisoftware:bfocus-monitor no Maven Central, com filtro para Servlet e Spring.

Go 1.21+

go get github.com/bernisoftware/bfocus-monitor-go — Recover no defer, middleware de http.Handler e captura de erro na mão.

Flutter / Dart 3+

flutter pub add bfocus_monitor, cobrindo erro de widget, erro da plataforma e a zona do runApp.

Falha do monitor nunca derruba o seu sistema: a fila é limitada, o envio é em segundo plano e todo erro nosso é engolido. Chave recusada (401 ou 403) desliga o envio até o próximo init — não martelamos a nossa própria API.

Quanto custa

Sozinho, ou somando ao seu plano

Dá para contratar só o Monitoramento, sem nenhum outro módulo — é a porta de entrada mais barata que temos. Quem já assina um plano paga menos: ali a base do contrato já está paga, e o Monitoramento entra como adicional na mesma fatura.

R$ 39
por mês sozinho, Essencial — 50 mil eventos por mês
R$ 111
por mês sozinho, Profissional — 500 mil eventos por mês
R$ 279
por mês sozinho, Escala — 5 milhões de eventos por mês
+ R$ 23
por mês somando a um plano que você já tem, a partir do Essencial

Valores por mês, em reais, no plano anual; o botão mensal/anual da página de preços vale aqui também. Evento é cada erro que o seu sistema envia e o agente aceita — o que a amostragem e as regras de ignorar descartam não conta. A cota de eventos é a mesma nas duas formas: a diferença de preço é a base do contrato, não o módulo.

Perguntas sobre o Monitoramento

O erro leva dado do meu usuário junto?

Não. O pacote corta a query string antes de enviar e não manda corpo de requisição, cookie nem cabeçalho de autorização; senha, token, CPF, CNPJ e cartão viram "[filtrado]". O servidor limpa de novo na entrada, então nem um pacote antigo nem um envio feito à mão passam por cima disso. O que liga o erro a uma pessoa é a identidade assinada pelo seu servidor, não um dado dentro da mensagem.

Preciso contratar o Atendimento ou o Comercial?

Não precisa contratar nada além do Monitoramento: ele existe como plano de um módulo só. Se você já assina algum plano, ele sai mais barato como adicional sobre o que você tem — na faixa do seu plano, na mesma fatura. E começar sozinho não fecha porta nenhuma: ao contratar outro módulo depois, o Monitoramento continua com você e passa a ser o adicional, com o valor aparecendo antes de você confirmar a troca.

O monitor pode derrubar o meu sistema?

O pacote encadeia o tratador de erro que já existe em vez de substituí-lo, não faz chamada de rede ao ser importado, mantém uma fila pequena em memória e engole qualquer falha própria. Se a chave for recusada, ele desliga o envio até a próxima inicialização em vez de insistir.

O mesmo erro em muitos clientes vira muita tarefa?

Vira uma. A impressão digital não leva cliente nem usuário, então o mesmo erro em 300 clientes é um grupo só, com as ocorrências somando e a quebra por cliente, por versão e por dia. A tarefa só ganha comentário nos marcos — 10, 100, 1.000 ocorrências e a cada 5 clientes novos.

O cliente recebe e-mail automático quando eu corrijo o erro?

Automático, não. Quando a correção sai numa versão, a tela oferece avisar as pessoas afetadas e alguém da equipe decide. Aí sai um e-mail com a marca da sua empresa para cada pessoa identificada que teve aquele erro, uma vez por grupo, mais uma nota interna em cada chamado ligado ao erro. O envio fica registrado no histórico, e a conta de demonstração não manda nada.

Por quanto tempo o erro fica guardado?

O grupo e os números ficam. As amostras completas — até 20 por grupo, mais a primeira que chegou — são apagadas depois de 30 dias, e um grupo ignorado sem nenhum evento há 90 dias sai de vez.

A investigação da IA é cobrada?

Por nós, não. Ela roda na chave do seu provedor, dentro dos tetos em reais que você definiu. Sem chave cadastrada, ou com o teto batido, a demanda ainda recebe o trecho de código e as correlações com commit, pull request e nota de versão.

Ponha o monitor para trabalhar

Uma linha no seu sistema e o primeiro erro já chega agrupado, com o cliente que o sofreu e uma demanda esperando decisão.