Isso tornaria as coisas mais fáceis, especialmente para aplicativos em que os nomes das classes não revelam muito.
Algo na linha de:
div > button.btn.btn-lg.btn-primary "Purchase"
Se o elemento contiver muito texto, ele poderá ser truncado.
Então, isso é algo que eu gostaria de fazer, mas estou preocupado em aumentar nossa função de serialização DOM a ponto de começar a adicionar uma sobrecarga perceptível aos manipuladores de cliques.
Mas, vou explorar.
Uma alternativa fácil poderia ser apenas fazer
target = elem.outerHTML;
que produzirá o elemento clicado exatamente como está. Você perderá a estrutura da árvore - mas na minha experiência pessoal isso não ajuda tanto quanto ver o elemento completo e real que estou acostumado a ver no meu código o tempo todo e, portanto, posso reconhecer mais rapidamente.
Isso resolveria https://github.com/getsentry/raven-js/issues/576 também
@soroushhakami – começamos com outerHTML
primeiro, mas o depreciamos para este método utilitário.
A razão pela qual não escolhemos outerHTML
(como @mitsuhiko comentou):
outerHTML
pode incluir dados temporários ruidosos, por exemplodata-reactid
longas (no React 0.14 e anteriores)title
gerados dinamicamente destinados a dicas de ferramentasaddEventListener
está configuradoBasicamente, outerHTML
parece bom quando você mostra um monte de exemplos hipotéticos onde parece bom, mas nossa experiência de executá-lo ao vivo por algumas semanas foi que era insuficiente.
Ah entendi, faz sentido, obrigado pela explicação! 👍
Adicionei etiquetas de identificação a todos os meus botões. Surpreso que eles não aparecem nas migalhas de pão. Mesmo que fosse uma tag personalizada, eu ficaria feliz com isso. Mas a etiqueta de identificação parece ser ideal devido à sua singularidade.
@nblasgen – se você puder fornecer um caso de teste com falha, ficaria feliz em ver o que está acontecendo.
Mas agora o código deve capturar IDs , e há um teste que verifica isso .
+1 para mostrar IDs ou uma tag personalizada como data-sentry-id="Some text here"
Vou fechar este por enquanto, pois estamos cientes dessa peça que falta e estaremos revisitando como isso está funcionando na próxima versão principal.
Ref: https://github.com/getsentry/raven-js/issues/783
Ref: https://github.com/getsentry/raven-js/issues/576
Só queria adicionar - estou usando react & styled-components para que meus nomes de classe sejam gerados automaticamente, seria ótimo ter mais contexto (sem ter que manualmente captureBreadcrumb
):
@kamilogorek alguma atualização sobre isso?
Existe a possibilidade de ajustar o clique em "mensagem"?
Talvez mais dados possam ser passados para breadcrumbCallback
para que as pessoas escolham o que precisam sem enviá-lo para o sentry por padrão? Talvez até um elemento de dom inteiro?
@TuxujPes será possível na próxima versão principal, mas não nesta, pois requer algumas alterações de API pública que só podemos introduzir em versões principais.
@kamilogorek isso soa muito bem. Alguma estimativa sobre a data de lançamento principal?
Em algum lugar perto do final do terceiro trimestre (desculpe-me o tempo de resposta tão longo, estava de férias).
+1 para mostrar IDs ou uma tag personalizada como
data-sentry-id="Some text here"
Eles poderiam analisar se existe essa informação e levá-la. Se existir, deixe os seletores com um botão para mais informações.
@hiagodotme @TuxujPes @adamreisnz este recurso já está disponível no novo SDK - https://docs.sentry.io/learn/filtering/?platform=javascript#before -breadcrumb
FYI: apenas não esqueça que usar o novo SDK traz +50Kb para o tamanho do pacote #1552
@ 1999 adiciona 12,7kB quando comparado ao raven-js, não use tamanhos não compactados para comparação, pois não é relevante.
Além disso, a v5 (https://github.com/getsentry/sentry-javascript/pull/1919) será <15kB, então você não terá que se preocupar com o aumento da carga útil.
@kamilogorek Tenho um pouco de medo de PRs com mais de 200 arquivos de alterações, isso parece mais um SDK completamente novo do que uma nova versão. Além disso, qual é a data de lançamento ETA dele?
Comentários muito úteis
Só queria adicionar - estou usando react & styled-components para que meus nomes de classe sejam gerados automaticamente, seria ótimo ter mais contexto (sem ter que manualmente
captureBreadcrumb
):