Merge pull request #5181 from overleaf/bg-upgrade-sentry-package-version

Migrate from raven to @sentry/node

GitOrigin-RevId: 1a82225b5204a9c507b566efff3c090b124e2392
This commit is contained in:
Brian Gough 2021-09-22 11:25:28 +01:00 committed by Copybot
parent 603698ed32
commit 08e0dcb85f
4 changed files with 1802 additions and 1497 deletions

View file

@ -72,9 +72,9 @@ const Logger = (module.exports = {
return res.text()
},
initializeErrorReporting(sentryDsn, options) {
const raven = require('raven')
this.raven = new raven.Client(sentryDsn, options)
initializeErrorReporting(dsn, options) {
this.Sentry = require('@sentry/node')
this.Sentry.init({ dsn, ...options })
this.lastErrorTimeStamp = 0 // for rate limiting on sentry reporting
this.lastErrorCount = 0
},
@ -142,7 +142,7 @@ const Logger = (module.exports = {
}
// send the error to sentry
this.raven.captureException(error, { tags, extra, level })
this.Sentry.captureException(error, { tags, extra, level })
// put a flag on the errors to avoid reporting them multiple times
for (key in attributes) {
@ -152,7 +152,7 @@ const Logger = (module.exports = {
}
}
} catch (err) {
// ignore Raven errors
// ignore Sentry errors
}
}
},
@ -176,7 +176,7 @@ const Logger = (module.exports = {
})
}
this.logger.error(attributes, message, ...Array.from(args))
if (this.raven != null) {
if (this.Sentry) {
const MAX_ERRORS = 5 // maximum number of errors in 1 minute
const now = new Date()
// have we recently reported an error?
@ -207,22 +207,10 @@ const Logger = (module.exports = {
return this.logger.warn.apply(this.logger, arguments)
},
fatal(attributes, message, callback) {
if (callback == null) {
callback = function () {}
}
fatal(attributes, message) {
this.logger.fatal(attributes, message)
if (this.raven != null) {
var cb = function (e) {
// call the callback once after 'logged' or 'error' event
callback()
return (cb = function () {})
}
if (this.Sentry) {
this.captureException(attributes, message, 'fatal')
this.raven.once('logged', cb)
return this.raven.once('error', cb)
} else {
return callback()
}
},

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,7 @@
"url": "http://github.com/sharelatex/logger-sharelatex.git"
},
"license": "AGPL-3.0-only",
"version": "2.2.1",
"version": "2.3.0",
"scripts": {
"test": "mocha --grep=$MOCHA_GREP test/**/*.js",
"format": "prettier-eslint $PWD'/**/*.js' --list-different",
@ -18,9 +18,9 @@
"dependencies": {
"@google-cloud/logging-bunyan": "^3.1.0",
"@overleaf/o-error": "^3.0.0",
"@sentry/node": "^6.13.2",
"bunyan": "^1.8.14",
"node-fetch": "^2.6.1",
"raven": "^2.6.4",
"yn": "^4.0.0"
},
"devDependencies": {

View file

@ -25,9 +25,9 @@ describe('LoggingManager', function () {
level: sinon.stub(),
warn: sinon.stub()
}
this.ravenClient = {
captureException: this.captureException,
once: sinon.stub().yields()
this.Sentry = {
init: sinon.stub(),
captureException: this.captureException
}
this.fetchResponse = {
text: sinon.stub().resolves(''),
@ -42,9 +42,6 @@ describe('LoggingManager', function () {
res: sinon.stub()
}
}
this.Raven = {
Client: sinon.stub().returns(this.ravenClient)
}
this.Fetch = sinon.stub().resolves(this.fetchResponse)
this.Fs = {
readFile: sinon.stub(),
@ -63,7 +60,7 @@ describe('LoggingManager', function () {
globals: { console, process },
requires: {
bunyan: this.Bunyan,
raven: this.Raven,
'@sentry/node': this.Sentry,
'node-fetch': this.Fetch,
fs: this.Fs,
'@google-cloud/logging-bunyan': this.GCPLogging
@ -452,7 +449,8 @@ describe('LoggingManager', function () {
this.fetchResponse.text = sinon
.stub()
.resolves((this.start + 1000).toString())
this.logger.getTracingEndTime = this.logger.getTracingEndTimeMetadata
this.logger.getTracingEndTime =
this.logger.getTracingEndTimeMetadata
await this.logger.checkLogLevel()
})
@ -471,7 +469,8 @@ describe('LoggingManager', function () {
.stub()
.resolves((this.start + 1000).toString())
this.Fetch.fetch = sinon.stub().resolves(this.fetchResponse)
this.logger.getTracingEndTime = this.logger.getTracingEndTimeMetadata
this.logger.getTracingEndTime =
this.logger.getTracingEndTimeMetadata
await this.logger.checkLogLevel()
})