Sentry-javascript: 이동 경둜 ui.click의 μš”μ†Œμ— ν…μŠ€νŠΈ μΆ”κ°€

에 λ§Œλ“  2016λ…„ 05μ›” 12일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: getsentry/sentry-javascript

특히 클래슀 이름이 많이 ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” μ•±μ˜ 경우 μž‘μ—…μ΄ 더 μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

라인을 따라 λ­”κ°€ :

 div > button.btn.btn-lg.btn-primary "Purchase"

μš”μ†Œμ— λ§Žμ€ ν…μŠ€νŠΈκ°€ ν¬ν•¨λœ 경우 잘릴 수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μΆ”κ°€ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. react & styled-componentsλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ 클래슀 이름이 μžλ™μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€. 더 λ§Žμ€ μ»¨ν…μŠ€νŠΈκ°€ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€(μˆ˜λ™μœΌλ‘œ captureBreadcrumb ν•˜μ§€ μ•Šκ³ λ„).

screen shot 2018-07-02 at 4 36 14 pm

λͺ¨λ“  18 λŒ“κΈ€

이것은 λ‚΄κ°€ ν•˜κ³  싢은 μΌμ΄μ§€λ§Œ 클릭 ν•Έλ“€λŸ¬μ— λˆˆμ— λ„λŠ” μ˜€λ²„ν—€λ“œλ₯Ό μΆ”κ°€ν•˜κΈ° μ‹œμž‘ν•˜λŠ” μ§€μ κΉŒμ§€ DOM 직렬화 κΈ°λŠ₯을 λΆ€ν’€λ¦¬λŠ” 것에 λŒ€ν•΄ μš°λ €ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” 탐ꡬ할 것이닀.

ν•œ 가지 μ‰¬μš΄ λŒ€μ•ˆμ€

target = elem.outerHTML;

ν΄λ¦­ν•œ μš”μ†Œλ₯Ό μžˆλŠ” κ·ΈλŒ€λ‘œ 좜λ ₯ν•©λ‹ˆλ‹€. 당신은 트리 ꡬ쑰λ₯Ό λŠμŠ¨ν•˜κ²Œ ν•  κ²ƒμž…λ‹ˆλ‹€ - κ·ΈλŸ¬λ‚˜ λ‚΄ 개인적인 κ²½ν—˜μ— λ”°λ₯΄λ©΄ λ‚΄κ°€ 항상 λ‚΄ μ½”λ“œμ—μ„œ λ³΄λŠ” 데 μ΅μˆ™ν•˜κ³  λ”°λΌμ„œ 더 빨리 인식할 수 μžˆλŠ” μ™„μ „ν•œ μ‹€μ œ μš”μ†Œλ₯Ό λ³΄λŠ” κ²ƒλ§ŒνΌ 도움이 λ˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

그러면 https://github.com/getsentry/raven-js/issues/576 도 ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@soroushhakami – λ¨Όμ € outerHTML μ‹œμž‘ν–ˆμ§€λ§Œ 이 μœ ν‹Έλ¦¬ν‹° λ©”μ„œλ“œμ—μ„œλŠ” 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ .

outerHTML ν•˜μ§€ μ•Šμ€ 이유( @mitsuhikoκ°€ μ–ΈκΈ‰ν•œ λŒ€λ‘œ):

  • CSS 선택기 ν˜•μ‹μ€ 더 적은 문자둜 더 λ§Žμ€ 정보λ₯Ό ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • outerHTML μ—λŠ” μ‹œλ„λŸ¬μš΄ μž„μ‹œ 데이터가 포함될 수 μžˆμŠ΅λ‹ˆλ‹€. 예:

    • κΈ΄ data-reactid λ¬Έμžμ—΄(React 0.14 및 이전 버전)

    • 툴팁용으둜 λ™μ μœΌλ‘œ μƒμ„±λœ title 속성

  • addEventListener λŒ€μƒμ΄ κ΅¬μ„±λ˜λŠ” 방식에 따라 λ§Žμ€ 빈 μš”μ†Œκ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.
  • μš°λ¦¬λŠ” 쑰상 정보λ₯Ό ν†΅ν•΄μ„œλ§Œ λ§₯λ½ν™”λ˜λŠ” λ™μΌν•œ 클래슀/μ½˜ν…μΈ λ₯Ό 가진 λ²„νŠΌμ„ κ°€μ‘ŒμŠ΅λ‹ˆλ‹€.

기본적으둜 outerHTML λŠ” λ©‹μ§€κ²Œ λ³΄μ΄λŠ” κ°€μƒμ˜ 예λ₯Ό μ—¬λŸ¬ 개 보여쀄 λ•Œ λ©‹μ Έ λ³΄μ΄μ§€λ§Œ λͺ‡ μ£Ό λ™μ•ˆ 라이브둜 μ‹€ν–‰ν•œ κ²½ν—˜μœΌλ‘œλŠ” μΆ©λΆ„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ•„ μ•Œκ² μŠ΅λ‹ˆλ‹€, 이해가 λ©λ‹ˆλ‹€, μ„€λͺ… κ°μ‚¬ν•©λ‹ˆλ‹€! πŸ‘

λͺ¨λ“  λ²„νŠΌμ— ID νƒœκ·Έλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 이동 κ²½λ‘œμ— ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” 것에 λ†€λžμŠ΅λ‹ˆλ‹€. μ»€μŠ€ν…€ νƒœκ·ΈλΌκ³  해도 λ§Œμ‘±ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ID νƒœκ·ΈλŠ” κ³ μœ μ„± λ•Œλ¬Έμ— 이상적인 것 κ°™μŠ΅λ‹ˆλ‹€.

@nblasgen – μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈ 사둀λ₯Ό μ œκ³΅ν•  수 μžˆλ‹€λ©΄ μ–΄λ–€ 일인지 μ‚΄νŽ΄λ³΄κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ§€κΈˆμ€ μ½”λ“œκ°€ IDλ₯Ό μΊ‘μ²˜ν•΄μ•Ό ν•˜λ©° 이λ₯Ό 확인 ν•˜λŠ” ν…ŒμŠ€νŠΈ

ID ν‘œμ‹œμ— λŒ€ν•œ +1 λ˜λŠ” data-sentry-id="Some text here" 와 같은 μ‚¬μš©μž μ •μ˜ νƒœκ·Έ

이 λˆ„λ½λœ 뢀뢄을 μ•Œκ³  있기 λ•Œλ¬Έμ— μ§€κΈˆμ€ 이 뢀뢄을 λ‹«κ³  λ‹€μŒ μ£Όμš” λ²„μ „μ—μ„œ 이 κΈ°λŠ₯이 μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ λ‹€μ‹œ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ°Έμ‘°: https://github.com/getsentry/raven-js/issues/783
μ°Έμ‘°: https://github.com/getsentry/raven-js/issues/576

μΆ”κ°€ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. react & styled-componentsλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ 클래슀 이름이 μžλ™μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€. 더 λ§Žμ€ μ»¨ν…μŠ€νŠΈκ°€ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€(μˆ˜λ™μœΌλ‘œ captureBreadcrumb ν•˜μ§€ μ•Šκ³ λ„).

screen shot 2018-07-02 at 4 36 14 pm

@kamilogorek 이에 λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

클릭 "λ©”μ‹œμ§€"λ₯Ό λ―Έμ„Έ μ‘°μ •ν•  κ°€λŠ₯성이 μžˆμŠ΅λ‹ˆκΉŒ?

μ‚¬λžŒλ“€μ΄ 기본적으둜 Sentry둜 보내지 μ•Šκ³  ν•„μš”ν•œ 것을 선택할 수 μžˆλ„λ‘ 더 λ§Žμ€ 데이터λ₯Ό breadcrumbCallback 에 전달할 수 μžˆμŠ΅λ‹ˆκΉŒ? 전체 dom μš”μ†ŒμΌ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

@TuxujPes λ‹€μŒ μ£Όμš” λ¦΄λ¦¬μŠ€μ—μ„œλŠ” κ°€λŠ₯ν•˜μ§€λ§Œ 이번 λ¦΄λ¦¬μŠ€μ—μ„œλŠ” λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€. μ£Όμš” λ¦΄λ¦¬μŠ€μ—μ„œλ§Œ λ„μž…ν•  수 μžˆλŠ” λͺ‡ 가지 곡개 API 변경이 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

@kamilogorek 잘 λ“€λ¦½λ‹ˆλ‹€. μ£Όμš” μΆœμ‹œμΌμ— λŒ€ν•œ μ˜ˆμƒμ΄ μžˆμŠ΅λ‹ˆκΉŒ?

Q3κ°€ 거의 λλ‚˜κ°ˆ 무렡(응닡 μ‹œκ°„μ΄ κΈΈμ–΄ μ£„μ†‘ν•©λ‹ˆλ‹€. νœ΄κ°€ μ€‘μ΄μ—ˆμŠ΅λ‹ˆλ‹€).

ID ν‘œμ‹œμ— λŒ€ν•œ +1 λ˜λŠ” data-sentry-id="Some text here" 와 같은 μ‚¬μš©μž μ •μ˜ νƒœκ·Έ

그듀은 이 정보가 μžˆλŠ”μ§€ λΆ„μ„ν•˜κ³  κ°€μ Έκ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ‘΄μž¬ν•˜λŠ” 경우 μΆ”κ°€ 정보λ₯Ό 보렀면 선택기에 λ²„νŠΌμ„ λ‚¨κ²¨λ‘μ‹­μ‹œμ˜€.

@hiagodotme @TuxujPes @adamreisnz 이 κΈ°λŠ₯은 이미 μƒˆ SDKμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. - https://docs.sentry.io/learn/filtering/?platform=javascript#before -breadcrumb

μ°Έκ³ : μƒˆ SDKλ₯Ό μ‚¬μš©ν•˜λ©΄ λ²ˆλ“€ 크기 #1552에 λŒ€ν•΄ +50Kbκ°€ μ œκ³΅λœλ‹€λŠ” 점을 μžŠμ§€ λ§ˆμ„Έμš”.

@ 1999 λŠ” raven-js와 비ꡐ할 λ•Œ 12.7kBλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. 관련이 μ—†μœΌλ―€λ‘œ 비ꡐλ₯Ό μœ„ν•΄ μ••μΆ•λ˜μ§€ μ•Šμ€ 크기λ₯Ό μ‚¬μš©ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.
λ˜ν•œ v5(https://github.com/getsentry/sentry-javascript/pull/1919)λŠ” <15kBμ΄λ―€λ‘œ νŽ˜μ΄λ‘œλ“œ 증가에 λŒ€ν•΄ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

@kamilogorek μ €λŠ” 200개 μ΄μƒμ˜ λ³€κ²½ 파일이 μžˆλŠ” PR이 쑰금 λ‘λ ΅μŠ΅λ‹ˆλ‹€. 이것은 μƒˆ λ²„μ „μ΄λΌκΈ°λ³΄λ‹€λŠ” μ™„μ „νžˆ μƒˆλ‘œμš΄ SDK처럼 λ³΄μž…λ‹ˆλ‹€. λ˜ν•œ ETA μΆœμ‹œ λ‚ μ§œλŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰