[mirotalksfu] - add sentry
هذا الالتزام موجود في:
@@ -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:
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم