@resolveio/server-lib 12.0.72 → 12.0.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -304,7 +304,7 @@ var MonitorFunction = /** @class */ (function () {
304
304
  _this._maxDiff = diff;
305
305
  }
306
306
  _this._lastTime = new Date();
307
- }, 250);
307
+ }, 1000);
308
308
  }
309
309
  MonitorFunction.prototype.finish = function () {
310
310
  if (this._timer) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":[],"mappings":"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","file":"monitor.manager.js","sourcesContent":["import ResolveIOMainServer from '../server-app';\nimport * as bent from 'bent';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { ResolveIOServer } from '../index';\nimport { deepCopy } from '../util/common';\nimport { objectIdHexString } from './mongo.manager';\nimport * as moment from 'moment';\nconst os = require('os');\n\nexport class MonitorManager {\n\tprivate _mainServer: ResolveIOMainServer;\n\tprivate _serverConfig;\n\tprivate _instanceHostname = '';\n\tprivate _monitorData = [];\n\n\tconstructor(mainServer, serverConfig) {\n\t\tthis._mainServer = mainServer;\n\t\tthis._serverConfig = serverConfig;\n\t\tthis._instanceHostname = os.hostname().replace(/\\./g, '-');\n\n\t\tthis.setupIntervals();\n\t\tthis.setupEventLoop();\n\t}\n\n\t//Create function to get CPU information\n\tcpuAverage() {\n\t\t//Initialise sum of idle and time of cores and fetch CPU info\n\t\tvar totalIdle = 0, totalTick = 0;\n\t\tvar cpus = os.cpus();\n\t\n\t\t//Loop through CPU cores\n\t\tfor(var i = 0, len = cpus.length; i < len; i++) {\n\t\t\t//Select CPU core\n\t\t\tvar cpu = cpus[i];\n\t\t\n\t\t\t//Total up the time in the cores tick\n\t\t\tfor(let type in cpu.times) {\n\t\t\t\ttotalTick += cpu.times[type];\n\t\t\t}\n\t\t\n\t\t\t//Total up the idle time of the core\n\t\t\ttotalIdle += cpu.times.idle;\n\t\t}\n\t\n\t\t//Return the average Idle and Tick times\n\t\treturn {idle: totalIdle / cpus.length, total: totalTick / cpus.length};\n\t}\n\n\tsetupIntervals() {\n\t\tlet lastCPU = this.cpuAverage();\n\t\t\n\t\tsetInterval(() => {\n\t\t\tlet now = new Date();\n\n\t\t\t//Grab second Measure\n\t\t\tvar endMeasure = this.cpuAverage(); \n\n\t\t\t//Calculate the difference in idle and total time between the measures\n\t\t\tvar idleDifference = endMeasure.idle - lastCPU.idle;\n\t\t\tvar totalDifference = endMeasure.total - lastCPU.total;\n\n\t\t\t//Calculate the average percentage CPU usage\n\t\t\tvar percentageCPU = 1 - idleDifference / totalDifference;\n\t\t\t\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com' || this._serverConfig['ROOT_URL'] === 'http://localhost:4200') {\n\t\t\t\tMonitorCPUs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tapp: percentageCPU,\n\t\t\t\t\tsystem: os.loadavg()[0]\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._monitorData.push({\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tapp: percentageCPU,\n\t\t\t\t\tsystem: os.loadavg()[0],\n\t\t\t\t\ttype: 'cpu'\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tlastCPU = endMeasure;\n\n\t\t\tconst memUsage = process.memoryUsage();\n\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com' || this._serverConfig['ROOT_URL'] === 'http://localhost:4200') {\n\t\t\t\tMonitorMemorys.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tphysical_total: memUsage.heapTotal,\n\t\t\t\t\tphysical_used: memUsage.heapUsed,\n\t\t\t\t\tphysical_free: os.freemem(),\n\t\t\t\t\tvirtual: memUsage.rss,\n\t\t\t\t\tprivate: memUsage.external,\n\t\t\t\t\tphysical: os.totalmem()\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._monitorData.push({\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tphysical_total: memUsage.heapTotal,\n\t\t\t\t\tphysical_used: memUsage.heapUsed,\n\t\t\t\t\tphysical_free: os.freemem(),\n\t\t\t\t\tvirtual: memUsage.rss,\n\t\t\t\t\tprivate: memUsage.external,\n\t\t\t\t\tphysical: os.totalmem(),\n\t\t\t\t\ttype: 'memory'\n\t\t\t\t});\n\t\t\t}\n\t\t}, 3000);\n\t}\n\n\t\n\n\taddMongoTracker(data: MongoMonitorModel) {\n\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com' || this._serverConfig['ROOT_URL'] === 'http://localhost:4200') {\n\t\t\tif (!data.collection.startsWith('monitor-')) {\n\t\t\t\tMonitorMongos.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: new Date(data.date),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\tdoc_collection: data.collection,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tquery: data.query\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (this._instanceHostname) {\n\t\t\t\tthis._monitorData.push({\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: new Date(data.date),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\tdoc_collection: data.collection,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tquery: data.query,\n\t\t\t\t\ttype: 'mongo'\n\t\t\t\t});\n\t\t\t}\n\t\t}\t\n\t}\n\n\tsetupEventLoop() {\n\t\tsetTimeout(async () => {\n\t\t\tif (this._monitorData.length) {\n\t\t\t\tconst post = bent('https://backend.resolveio.com', 'POST', 'json', 200);\n\n\t\t\t\tlet monitorData = deepCopy(this._monitorData);\n\t\t\t\tthis._monitorData = [];\n\n\t\t\t\tlet size = JSON.stringify(monitorData).replace(/[\\[\\]\\,\\\"]/g,'').length * 8;\n\n\t\t\t\tif (size < 45000000) { // 50 MB size limit\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst response = await post('/api/monitor', monitorData);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\tif (e.statusCode !== 500 && e.statusCode !== 501 && e.statusCode !== 502 && e.statusCode !== 503 && e.statusCode !== 504) {\n\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e, null, 2));\n\n\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet tmpData = [];\n\t\t\t\t\tfor (let i = 0; i < monitorData.length; i++) {\n\t\t\t\t\t\ttmpData.push(monitorData[i]);\n\t\t\t\t\t\tsize = JSON.stringify(tmpData).replace(/[\\[\\]\\,\\\"]/g,'').length * 8;\n\n\t\t\t\t\t\tif (size > 45000000) {\n\t\t\t\t\t\t\ttmpData.pop();\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst response = await post('/api/monitor', tmpData);\n\n\t\t\t\t\t\t\t\ttmpData = [monitorData[i]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\t\t\tif (e.statusCode !== 500 && e.statusCode !== 501 && e.statusCode !== 502 && e.statusCode !== 503 && e.statusCode !== 504) {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e, null, 2));\n\t\t\n\t\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (tmpData.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst response = await post('/api/monitor', tmpData);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\t\tif (e.statusCode !== 500 && e.statusCode !== 501 && e.statusCode !== 502 && e.statusCode !== 503 && e.statusCode !== 504) {\n\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e, null, 2));\n\t\n\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setupEventLoop();\n\t\t}, 60000);\n\t}\n}\n\nexport interface MongoMonitorModel {\n\tdate: Date, \n\tmethod: string,\n\tcollection: string,\n\tduration: number,\n\tquery: string\n}\n\nexport class MonitorMongo {\n\tprivate _startTime = 0;\n\tprivate _method = '';\n\tprivate _collection = '';\n\tprivate _query = '';\n\n\tconstructor(method: string, collection: string, query: string) {\n\t\tthis._startTime = Date.now();\n\t\tthis._method = method;\n\t\tthis._collection = collection;\n\t\tthis._query = query;\n\t}\n\n\tpublic finish() {\n\t\tlet endTime = Date.now();\n\n\t\tlet mongoMonitor: MongoMonitorModel = {\n\t\t\tdate: new Date(endTime),\n\t\t\tmethod: this._method,\n\t\t\tcollection: this._collection,\n\t\t\tquery: this._query,\n\t\t\tduration: endTime - this._startTime\n\t\t};\n\n\t\tResolveIOServer.getMainServer().getMonitorManager().addMongoTracker(mongoMonitor);\n\t}\n}\n\nexport type MonitorFunctionType = 'Cron Method' | 'Internal Method' | 'Method' | 'User Specific Publication' | 'Publication';\nexport class MonitorFunction {\n\tprivate _timer: NodeJS.Timeout = null;\n\tprivate _lastTime: Date = null;\n\tprivate _maxDiff: number = 0;\n\tprivate _functionType: MonitorFunctionType;\n\tprivate _functionName: string;\n\tprivate _user: string;\n\tprivate _data: any;\n\n\tconstructor(functionType: MonitorFunctionType, functionName: string, user: string, data: any) {\n\t\tthis._lastTime = new Date();\n\t\tthis._functionType = functionType;\n\t\tthis._functionName = functionName;\n\t\tthis._user = user;\n\t\tthis._data = data;\n\n\t\tthis._timer = setInterval(() => {\n\t\t\tlet diff = Date.now() - this._lastTime.getTime();\n\t\t\tif (diff > this._maxDiff) {\n\t\t\t\tthis._maxDiff = diff;\n\t\t\t}\n\n\t\t\tthis._lastTime = new Date();\n\t\t}, 250);\n\t}\n\n\tpublic finish() {\n\t\tif (this._timer) {\n\t\t\tclearInterval(this._timer);\n\t\t\tthis._timer = null;\n\t\t}\n\n\t\tif (this._maxDiff >= 5000) {\n\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getMainServer().getServerConfig()['CLIENT_NAME'] + ' - Slow ' + this._functionType + ' Detected', '', (this._user ? 'User: ' + this._user + '\\n' : '') + this._functionType + ': ' + this._functionName + '\\n' + 'During this function the event loop did not run for ' + this._maxDiff + ' ms (' + this._maxDiff / 1000 + ' sec)' + (this._data ? '\\n\\nData: ' + JSON.stringify(this._data, null, 2) : ''));\n\t\t}\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":[],"mappings":"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","file":"monitor.manager.js","sourcesContent":["import ResolveIOMainServer from '../server-app';\nimport * as bent from 'bent';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { ResolveIOServer } from '../index';\nimport { deepCopy } from '../util/common';\nimport { objectIdHexString } from './mongo.manager';\nimport * as moment from 'moment';\nconst os = require('os');\n\nexport class MonitorManager {\n\tprivate _mainServer: ResolveIOMainServer;\n\tprivate _serverConfig;\n\tprivate _instanceHostname = '';\n\tprivate _monitorData = [];\n\n\tconstructor(mainServer, serverConfig) {\n\t\tthis._mainServer = mainServer;\n\t\tthis._serverConfig = serverConfig;\n\t\tthis._instanceHostname = os.hostname().replace(/\\./g, '-');\n\n\t\tthis.setupIntervals();\n\t\tthis.setupEventLoop();\n\t}\n\n\t//Create function to get CPU information\n\tcpuAverage() {\n\t\t//Initialise sum of idle and time of cores and fetch CPU info\n\t\tvar totalIdle = 0, totalTick = 0;\n\t\tvar cpus = os.cpus();\n\t\n\t\t//Loop through CPU cores\n\t\tfor(var i = 0, len = cpus.length; i < len; i++) {\n\t\t\t//Select CPU core\n\t\t\tvar cpu = cpus[i];\n\t\t\n\t\t\t//Total up the time in the cores tick\n\t\t\tfor(let type in cpu.times) {\n\t\t\t\ttotalTick += cpu.times[type];\n\t\t\t}\n\t\t\n\t\t\t//Total up the idle time of the core\n\t\t\ttotalIdle += cpu.times.idle;\n\t\t}\n\t\n\t\t//Return the average Idle and Tick times\n\t\treturn {idle: totalIdle / cpus.length, total: totalTick / cpus.length};\n\t}\n\n\tsetupIntervals() {\n\t\tlet lastCPU = this.cpuAverage();\n\t\t\n\t\tsetInterval(() => {\n\t\t\tlet now = new Date();\n\n\t\t\t//Grab second Measure\n\t\t\tvar endMeasure = this.cpuAverage(); \n\n\t\t\t//Calculate the difference in idle and total time between the measures\n\t\t\tvar idleDifference = endMeasure.idle - lastCPU.idle;\n\t\t\tvar totalDifference = endMeasure.total - lastCPU.total;\n\n\t\t\t//Calculate the average percentage CPU usage\n\t\t\tvar percentageCPU = 1 - idleDifference / totalDifference;\n\t\t\t\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com' || this._serverConfig['ROOT_URL'] === 'http://localhost:4200') {\n\t\t\t\tMonitorCPUs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tapp: percentageCPU,\n\t\t\t\t\tsystem: os.loadavg()[0]\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._monitorData.push({\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tapp: percentageCPU,\n\t\t\t\t\tsystem: os.loadavg()[0],\n\t\t\t\t\ttype: 'cpu'\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tlastCPU = endMeasure;\n\n\t\t\tconst memUsage = process.memoryUsage();\n\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com' || this._serverConfig['ROOT_URL'] === 'http://localhost:4200') {\n\t\t\t\tMonitorMemorys.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tphysical_total: memUsage.heapTotal,\n\t\t\t\t\tphysical_used: memUsage.heapUsed,\n\t\t\t\t\tphysical_free: os.freemem(),\n\t\t\t\t\tvirtual: memUsage.rss,\n\t\t\t\t\tprivate: memUsage.external,\n\t\t\t\t\tphysical: os.totalmem()\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._monitorData.push({\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: now,\n\t\t\t\t\tphysical_total: memUsage.heapTotal,\n\t\t\t\t\tphysical_used: memUsage.heapUsed,\n\t\t\t\t\tphysical_free: os.freemem(),\n\t\t\t\t\tvirtual: memUsage.rss,\n\t\t\t\t\tprivate: memUsage.external,\n\t\t\t\t\tphysical: os.totalmem(),\n\t\t\t\t\ttype: 'memory'\n\t\t\t\t});\n\t\t\t}\n\t\t}, 3000);\n\t}\n\n\t\n\n\taddMongoTracker(data: MongoMonitorModel) {\n\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com' || this._serverConfig['ROOT_URL'] === 'http://localhost:4200') {\n\t\t\tif (!data.collection.startsWith('monitor-')) {\n\t\t\t\tMonitorMongos.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: new Date(data.date),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\tdoc_collection: data.collection,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tquery: data.query\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (this._instanceHostname) {\n\t\t\t\tthis._monitorData.push({\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME']\n\t\t\t\t\t},\n\t\t\t\t\tdate: new Date(data.date),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\tdoc_collection: data.collection,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tquery: data.query,\n\t\t\t\t\ttype: 'mongo'\n\t\t\t\t});\n\t\t\t}\n\t\t}\t\n\t}\n\n\tsetupEventLoop() {\n\t\tsetTimeout(async () => {\n\t\t\tif (this._monitorData.length) {\n\t\t\t\tconst post = bent('https://backend.resolveio.com', 'POST', 'json', 200);\n\n\t\t\t\tlet monitorData = deepCopy(this._monitorData);\n\t\t\t\tthis._monitorData = [];\n\n\t\t\t\tlet size = JSON.stringify(monitorData).replace(/[\\[\\]\\,\\\"]/g,'').length * 8;\n\n\t\t\t\tif (size < 45000000) { // 50 MB size limit\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst response = await post('/api/monitor', monitorData);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\tif (e.statusCode !== 500 && e.statusCode !== 501 && e.statusCode !== 502 && e.statusCode !== 503 && e.statusCode !== 504) {\n\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e, null, 2));\n\n\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet tmpData = [];\n\t\t\t\t\tfor (let i = 0; i < monitorData.length; i++) {\n\t\t\t\t\t\ttmpData.push(monitorData[i]);\n\t\t\t\t\t\tsize = JSON.stringify(tmpData).replace(/[\\[\\]\\,\\\"]/g,'').length * 8;\n\n\t\t\t\t\t\tif (size > 45000000) {\n\t\t\t\t\t\t\ttmpData.pop();\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst response = await post('/api/monitor', tmpData);\n\n\t\t\t\t\t\t\t\ttmpData = [monitorData[i]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\t\t\tif (e.statusCode !== 500 && e.statusCode !== 501 && e.statusCode !== 502 && e.statusCode !== 503 && e.statusCode !== 504) {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e, null, 2));\n\t\t\n\t\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (tmpData.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst response = await post('/api/monitor', tmpData);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\t\tif (e.statusCode !== 500 && e.statusCode !== 501 && e.statusCode !== 502 && e.statusCode !== 503 && e.statusCode !== 504) {\n\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e, null, 2));\n\t\n\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setupEventLoop();\n\t\t}, 60000);\n\t}\n}\n\nexport interface MongoMonitorModel {\n\tdate: Date, \n\tmethod: string,\n\tcollection: string,\n\tduration: number,\n\tquery: string\n}\n\nexport class MonitorMongo {\n\tprivate _startTime = 0;\n\tprivate _method = '';\n\tprivate _collection = '';\n\tprivate _query = '';\n\n\tconstructor(method: string, collection: string, query: string) {\n\t\tthis._startTime = Date.now();\n\t\tthis._method = method;\n\t\tthis._collection = collection;\n\t\tthis._query = query;\n\t}\n\n\tpublic finish() {\n\t\tlet endTime = Date.now();\n\n\t\tlet mongoMonitor: MongoMonitorModel = {\n\t\t\tdate: new Date(endTime),\n\t\t\tmethod: this._method,\n\t\t\tcollection: this._collection,\n\t\t\tquery: this._query,\n\t\t\tduration: endTime - this._startTime\n\t\t};\n\n\t\tResolveIOServer.getMainServer().getMonitorManager().addMongoTracker(mongoMonitor);\n\t}\n}\n\nexport type MonitorFunctionType = 'Cron Method' | 'Internal Method' | 'Method' | 'User Specific Publication' | 'Publication';\nexport class MonitorFunction {\n\tprivate _timer: NodeJS.Timeout = null;\n\tprivate _lastTime: Date = null;\n\tprivate _maxDiff: number = 0;\n\tprivate _functionType: MonitorFunctionType;\n\tprivate _functionName: string;\n\tprivate _user: string;\n\tprivate _data: any;\n\n\tconstructor(functionType: MonitorFunctionType, functionName: string, user: string, data: any) {\n\t\tthis._lastTime = new Date();\n\t\tthis._functionType = functionType;\n\t\tthis._functionName = functionName;\n\t\tthis._user = user;\n\t\tthis._data = data;\n\n\t\tthis._timer = setInterval(() => {\n\t\t\tlet diff = Date.now() - this._lastTime.getTime();\n\t\t\tif (diff > this._maxDiff) {\n\t\t\t\tthis._maxDiff = diff;\n\t\t\t}\n\n\t\t\tthis._lastTime = new Date();\n\t\t}, 1000);\n\t}\n\n\tpublic finish() {\n\t\tif (this._timer) {\n\t\t\tclearInterval(this._timer);\n\t\t\tthis._timer = null;\n\t\t}\n\n\t\tif (this._maxDiff >= 5000) {\n\t\t\tResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getMainServer().getServerConfig()['CLIENT_NAME'] + ' - Slow ' + this._functionType + ' Detected', '', (this._user ? 'User: ' + this._user + '\\n' : '') + this._functionType + ': ' + this._functionName + '\\n' + 'During this function the event loop did not run for ' + this._maxDiff + ' ms (' + this._maxDiff / 1000 + ' sec)' + (this._data ? '\\n\\nData: ' + JSON.stringify(this._data, null, 2) : ''));\n\t\t}\n\t}\n}"]}
@@ -65,6 +65,8 @@ var common_1 = require("../util/common");
65
65
  var NodeCache = require("node-cache");
66
66
  var monitor_manager_1 = require("./monitor.manager");
67
67
  var flag_collection_1 = require("../collections/flag.collection");
68
+ var os_1 = require("os");
69
+ var numCPUs = os_1.cpus().length;
68
70
  var v8 = require('v8');
69
71
  // interface CurrentPerformanceMonitor {
70
72
  // _id: number;
@@ -91,7 +93,7 @@ var SubscriptionManager = /** @class */ (function () {
91
93
  this._runningQueue = false;
92
94
  this._cacheId = 1;
93
95
  this._heapStats = v8.getHeapStatistics();
94
- this._heapLimit = 0;
96
+ this._heapLimit = this._heapStats.heap_size_limit / numCPUs / 8;
95
97
  this._enableDebug = false;
96
98
  this._debugOplogCollections = [];
97
99
  this._debugOplogHits = 0;
@@ -105,7 +107,6 @@ var SubscriptionManager = /** @class */ (function () {
105
107
  this._debugRemoveCacheHits = 0;
106
108
  this._mainServer = mainServer;
107
109
  this._nodeCache = new NodeCache({ stdTTL: 0, checkperiod: 0 });
108
- this._heapLimit = this._heapStats.heap_size_limit / 8;
109
110
  // setTimeout(() => {
110
111
  // console.log('Setting up performance thread');
111
112
  // this.performanceThread = new Worker(path.join(__dirname, './subscription.performance.js'));
@@ -182,7 +183,9 @@ var SubscriptionManager = /** @class */ (function () {
182
183
  ws.send(JSON.stringify(sendItem.data), function (error) {
183
184
  if (error) {
184
185
  console.log('Error on WS: ', error);
185
- console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 1);
186
+ if (_this.getEnableDebug()) {
187
+ console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 1);
188
+ }
186
189
  _this.unsubscribeAll(ws);
187
190
  }
188
191
  });
@@ -308,7 +311,9 @@ var SubscriptionManager = /** @class */ (function () {
308
311
  var loggedInUser = userCopy[i];
309
312
  if (!loggedInUser.date || Date.now() - loggedInUser.date.getTime() > 120000) {
310
313
  if (this_3._mainServer.getWS(loggedInUser.id_ws)) {
311
- console.log(new Date(), 'Sub Manager', 'Unsub WS', this_3._mainServer.getWS(loggedInUser.id_ws)['user'], this_3._mainServer.getWS(loggedInUser.id_ws)['id_socket'], 2);
314
+ if (this_3.getEnableDebug()) {
315
+ console.log(new Date(), 'Sub Manager', 'Unsub WS', this_3._mainServer.getWS(loggedInUser.id_ws)['user'], this_3._mainServer.getWS(loggedInUser.id_ws)['id_socket'], 2);
316
+ }
312
317
  this_3.unsubscribeAll(this_3._mainServer.getWS(loggedInUser.id_ws));
313
318
  }
314
319
  else {
@@ -448,11 +453,15 @@ var SubscriptionManager = /** @class */ (function () {
448
453
  logged_in_users_collection_1.LoggedInUsers.updateOne({ id_ws: ws['id_socket'] }, { $set: { latency: ws['latency'], date: loggedInUser.date } }).then(function (res) {
449
454
  if (!res) {
450
455
  _this.unsubscribeAll(ws);
451
- console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 3);
456
+ if (_this.getEnableDebug()) {
457
+ console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 3);
458
+ }
452
459
  }
453
460
  }, function () {
454
461
  _this.unsubscribeAll(ws);
455
- console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 4);
462
+ if (_this.getEnableDebug()) {
463
+ console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 4);
464
+ }
456
465
  });
457
466
  }
458
467
  };
@@ -611,7 +620,9 @@ var SubscriptionManager = /** @class */ (function () {
611
620
  }
612
621
  else {
613
622
  this.unsubscribeAll(ws);
614
- console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 5);
623
+ if (this.getEnableDebug()) {
624
+ console.log(new Date(), 'Sub Manager', 'Unsub WS', ws['user'], ws['id_socket'], 5);
625
+ }
615
626
  }
616
627
  }
617
628
  };