[mirotalksfu] - add sentry

main
Miroslav Pejic 4 years ago
parent 59ebbcfcd2
commit 5652d086cd

@ -9,9 +9,17 @@ module.exports = class Logger {
debug(msg, op = '') {
if (this.debugOn === false) return;
console.debug('[' + this.getDataTime() + '] [' + this.appName + '] ' + msg, op);
}
log(msg, op = '') {
console.log('[' + this.getDataTime() + '] [' + this.appName + '] ' + msg, op);
}
info(msg, op = '') {
console.info('[' + this.getDataTime() + '] [' + this.appName + '] ' + msg, op);
}
warn(msg, op = '') {
console.warn('[' + this.getDataTime() + '] [' + this.appName + '] ' + msg, op);
}

@ -18,6 +18,8 @@ const log = new Logger('Server');
const yamlJS = require('yamljs');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = yamlJS.load(path.join(__dirname + '/../api/swagger.yaml'));
const Sentry = require('@sentry/node');
const { CaptureConsole } = require('@sentry/integrations');
const app = express();
@ -43,6 +45,30 @@ const hostCfg = {
const apiBasePath = '/api/v1'; // api endpoint path
const api_docs = host + apiBasePath + '/docs'; // api docs
// Sentry monitoring
const sentryEnabled = config.sentry.enabled;
const sentryDSN = config.sentry.DSN;
const sentryTracesSampleRate = config.sentry.tracesSampleRate;
if (sentryEnabled) {
Sentry.init({
dsn: sentryDSN,
integrations: [
new CaptureConsole({
// ['log', 'info', 'warn', 'error', 'debug', 'assert']
levels: ['warn', 'error'],
}),
],
tracesSampleRate: sentryTracesSampleRate,
});
/*
log.log('test-log');
log.info('test-info');
log.warn('test-warning');
log.warn('test-error');
log.warn('test-debug');
*/
}
// Authenticated IP by Login
let authHost;
@ -258,6 +284,7 @@ async function ngrokStart() {
tunnel: tunnel,
api_docs: api_docs,
mediasoup_version: mediasoup.version,
sentry_enabled: sentryEnabled,
});
} catch (err) {
log.error('Ngrok Start error: ', err);
@ -294,6 +321,7 @@ httpsServer.listen(config.listenPort, () => {
server: host,
api_docs: api_docs,
mediasoup_version: mediasoup.version,
sentry_enabled: sentryEnabled,
});
});
@ -482,7 +510,7 @@ io.on('connection', (socket) => {
const { params } = await roomList.get(socket.room_id).createWebRtcTransport(socket.id);
callback(params);
} catch (err) {
log.error('Create WebRtc Transport error: ', err);
log.error('Create WebRtc Transport error: ', err.message);
callback({
error: err.message,
});

@ -44,6 +44,17 @@ module.exports = {
*/
ngrokAuthToken: '',
apiKeySecret: 'mirotalksfu_default_secret',
sentry: {
/*
Sentry
1. Goto https://sentry.io/
2. Create account
3. On dashboard goto Settings/Projects/YourProjectName/Client Keys (DSN)
*/
enabled: false,
DSN: '',
tracesSampleRate: 0.5,
},
mediasoup: {
// Worker settings
numWorkers: Object.keys(os.cpus()).length,

@ -18,11 +18,13 @@
"dependencies": {
"compression": "1.7.4",
"cors": "2.8.5",
"express": "4.17.2",
"express": "4.17.3",
"httpolyglot": "0.1.2",
"mediasoup": "3.9.6",
"mediasoup-client": "3.6.50",
"ngrok": "4.3.0",
"@sentry/node": "^6.17.9",
"@sentry/integrations": "^6.17.9",
"socket.io": "4.4.1",
"swagger-ui-express": "4.3.0",
"uuid": "8.3.2",

@ -1540,6 +1540,8 @@ function adaptAspectRatio(participantsCount) {
// desktop aspect ratio
switch (participantsCount) {
case 1:
desktop = 0; // (0:0)
break;
case 3:
case 4:
case 7:

Loading…
Cancel
Save