Add (opt-outable) Sentry error tracking telemetry

This commit is contained in:
Max Goodhart
2020-10-10 16:28:08 -07:00
parent 4ee2f3ad2a
commit eeadb061bb
3 changed files with 143 additions and 2 deletions

130
package-lock.json generated
View File

@@ -1880,6 +1880,106 @@
"resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.1.tgz",
"integrity": "sha512-kqdrZRvTLFfvgPTeMgj8DpREYZXU+sz4/kdX2825zMNGmiaEUzM6u7A4YBoI4WzqXX4q123VftkllAw1C/4rMg=="
},
"@sentry/apm": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/apm/-/apm-5.21.4.tgz",
"integrity": "sha512-JkBfBKBXZifDI9CsKU+XHzNWkubM7U9dXDW4c6/kU3lURYGXpiR/WI+f3IQG5Vbd2t+cukYhG7BeMkhG8Tj+cA==",
"requires": {
"@sentry/browser": "5.21.4",
"@sentry/hub": "5.21.4",
"@sentry/minimal": "5.21.4",
"@sentry/types": "5.21.4",
"@sentry/utils": "5.21.4",
"tslib": "^1.9.3"
}
},
"@sentry/browser": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.21.4.tgz",
"integrity": "sha512-/bRGMNjJc4Qt9Me9qLobZe0pREUAMFQAR7GOF9HbgzxUc49qVvmPRglvwzwhPJ6XKPg0NH/C6MOn+yuIRjfMag==",
"requires": {
"@sentry/core": "5.21.4",
"@sentry/types": "5.21.4",
"@sentry/utils": "5.21.4",
"tslib": "^1.9.3"
}
},
"@sentry/core": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.21.4.tgz",
"integrity": "sha512-2hB0shKL6RUuLqqmnDUPvwiV25OSnchxkJ6NbLqnn2DYLqLARfZuVcw2II4wb/Jlw7SDnbkQIPs0/ax7GPe1Nw==",
"requires": {
"@sentry/hub": "5.21.4",
"@sentry/minimal": "5.21.4",
"@sentry/types": "5.21.4",
"@sentry/utils": "5.21.4",
"tslib": "^1.9.3"
}
},
"@sentry/electron": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@sentry/electron/-/electron-2.0.1.tgz",
"integrity": "sha512-7jWkM0EHdkOkMFg5duCNXWzh6Jn5+eC2PztoGhQf5iJwLrZUpr0Q6FrX1J2uaswnNFJNOFIk2hQe2vcP8CLCzw==",
"requires": {
"@sentry/browser": "~5.21.1",
"@sentry/core": "~5.21.1",
"@sentry/minimal": "~5.21.1",
"@sentry/node": "~5.21.1",
"@sentry/types": "~5.21.1",
"@sentry/utils": "~5.21.1",
"tslib": "^1.9.3"
}
},
"@sentry/hub": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.21.4.tgz",
"integrity": "sha512-bgEgBHK6OWoAkrnYwVsIOw+sR4MWpe5/CB7H7r+GBJsSnBysncbSaBgndKmtb1GTWdzMxMlvXU16zC6TR5JX5Q==",
"requires": {
"@sentry/types": "5.21.4",
"@sentry/utils": "5.21.4",
"tslib": "^1.9.3"
}
},
"@sentry/minimal": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.21.4.tgz",
"integrity": "sha512-pIpIH2ZTwdijGTw6VwfkTETAEoc9k/Aejz6mAjFDMzlOPb3bCx+W8EbGzFOxuwOsiE84bysd2UPVgFY4YSLV/g==",
"requires": {
"@sentry/hub": "5.21.4",
"@sentry/types": "5.21.4",
"tslib": "^1.9.3"
}
},
"@sentry/node": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.21.4.tgz",
"integrity": "sha512-8XnEIwWZyvCSawjMyf6d7bm4lat3bv54SwWrxWqNr6akxbfVI/cV8DsWC045g2Gx799mbXBo4hMaTGJYW6CrWg==",
"requires": {
"@sentry/apm": "5.21.4",
"@sentry/core": "5.21.4",
"@sentry/hub": "5.21.4",
"@sentry/types": "5.21.4",
"@sentry/utils": "5.21.4",
"cookie": "^0.4.1",
"https-proxy-agent": "^5.0.0",
"lru_map": "^0.3.3",
"tslib": "^1.9.3"
}
},
"@sentry/types": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.21.4.tgz",
"integrity": "sha512-uJTRxW//NPO0UJJzRQOtYHg5tiSBvn1dRk5FvURXmeXt9d9XtwmRhHWDwI51uAkyv+51tun3v+0OZQfLvAI+gQ=="
},
"@sentry/utils": {
"version": "5.21.4",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.21.4.tgz",
"integrity": "sha512-zY8OvaE/lU+DCzTSFrDZNXZmBLM/0URUlyYD4RubqzrgKY/eP1pSbEsDzYYhc+OrBr8TjG66N+5T3gMZX0BfNg==",
"requires": {
"@sentry/types": "5.21.4",
"tslib": "^1.9.3"
}
},
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -2462,6 +2562,14 @@
"integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==",
"dev": true
},
"agent-base": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz",
"integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==",
"requires": {
"debug": "4"
}
},
"aggregate-error": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
@@ -3703,6 +3811,11 @@
"safe-buffer": "~5.1.1"
}
},
"cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
},
"cookiejar": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
@@ -5873,6 +5986,15 @@
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
"dev": true
},
"https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
"requires": {
"agent-base": "6",
"debug": "4"
}
},
"human-signals": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
@@ -8551,6 +8673,11 @@
"yallist": "^3.0.2"
}
},
"lru_map": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
"integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0="
},
"make-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
@@ -11650,8 +11777,7 @@
"tslib": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
"integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
"dev": true
"integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
},
"tsscmp": {
"version": "1.0.6",

View File

@@ -14,6 +14,7 @@
"dependencies": {
"@iarna/toml": "^2.2.5",
"@repeaterjs/repeater": "^3.0.1",
"@sentry/electron": "^2.0.1",
"base-x": "^3.0.8",
"chokidar": "^3.4.0",
"color": "^3.1.2",

View File

@@ -4,6 +4,7 @@ import yargs from 'yargs'
import TOML from '@iarna/toml'
import * as Y from 'yjs'
import { Repeater } from '@repeaterjs/repeater'
import * as Sentry from '@sentry/electron'
import { app, shell, session, BrowserWindow } from 'electron'
import { ensureValidURL } from '../util'
@@ -21,6 +22,9 @@ import TwitchBot from './TwitchBot'
import StreamdelayClient from './StreamdelayClient'
import initWebServer from './server'
const SENTRY_DSN =
'https://e630a21dcf854d1a9eb2a7a8584cbd0b@o459879.ingest.sentry.io/5459505'
function parseArgs() {
return yargs
.config('config', (configPath) => {
@@ -186,6 +190,12 @@ function parseArgs() {
describe: 'Streamdelay API key',
default: null,
})
.group(['telemetry.sentry'], 'Telemetry')
.option('telemetry.sentry', {
describe: 'Enable error reporting to Sentry',
boolean: true,
default: true,
})
.help().argv
}
@@ -195,6 +205,10 @@ async function main() {
return
}
if (argv.telemetry.sentry) {
Sentry.init({ dsn: SENTRY_DSN })
}
// Reject all permission requests from web content.
session
.fromPartition('persist:session')