overleaf/services/web/frontend/js/utils/sentry.js
Jakob Ackermann 5d9740408a Merge pull request #2923 from overleaf/jpa-sentry-in-staging
[misc] sentry: allow reports for resources on the same origin and CDN

GitOrigin-RevId: 617939dccef839eb80df0b9d84e6684b5b2e618f
2020-06-24 02:10:43 +00:00

39 lines
1.3 KiB
JavaScript

// Conditionally enable Sentry based on whether the DSN token is set
// Conditionally enable Sentry based on whether the DSN token is set
if (window.ExposedSettings.sentryDsn) {
import(/* webpackChunkName: "sentry" */ '@sentry/browser').then(Sentry => {
let eventCount = 0
Sentry.init({
dsn: window.ExposedSettings.sentryDsn,
// Ignore errors unless they come from our origins
// Adapted from: https://docs.sentry.io/platforms/javascript/#decluttering-sentry
whitelistUrls: [
new RegExp(window.ExposedSettings.sentryAllowedOriginRegex)
],
ignoreErrors: [
// Ignore very noisy error
'SecurityError: Permission denied to access property "pathname" on cross-origin object'
],
beforeSend(event) {
// Limit number of events sent to Sentry to 100 events "per page load",
// (i.e. the cap will be reset if the page is reloaded). This prevent
// hitting their server-side event cap.
eventCount++
if (eventCount > 100) {
return null // Block the event from sending
} else {
return event
}
}
})
Sentry.setUser({ id: window.user_id })
// Previously Raven added itself as a global, so we mimic that old behaviour
window.Raven = Sentry
})
}