@resolveio/server-lib 20.11.8 → 20.11.9
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.
- package/client-server-app.js +2 -2
- package/collections/app-status.collection.js.map +1 -1
- package/collections/counter.collection.js.map +1 -1
- package/collections/cron-job-history.collection.js +2 -2
- package/collections/cron-job-history.collection.js.map +1 -1
- package/collections/cron-job.collection.js.map +1 -1
- package/collections/email-history.collection.js.map +1 -1
- package/collections/email-verified.collection.js.map +1 -1
- package/collections/file.collection.js.map +1 -1
- package/collections/flag-update.collection.js.map +1 -1
- package/collections/flag.collection.js.map +1 -1
- package/collections/log-method-latency.collection.js.map +1 -1
- package/collections/log-subscription.collection.js.map +1 -1
- package/collections/log.collection.js.map +1 -1
- package/collections/logged-in-users.collection.js.map +1 -1
- package/collections/monitor-cpu.collection.js.map +1 -1
- package/collections/monitor-function.collection.js.map +1 -1
- package/collections/monitor-memory.collection.js.map +1 -1
- package/collections/monitor-mongo.collection.js.map +1 -1
- package/collections/notification.collection.js.map +1 -1
- package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
- package/collections/report-builder-library.collection.js.map +1 -1
- package/collections/report-builder-report.collection.js.map +1 -1
- package/collections/user-group.collection.js.map +1 -1
- package/collections/user-guide.collection.js.map +1 -1
- package/collections/user.collection.js.map +1 -1
- package/cron/cron.d.ts +5 -5
- package/cron/cron.js +169 -51
- package/cron/cron.js.map +1 -1
- package/fixtures/cron-jobs.js +3 -4
- package/fixtures/cron-jobs.js.map +1 -1
- package/fixtures/init.js +3 -4
- package/fixtures/init.js.map +1 -1
- package/http/auth.js +13 -14
- package/http/auth.js.map +1 -1
- package/http/health.js +3 -4
- package/http/health.js.map +1 -1
- package/http/home.js +5 -6
- package/http/home.js.map +1 -1
- package/managers/cron.manager.js +95 -59
- package/managers/cron.manager.js.map +1 -1
- package/managers/local-log.manager.js.map +1 -1
- package/managers/method.manager.js +12 -12
- package/managers/method.manager.js.map +1 -1
- package/managers/mongo.manager.d.ts +6 -7
- package/managers/mongo.manager.js +129 -129
- package/managers/mongo.manager.js.map +1 -1
- package/managers/monitor.manager.js +2 -2
- package/managers/monitor.manager.js.map +1 -1
- package/managers/subscription.manager.js +20 -20
- package/managers/subscription.manager.js.map +1 -1
- package/managers/websocket.manager.js.map +1 -1
- package/managers/worker-dispatcher.manager.js.map +1 -1
- package/managers/worker-server.manager.js +6 -6
- package/managers/worker-server.manager.js.map +1 -1
- package/methods/accounts.js +7 -8
- package/methods/accounts.js.map +1 -1
- package/methods/aws.js +3 -4
- package/methods/aws.js.map +1 -1
- package/methods/collections.js +3 -4
- package/methods/collections.js.map +1 -1
- package/methods/counters.js +3 -4
- package/methods/counters.js.map +1 -1
- package/methods/cron-jobs.js +4 -5
- package/methods/cron-jobs.js.map +1 -1
- package/methods/flag-updates.js +1 -2
- package/methods/flag-updates.js.map +1 -1
- package/methods/flags.js +1 -2
- package/methods/flags.js.map +1 -1
- package/methods/logs.js +4 -5
- package/methods/logs.js.map +1 -1
- package/methods/monitor.js +3 -4
- package/methods/monitor.js.map +1 -1
- package/methods/pdf.js +30 -31
- package/methods/pdf.js.map +1 -1
- package/methods/report-builder.js +16 -17
- package/methods/report-builder.js.map +1 -1
- package/methods/support.js +3 -4
- package/methods/support.js.map +1 -1
- package/package.json +57 -59
- package/private/images/ResolveIO.png +0 -0
- package/publications/app-status.js +1 -2
- package/publications/app-status.js.map +1 -1
- package/publications/cron-jobs.js +1 -2
- package/publications/cron-jobs.js.map +1 -1
- package/publications/files.js +1 -2
- package/publications/files.js.map +1 -1
- package/publications/flags-update.js +1 -2
- package/publications/flags-update.js.map +1 -1
- package/publications/flags.js +1 -2
- package/publications/flags.js.map +1 -1
- package/publications/logs.js +1 -2
- package/publications/logs.js.map +1 -1
- package/publications/notifications.js +1 -2
- package/publications/notifications.js.map +1 -1
- package/publications/report-builder-dashboard-builders.js +1 -2
- package/publications/report-builder-dashboard-builders.js.map +1 -1
- package/publications/report-builder-libraries.js +3 -4
- package/publications/report-builder-libraries.js.map +1 -1
- package/publications/report-builder-reports.js +1 -2
- package/publications/report-builder-reports.js.map +1 -1
- package/publications/super-admin.js +1 -2
- package/publications/super-admin.js.map +1 -1
- package/publications/user-groups.js +1 -2
- package/publications/user-groups.js.map +1 -1
- package/publications/user-guides.js +1 -2
- package/publications/user-guides.js.map +1 -1
- package/resolveio-server-app.js +10 -10
- package/resolveio-server-app.js.map +1 -1
- package/server-app.d.ts +0 -1
- package/server-app.js +18 -10
- package/server-app.js.map +1 -1
- package/util/common.js +24 -25
- package/util/common.js.map +1 -1
- package/util/error-reporter.js +3 -3
- package/util/error-reporter.js.map +1 -1
- package/util/error-tracking.js +7 -8
- package/util/error-tracking.js.map +1 -1
- package/util/schema-report-builder.js +7 -8
- package/util/schema-report-builder.js.map +1 -1
- package/util/subscription-dependency-context.js +5 -6
- package/util/subscription-dependency-context.js.map +1 -1
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g =
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":[],"mappings":"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","file":"monitor.manager.js","sourcesContent":["import axios from 'axios';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorFunctions } from '../collections/monitor-function.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\nimport { LocalLogModel } from './local-log.manager';\n\nconst os = require('os');\nconst MAX_BATCH_SIZE = 8 * 1024 * 1024; // 8MB max for safety\n\nexport class MonitorManager {\n\tprivate _instanceHostname = '';\n\tprivate _monitorData: LocalLogModel[] = [];\n\n\tconstructor() {}\n\n\tstatic async create() {\n\t\tconst monitorManager = new MonitorManager();\n\t\tawait monitorManager.initialize();\n\t\treturn monitorManager;\n\t}\n\n\tprivate async initialize() {\n\t\tthis._instanceHostname = os.hostname().replace(/\\./g, '-');\n\t\tawait this.setupIntervals();\n\t\tthis.setupEventLoop();\n\t}\n\n\tcpuAverage() {\n\t\tvar totalIdle = 0, totalTick = 0;\n\t\tvar cpus = os.cpus();\n\n\t\tfor (var i = 0, len = cpus.length; i < len; i++) {\n\t\t\tvar cpu = cpus[i];\n\n\t\t\tfor (let type in cpu.times) {\n\t\t\t\ttotalTick += cpu.times[type];\n\t\t\t}\n\t\t\ttotalIdle += cpu.times.idle;\n\t\t}\n\n\t\treturn {\n\t\t\tidle: totalIdle / cpus.length,\n\t\t\ttotal: totalTick / cpus.length\n\t\t};\n\t}\n\n\tasync setupIntervals() {\n\t\t// Example: If not on production or localhost, do a health check\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t) {\n\t\t\ttry {\n\t\t\t\tlet instanceId = await axios.get('http://169.254.169.254/latest/meta-data/instance-id');\n\n\t\t\t\tsetInterval(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait axios.post('https://backend.resolveio.com/api/health', {\n\t\t\t\t\t\t\ttype: 'application',\n\t\t\t\t\t\t\tid_aws_instance: instanceId.data,\n\t\t\t\t\t\t\tversion: typeof process.env.APP_VERSION === 'number'\n\t\t\t\t\t\t\t\t? (<any>process.env.APP_VERSION).toString()\n\t\t\t\t\t\t\t\t: process.env.APP_VERSION,\n\t\t\t\t\t\t\tversion_key: process.env.APP_VERSION_KEY\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tcatch {}\n\t\t\t\t}, 10000);\n\t\t\t}\n\t\t\tcatch {}\n\t\t}\n\n\t\tlet lastCPU = this.cpuAverage();\n\n\t\tsetInterval(async () => {\n\t\t\tlet now = new Date();\n\t\t\tvar endMeasure = this.cpuAverage();\n\t\t\tvar idleDifference = endMeasure.idle - lastCPU.idle;\n\t\t\tvar totalDifference = endMeasure.total - lastCPU.total;\n\t\t\tvar percentageCPU = 1 - idleDifference / totalDifference;\n\n\t\t\t// Original local code\n\t\t\tif (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tawait MonitorCPUs.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: ResolveIOServer.getServerConfig()['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.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-cpu',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: now,\n\t\t\t\t\t\tapp: percentageCPU,\n\t\t\t\t\t\tsystem: os.loadavg()[0]\n\t\t\t\t\t}\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 (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tawait MonitorMemorys.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: ResolveIOServer.getServerConfig()['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.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-memory',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: now,\n\t\t\t\t\t\tphysical_total: memUsage.heapTotal,\n\t\t\t\t\t\tphysical_used: memUsage.heapUsed,\n\t\t\t\t\t\tphysical_free: os.freemem(),\n\t\t\t\t\t\tvirtual: memUsage.rss,\n\t\t\t\t\t\tprivate: memUsage.external,\n\t\t\t\t\t\tphysical: os.totalmem(),\n\t\t\t\t\t\ttype: 'memory'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, 3000);\n\t}\n\n\tasync addMongoTracker(data: MongoMonitorModel) {\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t) {\n\t\t\tif (!data.collection.startsWith('monitor-')) {\n\t\t\t\tawait MonitorMongos.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: ResolveIOServer.getServerConfig()['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: Buffer.byteLength(data.query, 'utf8') < 15800000\n\t\t\t\t\t\t? data.query\n\t\t\t\t\t\t: 'Too Big'\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.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-mongo',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: new Date(data.date),\n\t\t\t\t\t\tmethod: data.method,\n\t\t\t\t\t\tdoc_collection: data.collection,\n\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\tquery: Buffer.byteLength(data.query, 'utf8') < 15800000\n\t\t\t\t\t\t\t? data.query\n\t\t\t\t\t\t\t: 'Too Big'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync addFunctionTracker(data: MonitorFunction) {\n\t\tif (typeof(data.data) !== 'string') {\n\t\t\tdata.data = JSON.stringify(data.data);\n\t\t}\n\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t) {\n\t\t\tawait MonitorFunctions.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\tmetadata: {\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t},\n\t\t\t\tdate: new Date(data.startTime),\n\t\t\t\ttype: data.functionType,\n\t\t\t\tname: data.functionName,\n\t\t\t\tuser: data.user,\n\t\t\t\tduration: data.duration,\n\t\t\t\tdata: Buffer.byteLength(data.data, 'utf8') < 15800000\n\t\t\t\t\t? data.data\n\t\t\t\t\t: 'Too Big'\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tif (this._instanceHostname) {\n\t\t\t\tthis.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-function',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: new Date(data.startTime),\n\t\t\t\t\t\ttype: data.functionType,\n\t\t\t\t\t\tname: data.functionName,\n\t\t\t\t\t\tuser: data.user,\n\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\tdata: Buffer.byteLength(data.data, 'utf8') < 15800000\n\t\t\t\t\t\t\t? data.data\n\t\t\t\t\t\t\t: 'Too Big'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate pushMonitorData(data: LocalLogModel) {\n\t\tthis._monitorData.push(data);\n\n\t\t// If data is huge, flush immediately to file\n\t\tif (this.estimateBatchSize() >= MAX_BATCH_SIZE) {\n\t\t\tthis.flushMonitorData();\n\t\t}\n\t}\n\n\tprivate estimateBatchSize(): number {\n\t\treturn this._monitorData.reduce((total, item) => {\n\t\t\treturn total + Buffer.byteLength(JSON.stringify(item));\n\t\t}, 0);\n\t}\n\n\tsetupEventLoop() {\n\t\t// Flush every 2.5 seconds\n\t\tsetInterval(() => {\n\t\t\tif (this._monitorData.length > 0) {\n\t\t\t\tthis.flushMonitorData();\n\t\t\t}\n\t\t}, 2500);\n\t}\n\n\tprivate flushMonitorData() {\n\t\tconst batch = [];\n\t\tlet batchSize = 0;\n\n\t\twhile (this._monitorData.length > 0 && batchSize < MAX_BATCH_SIZE) {\n\t\t\tconst item = this._monitorData.shift();\n\t\t\tconst itemSize = Buffer.byteLength(JSON.stringify(item));\n\n\t\t\tif ((batchSize + itemSize) > MAX_BATCH_SIZE && batch.length > 0) {\n\t\t\t\t// put the item back for next round\n\t\t\t\tthis._monitorData.unshift(item);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbatch.push(item);\n\t\t\tbatchSize += itemSize;\n\t\t}\n\n\t\ttry {\n\t\t\t// Now, instead of calling an external HTTP endpoint, we write the batch to disk:\n\t\t\tResolveIOServer.getLocalLogManager().writeLogs(batch);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconsole.error(new Date(), 'MonitorManager', 'Failed to flush monitor data to file:', error);\n\t\t}\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() {}\n\n\tstatic create(method: string, collection: string, query: string) {\n\t\tconst monitorMongo = new MonitorMongo();\n\t\tmonitorMongo.initialize(method, collection, query);\n\t\treturn monitorMongo;\n\t}\n\n\tprivate initialize(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 async 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\tawait ResolveIOServer.getMainServer().getMonitorManager().addMongoTracker(mongoMonitor);\n\t}\n}\n\nexport class MonitorManagerFunction {\n\tprivate _functionCnt = 0;\n\tprivate _functions: MonitorFunction[] = [];\n\tprivate _functionLastCompletedWS: { [id_socket: string]: MonitorFunction; } = {};\n\tprivate _functionLastCompleted: MonitorFunction;\n\n\tconstructor() {}\n\n\tstatic create() {\n\t\tconst monitorManagerFunction = new MonitorManagerFunction();\n\t\tmonitorManagerFunction.initialize();\n\t\treturn monitorManagerFunction;\n\t}\n\n\tprivate initialize() {\n\n\t}\n\n\tstartMonitorFunction(\n\t\tfunctionType: MonitorFunctionType,\n\t\tfunctionName: string,\n\t\tuser: string,\n\t\tid_socket: string,\n\t\tdata: any\n\t) {\n\t\tlet newMonitorFunction = MonitorFunction.create(\n\t\t\tthis._functionCnt++,\n\t\t\tfunctionType,\n\t\t\tfunctionName,\n\t\t\tuser,\n\t\t\tid_socket,\n\t\t\tdata\n\t\t);\n\n\t\tthis._functions.push(newMonitorFunction);\n\t\treturn newMonitorFunction.id;\n\t}\n\n\tasync finishMonitorFunction(id: number) {\n\t\tlet monitor = this._functions.find(a => a.id === id);\n\n\t\tif (monitor) {\n\t\t\tawait monitor.finish();\n\t\t\tthis._functionLastCompleted = monitor;\n\t\t\tthis._functionLastCompletedWS[monitor.id_socket] = monitor;\n\t\t\tthis._functions.splice(\n\t\t\t\tthis._functions.map(a => a.id).indexOf(id),\n\t\t\t\t1\n\t\t\t);\n\t\t}\n\t}\n\n\tgetActiveMonitorFunctions() {\n\t\treturn this._functions;\n\t}\n\n\tgetLastCompletedMonitorFunction() {\n\t\treturn this._functionLastCompleted;\n\t}\n\n\tgetLastCompletedMonitorFunctionWS() {\n\t\treturn this._functionLastCompletedWS;\n\t}\n}\n\nexport type MonitorFunctionType =\n\t'Cron Method'\n\t| 'Method'\n\t| 'User Specific Publication'\n\t| 'Publication';\n\nexport class MonitorFunction {\n\tprivate _timer: NodeJS.Timeout = null;\n\tpublic duration = 0;\n\tpublic functionType: MonitorFunctionType;\n\tpublic functionName: string;\n\tpublic user: string;\n\tpublic data: any;\n\tpublic startTime: Date = null;\n\tpublic endTime: Date = null;\n\tpublic lastTime: Date = null;\n\tpublic id_socket = '';\n\tpublic id = 0;\n\n\tconstructor() {}\n\n\tstatic create(\n\t\tid: number,\n\t\tfunctionType: MonitorFunctionType,\n\t\tfunctionName: string,\n\t\tuser: string,\n\t\tid_socket: string,\n\t\tdata: any\n\t) {\n\t\tconst monitorFunction = new MonitorFunction();\n\t\tmonitorFunction.initialize(id, functionType, functionName, user, id_socket, data);\n\t\treturn monitorFunction;\n\t}\n\n\tprivate initialize(\n\t\tid: number,\n\t\tfunctionType: MonitorFunctionType,\n\t\tfunctionName: string,\n\t\tuser: string,\n\t\tid_socket: string,\n\t\tdata: any\n\t) {\n\t\tthis.id = id;\n\t\tthis.startTime = new Date();\n\t\tthis.functionType = functionType;\n\t\tthis.functionName = functionName;\n\t\tthis.user = user;\n\t\tthis.id_socket = id_socket;\n\t\tthis.data = data;\n\t\tthis.lastTime = new Date();\n\n\t\tthis._timer = setInterval(() => {\n\t\t\tlet diff = Date.now() - this.lastTime.getTime();\n\n\t\t\tif (diff > this.duration) {\n\t\t\t\tthis.duration = diff;\n\t\t\t}\n\n\t\t\tthis.lastTime = new Date();\n\t\t}, 1000);\n\t}\n\n\tpublic async finish() {\n\t\tif (this._timer) {\n\t\t\tclearInterval(this._timer);\n\t\t\tthis._timer = null;\n\t\t}\n\n\t\tthis.endTime = new Date();\n\n\t\tif (this.duration >= 5000) {\n\t\t\t// Optional slow function logging or email\n\t\t\tawait ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);\n\t\t}\n\n\t\t// await ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);\n\n\t\treturn Promise.resolve(true);\n\t}\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":[],"mappings":"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","file":"monitor.manager.js","sourcesContent":["import axios from 'axios';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorFunctions } from '../collections/monitor-function.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\nimport { LocalLogModel } from './local-log.manager';\n\nconst os = require('os');\nconst MAX_BATCH_SIZE = 8 * 1024 * 1024; // 8MB max for safety\n\nexport class MonitorManager {\n\tprivate _instanceHostname = '';\n\tprivate _monitorData: LocalLogModel[] = [];\n\n\tconstructor() {}\n\n\tstatic async create() {\n\t\tconst monitorManager = new MonitorManager();\n\t\tawait monitorManager.initialize();\n\t\treturn monitorManager;\n\t}\n\n\tprivate async initialize() {\n\t\tthis._instanceHostname = os.hostname().replace(/\\./g, '-');\n\t\tawait this.setupIntervals();\n\t\tthis.setupEventLoop();\n\t}\n\n\tcpuAverage() {\n\t\tvar totalIdle = 0, totalTick = 0;\n\t\tvar cpus = os.cpus();\n\n\t\tfor (var i = 0, len = cpus.length; i < len; i++) {\n\t\t\tvar cpu = cpus[i];\n\n\t\t\tfor (let type in cpu.times) {\n\t\t\t\ttotalTick += cpu.times[type];\n\t\t\t}\n\t\t\ttotalIdle += cpu.times.idle;\n\t\t}\n\n\t\treturn {\n\t\t\tidle: totalIdle / cpus.length,\n\t\t\ttotal: totalTick / cpus.length\n\t\t};\n\t}\n\n\tasync setupIntervals() {\n\t\t// Example: If not on production or localhost, do a health check\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t) {\n\t\t\ttry {\n\t\t\t\tlet instanceId = await axios.get('http://169.254.169.254/latest/meta-data/instance-id');\n\n\t\t\t\tsetInterval(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait axios.post('https://backend.resolveio.com/api/health', {\n\t\t\t\t\t\t\ttype: 'application',\n\t\t\t\t\t\t\tid_aws_instance: instanceId.data,\n\t\t\t\t\t\t\tversion: typeof process.env.APP_VERSION === 'number'\n\t\t\t\t\t\t\t\t? (<any>process.env.APP_VERSION).toString()\n\t\t\t\t\t\t\t\t: process.env.APP_VERSION,\n\t\t\t\t\t\t\tversion_key: process.env.APP_VERSION_KEY\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tcatch {}\n\t\t\t\t}, 10000);\n\t\t\t}\n\t\t\tcatch {}\n\t\t}\n\n\t\tlet lastCPU = this.cpuAverage();\n\n\t\tsetInterval(async () => {\n\t\t\tlet now = new Date();\n\t\t\tvar endMeasure = this.cpuAverage();\n\t\t\tvar idleDifference = endMeasure.idle - lastCPU.idle;\n\t\t\tvar totalDifference = endMeasure.total - lastCPU.total;\n\t\t\tvar percentageCPU = 1 - idleDifference / totalDifference;\n\n\t\t\t// Original local code\n\t\t\tif (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tawait MonitorCPUs.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: ResolveIOServer.getServerConfig()['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.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-cpu',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: now,\n\t\t\t\t\t\tapp: percentageCPU,\n\t\t\t\t\t\tsystem: os.loadavg()[0]\n\t\t\t\t\t}\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 (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tawait MonitorMemorys.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: ResolveIOServer.getServerConfig()['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.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-memory',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: now,\n\t\t\t\t\t\tphysical_total: memUsage.heapTotal,\n\t\t\t\t\t\tphysical_used: memUsage.heapUsed,\n\t\t\t\t\t\tphysical_free: os.freemem(),\n\t\t\t\t\t\tvirtual: memUsage.rss,\n\t\t\t\t\t\tprivate: memUsage.external,\n\t\t\t\t\t\tphysical: os.totalmem(),\n\t\t\t\t\t\ttype: 'memory'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, 3000);\n\t}\n\n\tasync addMongoTracker(data: MongoMonitorModel) {\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t) {\n\t\t\tif (!data.collection.startsWith('monitor-')) {\n\t\t\t\tawait MonitorMongos.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: ResolveIOServer.getServerConfig()['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: Buffer.byteLength(data.query, 'utf8') < 15800000\n\t\t\t\t\t\t? data.query\n\t\t\t\t\t\t: 'Too Big'\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.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-mongo',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: new Date(data.date),\n\t\t\t\t\t\tmethod: data.method,\n\t\t\t\t\t\tdoc_collection: data.collection,\n\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\tquery: Buffer.byteLength(data.query, 'utf8') < 15800000\n\t\t\t\t\t\t\t? data.query\n\t\t\t\t\t\t\t: 'Too Big'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync addFunctionTracker(data: MonitorFunction) {\n\t\tif (typeof(data.data) !== 'string') {\n\t\t\tdata.data = JSON.stringify(data.data);\n\t\t}\n\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'https://resolveio.com'\n\t\t\t|| ResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200'\n\t\t) {\n\t\t\tawait MonitorFunctions.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\tmetadata: {\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t},\n\t\t\t\tdate: new Date(data.startTime),\n\t\t\t\ttype: data.functionType,\n\t\t\t\tname: data.functionName,\n\t\t\t\tuser: data.user,\n\t\t\t\tduration: data.duration,\n\t\t\t\tdata: Buffer.byteLength(data.data, 'utf8') < 15800000\n\t\t\t\t\t? data.data\n\t\t\t\t\t: 'Too Big'\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tif (this._instanceHostname) {\n\t\t\t\tthis.pushMonitorData({\n\t\t\t\t\ttype: 'monitor-function',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: ResolveIOServer.getServerConfig()['CLIENT_NAME']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdate: new Date(data.startTime),\n\t\t\t\t\t\ttype: data.functionType,\n\t\t\t\t\t\tname: data.functionName,\n\t\t\t\t\t\tuser: data.user,\n\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\tdata: Buffer.byteLength(data.data, 'utf8') < 15800000\n\t\t\t\t\t\t\t? data.data\n\t\t\t\t\t\t\t: 'Too Big'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate pushMonitorData(data: LocalLogModel) {\n\t\tthis._monitorData.push(data);\n\n\t\t// If data is huge, flush immediately to file\n\t\tif (this.estimateBatchSize() >= MAX_BATCH_SIZE) {\n\t\t\tthis.flushMonitorData();\n\t\t}\n\t}\n\n\tprivate estimateBatchSize(): number {\n\t\treturn this._monitorData.reduce((total, item) => {\n\t\t\treturn total + Buffer.byteLength(JSON.stringify(item));\n\t\t}, 0);\n\t}\n\n\tsetupEventLoop() {\n\t\t// Flush every 2.5 seconds\n\t\tsetInterval(() => {\n\t\t\tif (this._monitorData.length > 0) {\n\t\t\t\tthis.flushMonitorData();\n\t\t\t}\n\t\t}, 2500);\n\t}\n\n\tprivate flushMonitorData() {\n\t\tconst batch = [];\n\t\tlet batchSize = 0;\n\n\t\twhile (this._monitorData.length > 0 && batchSize < MAX_BATCH_SIZE) {\n\t\t\tconst item = this._monitorData.shift();\n\t\t\tconst itemSize = Buffer.byteLength(JSON.stringify(item));\n\n\t\t\tif ((batchSize + itemSize) > MAX_BATCH_SIZE && batch.length > 0) {\n\t\t\t\t// put the item back for next round\n\t\t\t\tthis._monitorData.unshift(item);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbatch.push(item);\n\t\t\tbatchSize += itemSize;\n\t\t}\n\n\t\ttry {\n\t\t\t// Now, instead of calling an external HTTP endpoint, we write the batch to disk:\n\t\t\tResolveIOServer.getLocalLogManager().writeLogs(batch);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconsole.error(new Date(), 'MonitorManager', 'Failed to flush monitor data to file:', error);\n\t\t}\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() {}\n\n\tstatic create(method: string, collection: string, query: string) {\n\t\tconst monitorMongo = new MonitorMongo();\n\t\tmonitorMongo.initialize(method, collection, query);\n\t\treturn monitorMongo;\n\t}\n\n\tprivate initialize(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 async 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\tawait ResolveIOServer.getMainServer().getMonitorManager().addMongoTracker(mongoMonitor);\n\t}\n}\n\nexport class MonitorManagerFunction {\n\tprivate _functionCnt = 0;\n\tprivate _functions: MonitorFunction[] = [];\n\tprivate _functionLastCompletedWS: { [id_socket: string]: MonitorFunction; } = {};\n\tprivate _functionLastCompleted: MonitorFunction;\n\n\tconstructor() {}\n\n\tstatic create() {\n\t\tconst monitorManagerFunction = new MonitorManagerFunction();\n\t\tmonitorManagerFunction.initialize();\n\t\treturn monitorManagerFunction;\n\t}\n\n\tprivate initialize() {\n\n\t}\n\n\tstartMonitorFunction(\n\t\tfunctionType: MonitorFunctionType,\n\t\tfunctionName: string,\n\t\tuser: string,\n\t\tid_socket: string,\n\t\tdata: any\n\t) {\n\t\tlet newMonitorFunction = MonitorFunction.create(\n\t\t\tthis._functionCnt++,\n\t\t\tfunctionType,\n\t\t\tfunctionName,\n\t\t\tuser,\n\t\t\tid_socket,\n\t\t\tdata\n\t\t);\n\n\t\tthis._functions.push(newMonitorFunction);\n\t\treturn newMonitorFunction.id;\n\t}\n\n\tasync finishMonitorFunction(id: number) {\n\t\tlet monitor = this._functions.find(a => a.id === id);\n\n\t\tif (monitor) {\n\t\t\tawait monitor.finish();\n\t\t\tthis._functionLastCompleted = monitor;\n\t\t\tthis._functionLastCompletedWS[monitor.id_socket] = monitor;\n\t\t\tthis._functions.splice(\n\t\t\t\tthis._functions.map(a => a.id).indexOf(id),\n\t\t\t\t1\n\t\t\t);\n\t\t}\n\t}\n\n\tgetActiveMonitorFunctions() {\n\t\treturn this._functions;\n\t}\n\n\tgetLastCompletedMonitorFunction() {\n\t\treturn this._functionLastCompleted;\n\t}\n\n\tgetLastCompletedMonitorFunctionWS() {\n\t\treturn this._functionLastCompletedWS;\n\t}\n}\n\nexport type MonitorFunctionType =\n\t'Cron Method'\n\t| 'Method'\n\t| 'User Specific Publication'\n\t| 'Publication';\n\nexport class MonitorFunction {\n\tprivate _timer: NodeJS.Timeout = null;\n\tpublic duration = 0;\n\tpublic functionType: MonitorFunctionType;\n\tpublic functionName: string;\n\tpublic user: string;\n\tpublic data: any;\n\tpublic startTime: Date = null;\n\tpublic endTime: Date = null;\n\tpublic lastTime: Date = null;\n\tpublic id_socket = '';\n\tpublic id = 0;\n\n\tconstructor() {}\n\n\tstatic create(\n\t\tid: number,\n\t\tfunctionType: MonitorFunctionType,\n\t\tfunctionName: string,\n\t\tuser: string,\n\t\tid_socket: string,\n\t\tdata: any\n\t) {\n\t\tconst monitorFunction = new MonitorFunction();\n\t\tmonitorFunction.initialize(id, functionType, functionName, user, id_socket, data);\n\t\treturn monitorFunction;\n\t}\n\n\tprivate initialize(\n\t\tid: number,\n\t\tfunctionType: MonitorFunctionType,\n\t\tfunctionName: string,\n\t\tuser: string,\n\t\tid_socket: string,\n\t\tdata: any\n\t) {\n\t\tthis.id = id;\n\t\tthis.startTime = new Date();\n\t\tthis.functionType = functionType;\n\t\tthis.functionName = functionName;\n\t\tthis.user = user;\n\t\tthis.id_socket = id_socket;\n\t\tthis.data = data;\n\t\tthis.lastTime = new Date();\n\n\t\tthis._timer = setInterval(() => {\n\t\t\tlet diff = Date.now() - this.lastTime.getTime();\n\n\t\t\tif (diff > this.duration) {\n\t\t\t\tthis.duration = diff;\n\t\t\t}\n\n\t\t\tthis.lastTime = new Date();\n\t\t}, 1000);\n\t}\n\n\tpublic async finish() {\n\t\tif (this._timer) {\n\t\t\tclearInterval(this._timer);\n\t\t\tthis._timer = null;\n\t\t}\n\n\t\tthis.endTime = new Date();\n\n\t\tif (this.duration >= 5000) {\n\t\t\t// Optional slow function logging or email\n\t\t\tawait ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);\n\t\t}\n\n\t\t// await ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);\n\n\t\treturn Promise.resolve(true);\n\t}\n}"]}
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g =
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -1141,10 +1141,10 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1141
1141
|
});
|
|
1142
1142
|
};
|
|
1143
1143
|
SubscriptionManager.prototype.sendDataToOne = function (ws, messageId, sub, collection, type) {
|
|
1144
|
-
var _a;
|
|
1145
1144
|
return __awaiter(this, void 0, void 0, function () {
|
|
1146
|
-
var monitor, dependencySnapshot, res, execution, serverRes, err_1,
|
|
1145
|
+
var monitor, dependencySnapshot, res, execution, serverRes, err_1, _a, normalizedError, correlationId, serverRes, errorPayload;
|
|
1147
1146
|
var _this = this;
|
|
1147
|
+
var _b;
|
|
1148
1148
|
return __generator(this, function (_c) {
|
|
1149
1149
|
switch (_c.label) {
|
|
1150
1150
|
case 0:
|
|
@@ -1171,7 +1171,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1171
1171
|
return [3 /*break*/, 7];
|
|
1172
1172
|
case 3:
|
|
1173
1173
|
err_1 = _c.sent();
|
|
1174
|
-
|
|
1174
|
+
_a = (0, error_tracking_1.ensureErrorWithCorrelation)(err_1), normalizedError = _a.error, correlationId = _a.correlationId;
|
|
1175
1175
|
serverRes = {
|
|
1176
1176
|
messageId: messageId,
|
|
1177
1177
|
hasError: true,
|
|
@@ -1196,7 +1196,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1196
1196
|
return [4 /*yield*/, error_reporter_1.ErrorReporter.report({
|
|
1197
1197
|
sourceApp: 'subscription-manager',
|
|
1198
1198
|
message: 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'],
|
|
1199
|
-
environment: (
|
|
1199
|
+
environment: (_b = this.serverConfig) === null || _b === void 0 ? void 0 : _b.ROOT_URL,
|
|
1200
1200
|
clientSlug: resolveio_server_app_1.ResolveIOServer.getClientName(),
|
|
1201
1201
|
clientName: this.serverConfig['CLIENT_NAME'],
|
|
1202
1202
|
stack: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.stack,
|
|
@@ -1222,11 +1222,11 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1222
1222
|
};
|
|
1223
1223
|
// Fetch pub once, send to all clients linked to this pub
|
|
1224
1224
|
SubscriptionManager.prototype.sendDataToAll = function (sub, collection, type) {
|
|
1225
|
-
var _a;
|
|
1226
1225
|
return __awaiter(this, void 0, void 0, function () {
|
|
1227
|
-
var subIndex, monitor, res_1, dependencySnapshot, execution, cacheData,
|
|
1228
|
-
var e_3,
|
|
1226
|
+
var subIndex, monitor, res_1, dependencySnapshot, execution, cacheData, _a, _b, client, ws, serverRes, _c, _d, client, ws, serverRes, nodeCacheSize, deleteCount, subArr, zz, err_2, _e, normalizedError, correlationId, _f, _g, client, ws, serverRes, errorPayload;
|
|
1227
|
+
var e_3, _h, e_4, _j, e_5, _k;
|
|
1229
1228
|
var _this = this;
|
|
1229
|
+
var _l;
|
|
1230
1230
|
return __generator(this, function (_m) {
|
|
1231
1231
|
switch (_m.label) {
|
|
1232
1232
|
case 0:
|
|
@@ -1263,8 +1263,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1263
1263
|
cacheData = JSON.parse(this._nodeCache.get(sub.cacheId), common_1.dateReviver);
|
|
1264
1264
|
if (JSON.stringify(cacheData) !== JSON.stringify(res_1)) {
|
|
1265
1265
|
try {
|
|
1266
|
-
for (
|
|
1267
|
-
client =
|
|
1266
|
+
for (_a = __values(sub.clients), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
1267
|
+
client = _b.value;
|
|
1268
1268
|
ws = this._websocketManager.getWebSocket(client.id_socket);
|
|
1269
1269
|
if (ws && ws.readyState === ws.OPEN) {
|
|
1270
1270
|
serverRes = {
|
|
@@ -1279,7 +1279,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1279
1279
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
1280
1280
|
finally {
|
|
1281
1281
|
try {
|
|
1282
|
-
if (
|
|
1282
|
+
if (_b && !_b.done && (_h = _a.return)) _h.call(_a);
|
|
1283
1283
|
}
|
|
1284
1284
|
finally { if (e_3) throw e_3.error; }
|
|
1285
1285
|
}
|
|
@@ -1321,8 +1321,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1321
1321
|
}
|
|
1322
1322
|
else {
|
|
1323
1323
|
try {
|
|
1324
|
-
for (
|
|
1325
|
-
client =
|
|
1324
|
+
for (_c = __values(sub.clients), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
1325
|
+
client = _d.value;
|
|
1326
1326
|
ws = this._websocketManager.getWebSocket(client.id_socket);
|
|
1327
1327
|
if (ws && ws.readyState === ws.OPEN) {
|
|
1328
1328
|
serverRes = {
|
|
@@ -1337,7 +1337,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1337
1337
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
1338
1338
|
finally {
|
|
1339
1339
|
try {
|
|
1340
|
-
if (
|
|
1340
|
+
if (_d && !_d.done && (_j = _c.return)) _j.call(_c);
|
|
1341
1341
|
}
|
|
1342
1342
|
finally { if (e_4) throw e_4.error; }
|
|
1343
1343
|
}
|
|
@@ -1378,10 +1378,10 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1378
1378
|
return [3 /*break*/, 8];
|
|
1379
1379
|
case 4:
|
|
1380
1380
|
err_2 = _m.sent();
|
|
1381
|
-
|
|
1381
|
+
_e = (0, error_tracking_1.ensureErrorWithCorrelation)(err_2), normalizedError = _e.error, correlationId = _e.correlationId;
|
|
1382
1382
|
try {
|
|
1383
|
-
for (
|
|
1384
|
-
client =
|
|
1383
|
+
for (_f = __values(sub.clients), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
1384
|
+
client = _g.value;
|
|
1385
1385
|
ws = this._websocketManager.getWebSocket(client.id_socket);
|
|
1386
1386
|
if (ws && ws.readyState === ws.OPEN) {
|
|
1387
1387
|
serverRes = {
|
|
@@ -1396,7 +1396,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1396
1396
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
1397
1397
|
finally {
|
|
1398
1398
|
try {
|
|
1399
|
-
if (
|
|
1399
|
+
if (_g && !_g.done && (_k = _f.return)) _k.call(_f);
|
|
1400
1400
|
}
|
|
1401
1401
|
finally { if (e_5) throw e_5.error; }
|
|
1402
1402
|
}
|
|
@@ -1417,7 +1417,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1417
1417
|
return [4 /*yield*/, error_reporter_1.ErrorReporter.report({
|
|
1418
1418
|
sourceApp: 'subscription-manager',
|
|
1419
1419
|
message: 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'],
|
|
1420
|
-
environment: (
|
|
1420
|
+
environment: (_l = this.serverConfig) === null || _l === void 0 ? void 0 : _l.ROOT_URL,
|
|
1421
1421
|
clientSlug: resolveio_server_app_1.ResolveIOServer.getClientName(),
|
|
1422
1422
|
clientName: this.serverConfig['CLIENT_NAME'],
|
|
1423
1423
|
stack: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.stack,
|