Documentação

Rastreamento de erros

Capture as exceções que a sua aplicação lança, agrupadas em problemas, em todos os planos, inclusive o gratuito. Ele fala o protocolo do Sentry, então você mantém o SDK que já tem e muda uma linha de configuração.

Como configurar

Crie um projeto no painel e copie o DSN dele. Depois aponte o seu SDK existente para ele:

Sentry.init({
  dsn: "https://<key>@vitrinaengine.com/ingest/<project>",
});

Essa é a integração inteira. Qualquer SDK do Sentry funciona — JavaScript, Python, Ruby, Go, PHP, .NET — porque é o protocolo de rede deles, e não algo parecido com ele.

A chave de um DSN não é um segredo. Um SDK de navegador a envia no bundle da página, então ela identifica um projeto e não autoriza mais nada. Não construa nada que presuma que ela é privada.

Como os erros viram problemas

Eventos que são a mesma falha são agrupados em um único problema. O agrupamento usa o tipo da exceção, a mensagem e o formato da pilha — nunca os números de linha, porque adicionar um import no topo de um arquivo dividiria um problema em dois e faria um bug antigo parecer novo.

Um problema que você resolveu e que volta a acontecer é reaberto como uma regressão e alerta você, em vez de acrescentar em silêncio mais uma ocorrência a um problema fechado.

Source maps

Envie os maps de uma versão e uma pilha minificada de navegador passa a ser legível. Envie-os a partir do seu build com a API — veja a referência da API.

Os maps são casados primeiro por debug_id e depois por versão mais nome do arquivo. Eles são aplicados quando você lê um problema, não quando o evento chega, o que tem uma consequência útil: um map enviado depois dos erros ainda é aplicado a eles. Essa costuma ser a ordem em que as coisas acontecem.

Erros anexados a um incidente

Quando o monitoramento abre um incidente, ele reúne os erros que a sua aplicação lançou enquanto aquela queda estava sendo confirmada e anexa um resumo ao próprio incidente.

Vale saber por que isso é mais útil do que procurar depois: a janela deixa de existir no momento em que o incidente passa a existir, e os eventos estão sujeitos a uma retenção que expira muito antes dele. Então o resumo é capturado no momento em que isso é possível, e guardado junto ao incidente depois.

Em uma conta de agência o resumo é limitado ao espaço de trabalho, para que o incidente de um cliente não leve as stack traces de outro dentro de um e-mail.

Registros dos seus servidores e da sua rede

A partir do Business, um projeto também aceita os registros que suas máquinas já escrevem: syslog do Linux e de equipamentos Cisco e Juniper, o Log de Eventos do Windows e o log unificado do macOS. Aponte um remetente que você já utiliza para o endpoint de registros do seu projeto, que fica na página do projeto ao lado do DSN. Não há nada a instalar nas máquinas.

Apenas erros são armazenados. Severidades de syslog abaixo de err, níveis do Windows abaixo de Error e tudo o que o log do macOS chama de Default ou mais silencioso são descartados antes de serem contados ou cobrados — assim um host saudável não custa nada, e os avisos pelos quais ninguém seria acionado não enchem sua lista de ocorrências.

Os registros são agrupados como as exceções: pelo programa que os emitiu e pela mensagem, não pelo host. Uma implantação defeituosa em vinte servidores web é uma ocorrência vista vinte vezes, não vinte ocorrências. Quando um equipamento nomeia as próprias mensagens, agrupamos por esse nome — uma interface fora do ar é uma ocorrência, seja qual for a porta.

Como uma linha de registro se repete muito mais do que uma exceção, guardamos um exemplo de cada ocorrência por hora e contamos o restante. A contagem de ocorrências e o gráfico são exatos; o que você não recebe é uma cópia separada da centésima linha idêntica.

Cotas

Cada plano tem uma franquia mensal de eventos — 5.000 no Free, 50.000 no Starter, 250.000 no Pro, 1.000.000 no Business. A ingestão também tem limite de taxa por projeto, que é o caso que realmente acontece: uma exceção dentro de um laço de repetição pode, de outro modo, consumir um mês de cota em minutos.

Eventos individuais são guardados pelo tempo de retenção de erros do seu plano — sete dias no Free, trinta no Starter, sessenta no Pro, noventa no Business. Os problemas construídos a partir deles sobrevivem aos eventos: as contagens e a primeira e a última vez em que foram vistos permanecem enquanto durar a retenção de histórico do seu plano.

O que não fazemos

Sem repetição de sessão, sem tracing de desempenho, sem profiling. Isto é rastreamento de exceções que por acaso fica ao lado do seu monitoramento de disponibilidade, para que “o site está no ar e lançando quinhentos erros por minuto” seja uma tela só, e não dois produtos.