Report unhandledRejections and uncaughtExceptions to Sentry (#17014)

* Report to Sentry in error handlers

* Support optional metadata
This commit is contained in:
Jason Etcovitch 2020-12-16 11:28:25 -05:00 коммит произвёл GitHub
Родитель e85c2f8360
Коммит b22fe856c8
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 10 добавлений и 2 удалений

Просмотреть файл

@ -76,7 +76,7 @@ module.exports = class FailBot {
* @param {Error} error
* @param {any} metadata
*/
async sendException (error, metadata) {
async sendException (error, metadata = {}) {
const data = Object.assign({ app: this.app }, this.getFailbotContext(), metadata)
const body = this.formatJSON(error, Object.assign({ app: this.app }, data))

Просмотреть файл

@ -1,8 +1,16 @@
process.on('uncaughtException', err => {
const FailBot = require('./failbot')
process.on('uncaughtException', async err => {
if (err.code === 'MODULE_NOT_FOUND') {
console.error('\n\n🔥 Uh oh! It looks you are missing a required npm module.')
console.error('Please run `npm install` to make sure you have all the required dependencies.\n\n')
}
console.error(err)
await FailBot.report(err)
})
process.on('unhandledRejection', async err => {
console.error(err)
await FailBot.report(err)
})