Sentry-javascript: [ΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚Π΅ для получСния ΠΎΡ‚Π·Ρ‹Π²Π°] ДороТная ΠΊΠ°Ρ€Ρ‚Π° для Sentry JavaScript SDK v7

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 13 Π°Π²Π³. 2020  Β·  18ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: getsentry/sentry-javascript

Β‘ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π΄Ρ€ΡƒΠ·ΡŒΡ!

Sentry ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ свой ΠΊΠΎΠ΄. ΠœΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ основной вСрсиСй JavaScript SDK ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм Π½Π° сСгодняшний дСнь.

Однако для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ваши ΠΎΡ‚Π·Ρ‹Π²Ρ‹.

_ΠšΠ°ΠΊΠΎΠ²Ρ‹ самыС большиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ использовании SDK?_
_ΠšΠ°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π°ΠΌ большС всСго Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚?_
_Π§Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ?_

ΠœΡ‹ ΡƒΠΆΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, пСрСчислСнных Π½ΠΈΠΆΠ΅:

  • ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ IE10 ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… вСрсий Node
  • Ρ€Π΅Π·ΠΊΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π°
  • ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ SDK Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ
  • ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с встряхиваниСм Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π²
  • ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ/Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСсколькими ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ

ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, ΠΈ Π΄Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ ваши мысли! ΠœΡ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠΌ Π½Π° всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, поэтому Π²Π°ΠΆΠ΅Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ голос.

Π’Π°ΡˆΠ΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅!
Камиль

Breaking Discussion

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Для мСня drastically reduce overall bundle size -Ρ†Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ являСтся самой Π²Π°ΠΆΠ½ΠΎΠΉ.

ВсС 18 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Моя самая большая прСтСнзия всСгда Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ моя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° рСгистрации ошибок являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠΎΠΈΡ… самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π― часто Π΄ΡƒΠΌΠ°Π» ΠΎ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Sentry Ρ‡Π΅Ρ€Π΅Π· 5-10 сСкунд послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ скорости страницы, поэтому я ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ❀️

Для мСня drastically reduce overall bundle size -Ρ†Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ являСтся самой Π²Π°ΠΆΠ½ΠΎΠΉ.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚,

Ρ€Π΅Π·ΠΊΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π‘Ρ‚Π°Π²Π»ΡŽ +1 Π½Π° случай, Ссли это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚. И Π΅Ρ‰Π΅ добавлю: Π² ΠΌΠΎΠ΅ΠΌ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ инициализация Sentry Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 30 мс (Π½Π° быстром ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅), Ρ‡Ρ‚ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ для Π»ΠΎΠ³Π³Π΅Ρ€Π° диагностики, Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React Native Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΡƒΠΆΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π±Π°Π½Π΄Π»Π΅Ρ€ (Metro) Π½Π΅ способСн трясти Π΄Π΅Ρ€Π΅Π²ΠΎ, поэтому Sentry ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡŒΠ½Ρ‹Π΅ _78 Ρ„Π°ΠΉΠ»ΠΎΠ²_, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ (нСсколько%) врСмя запуска.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· React Native:

image

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° iPhone X. ΠŸΡ€ΠΈ запускС Sentry трСбуСтся ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡŒΠ½Ρ‹Π΅ 54 мс β€” ~ 40 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° основной части Ρ„Π°ΠΉΠ»ΠΎΠ², ~ 15 для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° JS. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ этому ~30 мс, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… основной ΠΏΠΎΡ‚ΠΎΠΊ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ _native_ стороны, ΠΈ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π½Π΅ΡƒΡ‡Ρ‚Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈ лСксировании/Π°Π½Π°Π»ΠΈΠ·Π΅ JS Sentry (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎ) - я ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, 5-15 мс, Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ измСрял. Π˜Ρ‚ΠΎΠ³ΠΎ - 90-100мс - это 15% ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запуска ΠΌΠΎΠ΅Π³ΠΎ прилоТСния!

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ вопрос! Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π° (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) для производствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ console.log, Π½ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ Ρ…Π»Π΅Π±Π½Ρ‹Ρ… ΠΊΡ€ΠΎΡˆΠ΅ΠΊ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠ°ΠΊ https://github.com/getsentry/sentry/issues/12618 ΠΈ https://github.com/getsentry/sentry-javascript/issues/1883.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈ Sentry ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Турналирования, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ debug ΠΈΠ»ΠΈ loglevel . Π­Ρ‚ΠΎ каТСтся распространСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ использования для производствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ ΡƒΠΆΠ΅ поддСрТиваСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ DIY, Π½ΠΎ Π½Π΅ совсСм ясно, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ это Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. (Или Ссли это Ρ‚Π°ΠΊ, Π° я ΠΊΠ°ΠΊ-Ρ‚ΠΎ пропустил, Ρ‚ΠΎ Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚Π΅Π»Π΅Π½ Π·Π° Π»ΡŽΠ±Ρ‹Π΅ подсказки). Бпасибо!

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Ρƒ мСня Π΅ΡΡ‚ΡŒ рСкомСндация ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SDK.

ВмСсто Π²Ρ‹Π·ΠΎΠ²Π° Sentry.init с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ SDK ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ SentryOptions, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, для получСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° DSN ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠœΡ‹ динамичСски Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ JS, ΠΊΠΎΠ³Π΄Π° это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ событиС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° js Π² ΠΌΠ΅ΠΆΠ΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… запросах ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с ΡΠ΅Ρ‚ΡŒΡŽ. АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Ρ‹Π»Π° Π±Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½Π° для этого, ΠΈ Π½Π΅Ρ‚ нСобходимости Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

_SDK Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡŽ события_

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ capureEvent Π½Π΅ смог ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΠΏΠΎΠ·ΠΆΠ΅.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΡ„Π»Π°ΠΉΠ½-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (прогрСссивных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).

Π‘Ρ‹Π²Π°ΡŽΡ‚ ситуации, ΠΊΠΎΠ³Π΄Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ находится Π² ΠΎΠ½Π»Π°ΠΉΠ½-состоянии, Π½ΠΎ сСтСвой запрос Π½Π΅ выполняСтся ΠΈΠ·-Π·Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ соСдинСния/Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π° (Ρ‚. Π΅. ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎ участкам с ΠΏΠ»ΠΎΡ…ΠΈΠΌ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ сСти).

БущСствуСт ΠΎΡ„Π»Π°ΠΉΠ½-интСграция, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° зависит ΠΎΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½- ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½-событий, Ρ‡Π΅Π³ΠΎ нСдостаточно для покрытия этого случая.

Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ошибки ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ β€‹β€‹ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π²Ρ‹Π΄Π°Π΅Ρ‚ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Sentry ΠΈ просто ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ Π² пустотС.

Π£ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся PWA, ΠΈ я Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ события, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ находится Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈ Π½Π΅Ρ‚ возмоТности Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² сСрвис-Π²ΠΎΡ€ΠΊΠ΅Ρ€Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ зарСгистрирован для ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° часового.

@эдСльваллС
Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ с Workbox ΠΈ Π΅Π³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Background Sync ~, ΠΎΠ΄Π½Π°ΠΊΠΎ я Π΅Ρ‰Π΅ Π½Π΅ тСстировал Π΅Π³ΠΎ ~
ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Ρ‚Π° события соотвСтствуСт Π΄Π°Ρ‚Π΅ возникновСния ошибки.

// service-worker.js
import { registerRoute } from 'workbox-routing'
import { NetworkOnly } from 'workbox-strategies'
import { BackgroundSyncPlugin } from 'workbox-background-sync'

registerRoute(
  new RegExp('^https://[^\\.]+\\.ingest\\.sentry\\.io/api/.*$'),
  new NetworkOnly({
    plugins: [
      new BackgroundSyncPlugin('project-name/sentry-event-queue', {
        maxRetentionTime: 7 * 24 * 60, // 7 days
      })
    ],
  }),
  'POST'
)

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, любовь ΠΊ drastically reduce overall bundle size планируСтся. Π£ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ gatsby+preact, ΠΈ sentry Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 28% ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° нашСго основного ΠΏΠ°ΠΊΠ΅Ρ‚Π° (27 ΠšΠ‘ ΠΈΠ· 95 ΠšΠ‘). ΠœΡ‹ пытаСмся ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ нашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π° JS Π½Π° страницу Π΄ΠΎ 90 ΠšΠ‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² сСльской мСстности с ΠΏΠ»ΠΎΡ…ΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньший Ρ€Π°Π·ΠΌΠ΅Ρ€ Sentry SDK ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³ Π±Ρ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ IE11? МногиС ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ сайты, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Microsoft, прСкратят ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ этого Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ Π³ΠΎΠ΄Π°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, вопрос Π² Ρ‚ΠΎΠΌ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ это влияСт Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

@kamilogorek Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ v6?

Π― Ρ‚Π°ΠΊΠΆΠ΅ согласСн с @xr0master ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ IE слСдуСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ IE11 Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии.

ΠšΠ°ΠΊΠΎΠ²Ρ‹ самыС большиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ использовании SDK?

  • Π˜ΠΌΠΏΠΎΡ€Ρ‚. Но я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ сочСтаСтся с Β«ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ Π΄Π΅Ρ€Π΅Π²Π°Β» ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.
// This is not nice, as it doesn't get auto-completion when importing
import * as Sentry from '@sentry/browser'

// This is better, but has given me problems on Sentry 5.x
import { captureException } from '@sentry/browser'
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Sentry, Π½ΠΎ каТСтся, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ console.log происходит ΠΈΠ· instruments.js:1 , Ρ‡Ρ‚ΠΎ бСсполСзно ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ console.trace β€” это ΠΈΠ·Π»ΠΈΡˆΠ΅ΡΡ‚Π²ΠΎ, я Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΈΡˆΡƒ Β«Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈΒ» Π² своСм console.log Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ рСгистрируСтся.

ΠšΠ°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ большС всСго?

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ .

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ использованиС AsyncLocalStorage Π² вСрсиях Node, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚?

Π˜Ρ‚Π°ΠΊ, сСгодня ΠΌΡ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ 6.0.0 Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ сущСствСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… сСанса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. копия @OmgImAlexis
Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ этого выпуска Π½Π° v7, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ это.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Sentry.init . Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ адрСс #3232 , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Vue загруТаСтся Π»Π΅Π½ΠΈΠ²ΠΎ, ΠΈ поэтому Π½Π΅ гарантируСтся Π΅Π³ΠΎ сущСствованиС Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ часового. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Sentry.configureVue(Vue) ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Vue.

интСграция с Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ прилоТСния Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ, с использованиСм собствСнного ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ².

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

zishon89us picture zishon89us  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

zivl picture zivl  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

hinok picture hinok  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

dwelle picture dwelle  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

mogelbrod picture mogelbrod  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ