ΠΠΎΠ³Π΄Π° Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Ρ ΠΎΡΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Sentry, Π½ΠΎ Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈΡΡ Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΡΠΎΠ±Ρ Ρ ΠΌΠΎΠ³ ΠΈΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ / ΡΠΎΠ±ΡΡΠΈΠΉ Π² Sentry, Π½ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ?
ΠΌΡ ΠΎΠ±Π΅ΡΠ½ΡΠ»ΠΈ captureException
ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅:
function captureException(...args) {
if (typeof Sentry !== 'undefined') {
Sentry.captureException(...args);
}
else {
console.error(...args);
}
}
Π― Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π»ΡΡΡΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ beforeSend
`` js
Sentry.init ({
dsn: "DSN",
beforeSend: event => {
if (IS_DEBUG) {
console.error (ΡΠΎΠ±ΡΡΠΈΠ΅);
return null; // ΡΡΠΎ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΡΡΠ°ΠΆΡ
}
ΡΠΎΠ±ΡΡΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°;
}
});
Π§ΡΠΎ ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ beforeSend
ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠΎ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ.
@gaastonsr Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° :) https://docs.sentry.io/learn/filtering/?platform=browser#before -send
Sentry.init({
dsn: "DSN",
beforeSend: (event, hint) => {
if (IS_DEBUG) {
console.error(hint.originalException || hint.syntheticException);
return null; // this drops the event and nothing will be sent to sentry
}
return event;
}
});
ΠΠΉ, ΡΡΠΎ Π²ΡΠ΅ ΠΌΠ΅Π½ΡΠ΅Ρ! ΡΠΏΠ°ΡΠΈΠ±ΠΎ, @kamilogorek.
ΠΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ 30 ΠΌΠΈΠ½ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΌΡ Π±Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ
Π»Π΅Π±Π½ΡΡ ΠΊΡΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π ΠΌΡ ΡΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π΄Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°Ρ
Π²Π°ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ Π·Π°ΠΏΠΈΡΠΈ.
Π₯ΠΎΡΡ ΠΌΠΎΠΈ ΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ·ΡΠ²ΠΎΠ², ΠΈ Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΊΠ°ΠΊ ΡΠ»ΡΡΡΠΈΡΡ ΡΡΡ ΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Ρ Π±ΡΠ» Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΠ°Π΄ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π΅ :)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΌΡ Π±Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ Π»Π΅Π±Π½ΡΡ ΠΊΡΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π ΠΌΡ ΡΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π΄Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°Ρ Π²Π°ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ Π·Π°ΠΏΠΈΡΠΈ.
Π₯ΠΎΡΡ ΠΌΠΎΠΈ ΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ·ΡΠ²ΠΎΠ², ΠΈ Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΊΠ°ΠΊ ΡΠ»ΡΡΡΠΈΡΡ ΡΡΡ ΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Ρ Π±ΡΠ» Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΠ°Π΄ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π΅ :)
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΡ
Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ!
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°ΡΠΈΠ» ΡΠ°Ρ, Π²ΡΡΡΠ½ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Ρ
ΠΎΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΡΠ½Π°.
ΠΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ.
Π― Π΄ΡΠΌΠ°Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ· Ρ
Π»Π΅Π±Π½ΡΡ
ΠΊΡΠΎΡΠ΅ΠΊ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ setTimeout
, ΡΡΠΎΠ±Ρ Ρ
Π»Π΅Π±Π½ΡΠ΅ ΠΊΡΠΎΡΠΊΠΈ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π·Π°Ρ
Π²Π°ΡΠ΅Π½Ρ. ΠΠ°ΠΊ Ρ ΡΠ΅ΠΉΡΠ°Ρ Π΄Π΅Π»Π°Ρ:
Sentry.init({
dsn: 'DSN',
beforeSend: (event, hint) => {
setTimeout(() => console.error(hint.originalException || hint.syntheticException), 0);
return event;
}
});
@vitalets ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π² 5.9.0
. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
@vitalets ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π²
5.9.0
. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
@kamilogorek
Π£ ΠΌΠ΅Π½Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° sentry/browser 5.9.1
(chrome 78, osx).
ΠΠΎΡ ΠΊΠΎΠ΄:
Sentry.init({ dsn: 'dsn' });
setTimeout(() => {throw new Error('abc')}, 3000);
ΠΠΎΠ½ΡΠΎΠ»Ρ ΠΏΡΡΡΠ°. ΠΠΊΠ»Π°Π΄ΠΊΠ° Β«Π‘Π΅ΡΡΒ» ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π±ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ½Π° ΡΡΡΠ°ΠΆΡ.
ΠΠ΅Π· ΠΊΠ°ΡΠ°ΡΠ»Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°:
// Sentry.init({ dsn: 'dsn' });
setTimeout(() => {throw new Error('abc')}, 3000);
ΠΎΠ½ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ captureException, Π° Π½Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π·Π°Ρ
Π²Π°ΡΠ°:
Π§ΡΠΎΠ±Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ captureEvent ΠΈ captureException, ΠΌΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ @kamilogorek :
Sentry.init({
dsn: "DSN",
beforeSend: (event, hint) => {
if (IS_DEBUG) {
console.error(hint.originalException || hint.syntheticException || event);
return null; // this drops the event and nothing will be sent to sentry
}
return event;
}
});
@kamilogorek , ΡΡΠΎ @sentry/node
? Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π²Π΅ΡΡΠΈΡ 5.9.0
ΠΈ Ρ Π²ΠΈΠΆΡ, ΡΡΠΎ beforeSend
ΡΡΠ½ΠΊΡΠΈΡ
Π― ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π²ΠΈΠΆΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Ρ 5.10.1. ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true.
ΠΠΎΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΈΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ...
https://html.spec.whatwg.org/multipage/webappapis.html#the -event-handler-processing-algorithm
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΎΠ±ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π΅ΡΠ½Π°
ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ - ΠΈΡΡΠΈΠ½Π°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΠΎΡΠΌΠ΅Π½Ρ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠ½Π°ΡΠ΅
ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ - false, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΠΎΡΠΌΠ΅Π½Ρ ΡΠΎΠ±ΡΡΠΈΡ.
Π ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅ΡΡ ...
Π ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π΅ΡΡΡ Π΄Π²Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ onerror Π΄Π»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π³Π΄Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅.
Π― ΠΎΠ±Π½ΠΎΠ²Π»Ρ ΠΊΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ
ΠΠΎΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π΅ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΠΈΡΠ°Π΅Ρ :)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅!
ΠΡΠ»ΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΈΡΠ°Ρ ΡΡΡ Π²Π΅ΡΠΊΡ, ΡΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ sentry Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° sentry. Π― Π½Π΅ ΠΈΡΠΏΡΡΡΠ²Π°Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ ΡΠ°ΡΠΎΠ²ΡΡ Π½Π° ΡΠ²ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΡ:
<script src="https://browser.sentry-cdn.com/5.20.1/bundle.min.js" integrity="sha384-O8HdAJg1h8RARFowXd2J/r5fIWuinSBtjhwQoPesfVILeXzGpJxvyY/77OaPPXUo" crossorigin="anonymous"></script>
<script src="https://browser.sentry-cdn.com/5.20.1/vue.min.js" crossorigin="anonymous"></script>
ΠΠΎΡ ΠΌΠΎΠΉ Π²ΡΠ·ΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
Sentry.init({
dsn: 'https://_________.ingest.sentry.io/___________',
integrations: [new Sentry.Integrations.Vue({Vue, attachProps: true})],
});
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
window.undef.undef += 1;
ΠΠΎΠ³Π΄Π° Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, Π½ΠΎ Ρ Π²ΠΈΠΆΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠ°ΡΠΎΠ². ΠΡΠ»ΠΈ Ρ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Sentry.init
Π²ΡΠ·ΠΎΠ²Π° , ΡΠΎ Ρ Π²ΠΈΠΆΡ TypeError
Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Js.
Π― ΠΎΠΆΠΈΠ΄Π°Π», ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΌΠΎΠ΅ΠΌ ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΡΡΠΎ Ρ ΡΠ²ΠΈΠΆΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ js, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ Π΅Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠ°ΡΠΎΠ². ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ? ΠΠ½Π΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ
ΡΠΊ beforeSend
?
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ logErrors: true
Integrations.Vue
Π²ΡΠ·ΠΎΠ²Ρ
new Sentry.Integrations.Vue({Vue, attachProps: true, logErrors: true}
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΠΌΠ½Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎΠ²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Π΅Π΅!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@gaastonsr Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° :) https://docs.sentry.io/learn/filtering/?platform=browser#before -send