Sentry-javascript: рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдордИ 2013  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: getsentry/sentry-javascript

рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рд░реЗрд╡реЗрди рдХреЛ AMD рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж window.onerror рдШрдЯрдирд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд░реЗрд╡реЗрди рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдореЛрдб рдореЗрдВ config() / install() рдкрд░ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рджреЗрд╡ рдореЛрдб рдореЗрдВ рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрднреА рднреА TraceKit.report() рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ ... рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓/рд▓рд╛рдЗрди рдирдВрдмрд░/рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЗрд╡ рдЙрдкрдХрд░рдг рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рджреЗрд╡ рдореЛрдб рдореЗрдВ uninstall() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк window.onerror рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реИрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЗрд╕реЗ config() рдпрд╛ install() рдХреЗ рдЕрдВрджрд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣рд╛рдВ рдЖрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ shouldSendCallback рдореЗрдВ рдпрд╛рдж рдХрд┐рдпрд╛ рдерд╛:

import Raven from 'raven-js';

const env = 'prod';
const release = '12345';

Raven
  .config('https://<example>@sentry.io/1234', {
    environment: env,
    release: release,
    shouldSendCallback: () => {
      // Do your logic here...
      return ['prod', 'staging'].indexOf(env) !== -1;
    },
  })
  .install();

рдпрджрд┐ shouldSendCallback рд╣реИ рддреЛ false рд╕рдВрддрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╕рд╢рд░реНрдд рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддрд░реНрдХ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рднреА 19 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ ...

рдореИрдВ рджреЗрд╡ рдореЛрдб рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ window.onerror = null рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдореИрдВ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд░реЗрд╡реЗрди рдореЗрдВ require() рдерд╛, рдФрд░ рд╣рд░ рдмрд╛рд░ рд░реЗрд╡реЗрди window.onerror рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдерд╛ред

рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ noConflict() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдЗрд╕реЗ requjs рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдЗрд╕рдиреЗ window.onerror = null рдХреЛ рд░реЗрд╡реЗрди рдХреЗ рдмрд┐рдирд╛ рдмрд╛рдж рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрд╛рдзреНрдп рдХрд┐рдП рдмрд┐рдирд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдЧрдиреНрджрд╛ рдлрд┐рдХреНрд╕ :(

@adambiggs рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рд░реЗрд╡реЗрди-рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд┐рдВрдЧ рдПрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдХреЙрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд░реЗрд╡реЗрди-рдЬреЗрдПрд╕ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдИ рдмрд╛рд░ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, afaikред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/getsentry/raven-js/pull/109 рдФрд░ https://github.com/getsentry/raven-js/issues/91#issuecomment -15560074

рдпрд╣ рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред window.onerror рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рддрдХ install() рддрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ uninstall() рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рддреЛ рдмрддрд╛рдПрдВред

@mattrobenolt , рдореИрдВрдиреЗ 1.1.11 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ install() рдкрд░ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЕрднреА рднреА рд░реЗрд╡реЗрди рд╣реИрдВрдбрд▓рд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реВрдВред

@bobbyrenwick рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХрд┐рд╕реА рдРрд╕реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЪреАрдЬрд╝ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рд░реНрдп рд╣реИ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЬрдм рдореИрдВ рдХрднреА рднреА Raven.config() рдпрд╛ Raven.install() рдкрд░ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рдпрд╛ рдЕрдЧрд░ рдореИрдВ Raven.config(false) рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рднреА jQuery рдпрд╛ рдЖрддрдВрдХ рд╣реИрдВрдбрд▓рд░ рдЕрднреА рднреА рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рдХрд╛рдордХрд╛рдЬ рдХрднреА рднреА рд░реЗрд╡реЗрди рдЬреЗрдПрд╕ рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬреЛ рдЖрджрд░реНрд╢ рд╕реЗ рдХрдо рд╣реИ)ред

рджреЗрдЦреЗрдВ: #282 :)

рдХреНрдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ #282 рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдореЗрд░рд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди require() if рдмреНрд▓реЙрдХ рдореЗрдВ рдХрд░рдирд╛ рд╣реИ (рдореЗрд░рд╛ рд╢реЗрд╖ рдХреЛрдб рдЕрдм import рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ :(

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди? рдпрд╣ рдЕрднреА рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореЗрд░реЗ рд╕реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рдмрд╣реБрдд рджрд┐рди рд░рд╣рд╛ред

рддреБрдо рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реЛ? рдореИрдВ рдпрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

if (process.env.RAVEN_DSN) {
  require('raven-js').config(process.env.RAVEN_DSN, {
    environment: process.env.NODE_ENV,
  }).install();
}

рдЬрд╣рд╛рдВ process.env.RAVEN_DSN рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбреАрдПрд╕рдПрди рд╣реИ, рдФрд░ рдЬреЛ рдХреЗрд╡рд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рд░реЗрд╡реЗрди рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, webpack.EnvironmentPlugin рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдХреЛрдгреАрдп рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдпрд╛ рддреЛ рдЖрдк рдЗрд╕реЗ рд╣рд░ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдпрд╣ рдЖрдкрдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рдЧрд▓рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдХреБрдЫ рднреА рд╣реЛ, рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕реЗ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ, рдЬреЛ рдУрдбреА рджреЗрд╡ рдкреВрд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╢рд░реНрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдгреАрдп рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдореИрдВрдиреЗ рдЖрдЬ рдлрд┐рдХреНрд╕ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдХрдИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдХрд┐рдпрд╛ рд╣реИред

рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореБрдЭреЗ рдПрдХ рд░реЗрд╡реЗрди рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХреЛрдгреАрдп рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╣реЛрдЧрд╛ред

рдмрд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░: рдХреНрдпрд╛ рдЖрдкрдиреЗ ignoreUrls рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдПрдХ рдкреИрдЯрд░реНрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╕рднреА рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╡рд╣ рд╡рд╣реА рдХрд░реЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП? ignoreUrls: [/./] рдЬреИрд╕рд╛ рдХреБрдЫ?

рдпрд╛ рд╢рд╛рдпрдж sampleRate рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ?

рд░реЗрд╡реЗрди рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдгреАрдп рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рдЧрд▓рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ (= рдХрдо рд╕реЗ рдХрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рдЦреЛрдирд╛ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдХ рд░реЗрд╡реЗрди рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣рд╛рдВ рдЖрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ shouldSendCallback рдореЗрдВ рдпрд╛рдж рдХрд┐рдпрд╛ рдерд╛:

import Raven from 'raven-js';

const env = 'prod';
const release = '12345';

Raven
  .config('https://<example>@sentry.io/1234', {
    environment: env,
    release: release,
    shouldSendCallback: () => {
      // Do your logic here...
      return ['prod', 'staging'].indexOf(env) !== -1;
    },
  })
  .install();

рдпрджрд┐ shouldSendCallback рд╣реИ рддреЛ false рд╕рдВрддрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╕рд╢рд░реНрдд рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддрд░реНрдХ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдкрдирд╛ рдбреАрдПрд╕рдПрди рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рдПрдВред рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдЧрд╛

рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

if (environment.production) { Raven.config('https://@sentry.io/') .install(); }

рдФрд░ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ
providers: [environment.production ? { provide: ErrorHandler, useClass: RavenErrorHandler } : [], ...

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kishor-bhatt picture kishor-bhatt  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nicolezhu picture nicolezhu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dimmduh picture dimmduh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adepue picture adepue  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rowlando picture rowlando  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ