Ativar a captura de erros em produção

Gere o DSN, envie source maps no CI e veja o primeiro erro agrupado na lista.

Ao fim, os erros da app em produção chegam ao Mira agrupados, com a stack no código original.

Pré-requisitos

  • A app já integrada, como em Preparar uma app para QA.
  • Um ambiente production no projeto, com a origem da app em produção cadastrada. Veja Ambientes e origens.
  • Acesso ao CI da app e ao gerenciador de segredos dele.
  • O nível de código do projeto em Só mapeamento (padrão) ou Completo. Com Sem código, o envio de maps é recusado.

Em produção o widget não existe. Só a captura de erros roda.

Passos

Gerar a chave de ingestão

Quem faz: admin.

Em Configurações do projeto, Erros, escolha o ambiente production no seletor, dê um nome à chave (web) e clique em Gerar chave. Copie o DSN.

Chave de ingestão gerada com o DSN e o botão de copiar
A chave gerada e o botão que copia o DSN.

Resultado: a tabela mostra a chave com o DSN. Ela vale só para esse ambiente e só escreve ocorrências. Antes de armazenar dados de usuário, confira o nível de dados do ambiente em Níveis de dados. O padrão é Mínimo.

Criar a credencial dos source maps

Quem faz: admin.

Em Administração do Mira, Serviços de API, crie um serviço com o projeto da app e ative só Permitir envio de source maps. Em Chaves, use Emitir chave e salve o mira_svc_... no gerenciador de segredos do CI.

Resultado: o segredo aparece uma vez. Se perder, emita outro. Veja Tokens.

Configurar o bridge para produção

Quem faz: dev.

Use o bootstrap.ts da aba Produção de Integrar uma app, com VITE_MIRA_DSN, VITE_VERSION, VITE_BUILD_SHA e VITE_BUILD_TIME no .env.production. Libere o host do Mira em connect-src, se a app tem CSP.

Resultado: a release do build tem a forma 1.4.0+abc1234.

Enviar os source maps no build

Quem faz: dev.

Instale o @mira/sourcemaps, adicione miraSourceMaps() ao vite.config.ts com a mesma release e o mesmo buildTime, e defina MIRA_URL, MIRA_PROJECT_ID e MIRA_SOURCEMAPS_TOKEN no passo de build do CI. Rode pnpm exec mira-sourcemaps check dist antes de publicar. O código está em Integrar uma app.

Resultado: o log do build mostra o envio dos maps e o dist fica sem arquivos .map.

Publicar e provocar um erro

Quem faz: dev.

Publique o build só depois do envio. Abra a app em produção e dispare uma falha conhecida, como um throw numa ação de teste.

Resultado: o navegador envia a ocorrência ao Mira.

Ver o erro no dashboard

Quem faz: admin ou dev.

Abra Erros no projeto e filtre pelo ambiente production.

Resultado: um erro novo aparece na lista, com a contagem de ocorrências e de usuários afetados.

Lista de erros com um erro novo da app de teste
O erro enviado pela app, agrupado na lista.

Conferir que deu certo

Abra o erro. A stack deve mostrar arquivo, linha e função do código-fonte, com a posição no bundle embaixo, e o contexto deve trazer a release do build. Clique em Criar report para transformar o erro num report Bug na triagem. Veja o que cada bloco mostra em Detalhe do erro.

Problemas comuns

SintomaCausa provável
Nenhum erro chegaA origem da app não está cadastrada no ambiente, o DSN é de outro ambiente ou o CSP bloqueia o host do Mira. Um DSN malformado gera aviso com o prefixo [Mira] no console
A stack chega minificadaOs maps não foram enviados para essa release, ou a release do build difere da do mira.init()
O mesmo erro aparece duas vezes, um minificadoOcorrências chegaram antes dos maps. Publique só depois do envio
O build do CI falha no envioConfira MIRA_URL com https, MIRA_PROJECT_ID e o token. Sem token, o plugin só remove os maps
Um erro resolvido não reabreO buildTime não foi enviado. Sem ele, a regressão fica desativada

Próximos passos

  • Status do erro, para resolver, ignorar e acompanhar regressões.
  • Webhooks, para receber error.created e error.spike fora do dashboard.

Nesta página