@resolveio/server-lib 9.2.17 → 9.2.19

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.
Files changed (221) hide show
  1. package/client-server-app.js +1 -55
  2. package/client-server-app.js.map +1 -1
  3. package/collections/app-status.collection.js +1 -40
  4. package/collections/app-status.collection.js.map +1 -1
  5. package/collections/app-version.collection.js +1 -40
  6. package/collections/app-version.collection.js.map +1 -1
  7. package/collections/counter.collection.js +1 -43
  8. package/collections/counter.collection.js.map +1 -1
  9. package/collections/cron-job-history.collection.js +1 -71
  10. package/collections/cron-job-history.collection.js.map +1 -1
  11. package/collections/cron-job.collection.js +1 -74
  12. package/collections/cron-job.collection.js.map +1 -1
  13. package/collections/email-history.collection.js +1 -55
  14. package/collections/email-history.collection.js.map +1 -1
  15. package/collections/email-verified.collection.js +1 -50
  16. package/collections/email-verified.collection.js.map +1 -1
  17. package/collections/file.collection.js +1 -62
  18. package/collections/file.collection.js.map +1 -1
  19. package/collections/flag.collection.js +1 -44
  20. package/collections/flag.collection.js.map +1 -1
  21. package/collections/log-method-latency.collection.js +1 -53
  22. package/collections/log-method-latency.collection.js.map +1 -1
  23. package/collections/log-subscription.collection.js +1 -57
  24. package/collections/log-subscription.collection.js.map +1 -1
  25. package/collections/log.collection.js +1 -72
  26. package/collections/log.collection.js.map +1 -1
  27. package/collections/logged-in-users.collection.js +1 -58
  28. package/collections/logged-in-users.collection.js.map +1 -1
  29. package/collections/method-call.collection.js +1 -51
  30. package/collections/method-call.collection.js.map +1 -1
  31. package/collections/method-response.collection.js +1 -55
  32. package/collections/method-response.collection.js.map +1 -1
  33. package/collections/monitor-cpu.collection.js +1 -57
  34. package/collections/monitor-cpu.collection.js.map +1 -1
  35. package/collections/monitor-https-inbound.collection.js +1 -66
  36. package/collections/monitor-https-inbound.collection.js.map +1 -1
  37. package/collections/monitor-https-outbound.collection.js +1 -74
  38. package/collections/monitor-https-outbound.collection.js.map +1 -1
  39. package/collections/monitor-memory.collection.js +1 -68
  40. package/collections/monitor-memory.collection.js.map +1 -1
  41. package/collections/monitor-mongo.collection.js +1 -62
  42. package/collections/monitor-mongo.collection.js.map +1 -1
  43. package/collections/notification.collection.js +1 -40
  44. package/collections/notification.collection.js.map +1 -1
  45. package/collections/report-builder-dashboard-builder.collection.js +1 -93
  46. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  47. package/collections/report-builder-library.collection.js +1 -76
  48. package/collections/report-builder-library.collection.js.map +1 -1
  49. package/collections/report-builder-report.collection.js +1 -138
  50. package/collections/report-builder-report.collection.js.map +1 -1
  51. package/collections/user-group.collection.js +1 -79
  52. package/collections/user-group.collection.js.map +1 -1
  53. package/collections/user-guide.collection.js +1 -46
  54. package/collections/user-guide.collection.js.map +1 -1
  55. package/collections/user.collection.js +1 -248
  56. package/collections/user.collection.js.map +1 -1
  57. package/cron/cron.js +1 -161
  58. package/cron/cron.js.map +1 -1
  59. package/fixtures/cron-jobs.js +1 -72
  60. package/fixtures/cron-jobs.js.map +1 -1
  61. package/fixtures/init.js +1 -62
  62. package/fixtures/init.js.map +1 -1
  63. package/http/auth.js +1 -697
  64. package/http/auth.js.map +1 -1
  65. package/http/health.js +1 -10
  66. package/http/health.js.map +1 -1
  67. package/http/home.js +1 -64
  68. package/http/home.js.map +1 -1
  69. package/index.js +1 -123
  70. package/index.js.map +1 -1
  71. package/managers/cron.manager.js +1 -205
  72. package/managers/cron.manager.js.map +1 -1
  73. package/managers/method.manager.js +1 -599
  74. package/managers/method.manager.js.map +1 -1
  75. package/managers/mongo.manager.js +1 -1682
  76. package/managers/mongo.manager.js.map +1 -1
  77. package/managers/monitor.manager.js +1 -334
  78. package/managers/monitor.manager.js.map +1 -1
  79. package/managers/subscription.manager.js +1 -867
  80. package/managers/subscription.manager.js.map +1 -1
  81. package/managers/subscription.performance.js +1 -100
  82. package/managers/subscription.performance.js.map +1 -1
  83. package/methods/accounts.js +1 -224
  84. package/methods/accounts.js.map +1 -1
  85. package/methods/aws.js +1 -449
  86. package/methods/aws.js.map +1 -1
  87. package/methods/cloudconvert.js +1 -214
  88. package/methods/cloudconvert.js.map +1 -1
  89. package/methods/collections.js +1 -526
  90. package/methods/collections.js.map +1 -1
  91. package/methods/counters.js +1 -121
  92. package/methods/counters.js.map +1 -1
  93. package/methods/cron-jobs.js +1 -1284
  94. package/methods/cron-jobs.js.map +1 -1
  95. package/methods/flags.js +1 -8
  96. package/methods/flags.js.map +1 -1
  97. package/methods/logs.js +1 -370
  98. package/methods/logs.js.map +1 -1
  99. package/methods/monitor.js +1 -384
  100. package/methods/monitor.js.map +1 -1
  101. package/methods/pdf.js +1 -685
  102. package/methods/pdf.js.map +1 -1
  103. package/methods/report-builder.js +1 -826
  104. package/methods/report-builder.js.map +1 -1
  105. package/methods/support.js +1 -263
  106. package/methods/support.js.map +1 -1
  107. package/models/app-status.model.js +1 -3
  108. package/models/app-status.model.js.map +1 -1
  109. package/models/app-version.model.js +1 -3
  110. package/models/app-version.model.js.map +1 -1
  111. package/models/billing-logged-in-users.model.js +1 -3
  112. package/models/billing-logged-in-users.model.js.map +1 -1
  113. package/models/collection-document.model.js +1 -3
  114. package/models/collection-document.model.js.map +1 -1
  115. package/models/counter.model.js +1 -3
  116. package/models/counter.model.js.map +1 -1
  117. package/models/cron-job-history.model.js +1 -3
  118. package/models/cron-job-history.model.js.map +1 -1
  119. package/models/cron-job.model.js +1 -3
  120. package/models/cron-job.model.js.map +1 -1
  121. package/models/dialog.model.js +1 -3
  122. package/models/dialog.model.js.map +1 -1
  123. package/models/email-history.model.js +1 -3
  124. package/models/email-history.model.js.map +1 -1
  125. package/models/email-verified.model.js +1 -3
  126. package/models/email-verified.model.js.map +1 -1
  127. package/models/file.model.js +1 -3
  128. package/models/file.model.js.map +1 -1
  129. package/models/flag.model.js +1 -3
  130. package/models/flag.model.js.map +1 -1
  131. package/models/log-method-latency.model.js +1 -3
  132. package/models/log-method-latency.model.js.map +1 -1
  133. package/models/log-subscription.model.js +1 -3
  134. package/models/log-subscription.model.js.map +1 -1
  135. package/models/log.model.js +1 -3
  136. package/models/log.model.js.map +1 -1
  137. package/models/logged-in-users.model.js +1 -3
  138. package/models/logged-in-users.model.js.map +1 -1
  139. package/models/method-call.model.js +1 -3
  140. package/models/method-call.model.js.map +1 -1
  141. package/models/method-response.model.js +1 -3
  142. package/models/method-response.model.js.map +1 -1
  143. package/models/method.model.js +1 -3
  144. package/models/method.model.js.map +1 -1
  145. package/models/monitor-cpu.model.js +1 -3
  146. package/models/monitor-cpu.model.js.map +1 -1
  147. package/models/monitor-https-inbound.model.js +1 -3
  148. package/models/monitor-https-inbound.model.js.map +1 -1
  149. package/models/monitor-https-outbound.model.js +1 -3
  150. package/models/monitor-https-outbound.model.js.map +1 -1
  151. package/models/monitor-memory.model.js +1 -3
  152. package/models/monitor-memory.model.js.map +1 -1
  153. package/models/monitor-mongo.model.js +1 -3
  154. package/models/monitor-mongo.model.js.map +1 -1
  155. package/models/notification.model.js +1 -3
  156. package/models/notification.model.js.map +1 -1
  157. package/models/pagination.model.js +1 -23
  158. package/models/pagination.model.js.map +1 -1
  159. package/models/permission.model.js +1 -3
  160. package/models/permission.model.js.map +1 -1
  161. package/models/report-builder-dashboard-builder.model.js +1 -3
  162. package/models/report-builder-dashboard-builder.model.js.map +1 -1
  163. package/models/report-builder-library.model.js +1 -3
  164. package/models/report-builder-library.model.js.map +1 -1
  165. package/models/report-builder-report.model.js +1 -3
  166. package/models/report-builder-report.model.js.map +1 -1
  167. package/models/report-builder.model.js +1 -3
  168. package/models/report-builder.model.js.map +1 -1
  169. package/models/select-data-label.model.js +1 -3
  170. package/models/select-data-label.model.js.map +1 -1
  171. package/models/server-response.model.js +1 -3
  172. package/models/server-response.model.js.map +1 -1
  173. package/models/subscription.model.js +1 -3
  174. package/models/subscription.model.js.map +1 -1
  175. package/models/support-ticket.model.js +1 -3
  176. package/models/support-ticket.model.js.map +1 -1
  177. package/models/user-group.model.js +1 -3
  178. package/models/user-group.model.js.map +1 -1
  179. package/models/user-guide.model.js +1 -3
  180. package/models/user-guide.model.js.map +1 -1
  181. package/models/user.model.js +1 -3
  182. package/models/user.model.js.map +1 -1
  183. package/package.json +2 -2
  184. package/public_api.js +1 -78
  185. package/public_api.js.map +1 -1
  186. package/publications/app-status.js +1 -16
  187. package/publications/app-status.js.map +1 -1
  188. package/publications/app-version.js +1 -16
  189. package/publications/app-version.js.map +1 -1
  190. package/publications/cron-jobs.js +1 -32
  191. package/publications/cron-jobs.js.map +1 -1
  192. package/publications/files.js +1 -36
  193. package/publications/files.js.map +1 -1
  194. package/publications/flags.js +1 -22
  195. package/publications/flags.js.map +1 -1
  196. package/publications/logs.js +1 -90
  197. package/publications/logs.js.map +1 -1
  198. package/publications/method-calls.js +1 -16
  199. package/publications/method-calls.js.map +1 -1
  200. package/publications/method-responses.js +1 -16
  201. package/publications/method-responses.js.map +1 -1
  202. package/publications/notifications.js +1 -16
  203. package/publications/notifications.js.map +1 -1
  204. package/publications/report-builder-dashboard-builders.js +1 -42
  205. package/publications/report-builder-dashboard-builders.js.map +1 -1
  206. package/publications/report-builder-libraries.js +1 -89
  207. package/publications/report-builder-libraries.js.map +1 -1
  208. package/publications/report-builder-reports.js +1 -50
  209. package/publications/report-builder-reports.js.map +1 -1
  210. package/publications/super-admin.js +1 -16
  211. package/publications/super-admin.js.map +1 -1
  212. package/publications/user-groups.js +1 -16
  213. package/publications/user-groups.js.map +1 -1
  214. package/publications/user-guides.js +1 -16
  215. package/publications/user-guides.js.map +1 -1
  216. package/server-app.js +1 -682
  217. package/server-app.js.map +1 -1
  218. package/util/common.js +1 -498
  219. package/util/common.js.map +1 -1
  220. package/util/schema-report-builder.js +1 -452
  221. package/util/schema-report-builder.js.map +1 -1
@@ -1,335 +1,2 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
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 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MonitorManager = void 0;
40
- var bent = require("bent");
41
- var monitor_cpu_collection_1 = require("../collections/monitor-cpu.collection");
42
- var monitor_memory_collection_1 = require("../collections/monitor-memory.collection");
43
- var monitor_https_inbound_collection_1 = require("../collections/monitor-https-inbound.collection");
44
- var monitor_https_outbound_collection_1 = require("../collections/monitor-https-outbound.collection");
45
- var monitor_mongo_collection_1 = require("../collections/monitor-mongo.collection");
46
- var index_1 = require("../index");
47
- var common_1 = require("../util/common");
48
- var mongo_manager_1 = require("./mongo.manager");
49
- var MonitorManager = /** @class */ (function () {
50
- function MonitorManager(mainServer, monitorAgent, serverConfig) {
51
- this._instanceHostname = '';
52
- this._monitorData = [];
53
- this._mainServer = mainServer;
54
- this._monitorAgent = monitorAgent;
55
- this._serverConfig = serverConfig;
56
- this.setupEvents();
57
- this.setupEventLoop();
58
- }
59
- MonitorManager.prototype.setupEvents = function () {
60
- var _this = this;
61
- this._monitorAgent.on('initialized', function (env) {
62
- env = _this._monitorAgent.getEnvironment();
63
- for (var entry in env) {
64
- console.log(entry + ':' + env[entry]);
65
- if (entry === 'environment.HOSTNAME') {
66
- _this._instanceHostname = env[entry].replace('ip-', '').replace(/-/g, '.');
67
- }
68
- }
69
- ;
70
- });
71
- this._monitorAgent.on('cpu', function (data) { return __awaiter(_this, void 0, void 0, function () {
72
- return __generator(this, function (_a) {
73
- if (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {
74
- monitor_cpu_collection_1.MonitorCPUs.create({
75
- _id: mongo_manager_1.objectIdHexString(),
76
- __v: 0,
77
- instance: this._instanceHostname,
78
- client: this._serverConfig['CLIENT_NAME'],
79
- date: new Date(data.time),
80
- app: data.process,
81
- system: data.system
82
- });
83
- }
84
- else {
85
- if (this._instanceHostname) {
86
- this._monitorData.push({
87
- instance: this._instanceHostname,
88
- client: this._serverConfig['CLIENT_NAME'],
89
- date: new Date(data.time),
90
- type: 'cpu',
91
- app: data.process,
92
- system: data.system
93
- });
94
- }
95
- }
96
- return [2 /*return*/];
97
- });
98
- }); });
99
- this._monitorAgent.on('memory', function (data) { return __awaiter(_this, void 0, void 0, function () {
100
- return __generator(this, function (_a) {
101
- if (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {
102
- monitor_memory_collection_1.MonitorMemorys.create({
103
- _id: mongo_manager_1.objectIdHexString(),
104
- __v: 0,
105
- instance: this._instanceHostname,
106
- client: this._serverConfig['CLIENT_NAME'],
107
- date: new Date(data.time),
108
- physical_total: data.physical_total,
109
- physical_used: data.physical_used,
110
- physical_free: data.physical_free,
111
- virtual: data.virtual,
112
- private: data.private,
113
- physical: data.physical
114
- });
115
- }
116
- else {
117
- if (this._instanceHostname) {
118
- this._monitorData.push({
119
- instance: this._instanceHostname,
120
- client: this._serverConfig['CLIENT_NAME'],
121
- date: new Date(data.time),
122
- type: 'memory',
123
- physical_total: data.physical_total,
124
- physical_used: data.physical_used,
125
- physical_free: data.physical_free,
126
- virtual: data.virtual,
127
- private: data.private,
128
- physical: data.physical
129
- });
130
- }
131
- }
132
- return [2 /*return*/];
133
- });
134
- }); });
135
- this._monitorAgent.on('https', function (data) { return __awaiter(_this, void 0, void 0, function () {
136
- return __generator(this, function (_a) {
137
- if (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {
138
- monitor_https_inbound_collection_1.MonitorHTTPSInbounds.create({
139
- _id: mongo_manager_1.objectIdHexString(),
140
- __v: 0,
141
- instance: this._instanceHostname,
142
- client: this._serverConfig['CLIENT_NAME'],
143
- date: new Date(data.time),
144
- method: data.method,
145
- url: data.url,
146
- duration: data.duration,
147
- contentType: data.contentType,
148
- requestHeader: data.requestHeader
149
- });
150
- }
151
- else {
152
- if (this._instanceHostname) {
153
- this._monitorData.push({
154
- instance: this._instanceHostname,
155
- client: this._serverConfig['CLIENT_NAME'],
156
- date: new Date(data.time),
157
- type: 'https-inbound',
158
- method: data.method,
159
- url: data.url,
160
- duration: data.duration,
161
- contentType: data.contentType,
162
- requestHeader: data.requestHeader
163
- });
164
- }
165
- }
166
- return [2 /*return*/];
167
- });
168
- }); });
169
- this._monitorAgent.on('https-outbound', function (data) { return __awaiter(_this, void 0, void 0, function () {
170
- return __generator(this, function (_a) {
171
- if (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {
172
- monitor_https_outbound_collection_1.MonitorHTTPSOutbounds.create({
173
- _id: mongo_manager_1.objectIdHexString(),
174
- __v: 0,
175
- instance: this._instanceHostname,
176
- client: this._serverConfig['CLIENT_NAME'],
177
- date: new Date(data.time),
178
- method: data.method,
179
- url: data.url,
180
- duration: data.duration,
181
- status: data.status,
182
- contentType: data.contentType,
183
- requestHeaders: data.requestHeaders
184
- });
185
- }
186
- else {
187
- if (!data.url.startsWith('https://backend.resolveio.com/api/monitor/')) {
188
- if (this._instanceHostname) {
189
- this._monitorData.push({
190
- instance: this._instanceHostname,
191
- client: this._serverConfig['CLIENT_NAME'],
192
- date: new Date(data.time),
193
- type: 'https-outbound',
194
- method: data.method,
195
- url: data.url,
196
- duration: data.duration,
197
- status: data.status,
198
- contentType: data.contentType,
199
- requestHeaders: data.requestHeaders
200
- });
201
- }
202
- }
203
- }
204
- return [2 /*return*/];
205
- });
206
- }); });
207
- this._monitorAgent.on('mongo', function (data) { return __awaiter(_this, void 0, void 0, function () {
208
- return __generator(this, function (_a) {
209
- if (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {
210
- if (!data.collection.startsWith('monitor-')) {
211
- monitor_mongo_collection_1.MonitorMongos.create({
212
- _id: mongo_manager_1.objectIdHexString(),
213
- __v: 0,
214
- instance: this._instanceHostname,
215
- client: this._serverConfig['CLIENT_NAME'],
216
- date: new Date(data.time),
217
- method: data.method,
218
- doc_collection: data.collection,
219
- duration: data.duration,
220
- query: data.query
221
- });
222
- }
223
- }
224
- else {
225
- if (this._instanceHostname) {
226
- this._monitorData.push({
227
- instance: this._instanceHostname,
228
- client: this._serverConfig['CLIENT_NAME'],
229
- date: new Date(data.time),
230
- type: 'mongo',
231
- method: data.method,
232
- doc_collection: data.collection,
233
- duration: data.duration,
234
- query: data.query
235
- });
236
- }
237
- }
238
- return [2 /*return*/];
239
- });
240
- }); });
241
- // this._monitorAgent.on('socket', async (data) => {
242
- // if (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {
243
- // }
244
- // else {
245
- // const response = await post('/api/monitor/socket', {
246
- // client: this._serverConfig['CLIENT_NAME'],
247
- // date: new Date(data.time),
248
- // });
249
- // }
250
- // });
251
- };
252
- MonitorManager.prototype.setupEventLoop = function () {
253
- var _this = this;
254
- setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
255
- var post, monitorData, size, response, e_1, tmpData, i, response, e_2, response, e_3;
256
- return __generator(this, function (_a) {
257
- switch (_a.label) {
258
- case 0:
259
- if (!this._monitorData.length) return [3 /*break*/, 15];
260
- post = bent('https://backend.resolveio.com', 'POST', 'json', 200);
261
- monitorData = common_1.deepCopy(this._monitorData);
262
- this._monitorData = [];
263
- size = JSON.stringify(monitorData).replace(/[\[\]\,\"]/g, '').length * 8;
264
- if (!(size < 45000000)) return [3 /*break*/, 5];
265
- _a.label = 1;
266
- case 1:
267
- _a.trys.push([1, 3, , 4]);
268
- return [4 /*yield*/, post('/api/monitor', monitorData)];
269
- case 2:
270
- response = _a.sent();
271
- return [3 /*break*/, 4];
272
- case 3:
273
- e_1 = _a.sent();
274
- if (e_1.statusCode !== 500 && e_1.statusCode !== 501 && e_1.statusCode !== 502 && e_1.statusCode !== 503 && e_1.statusCode !== 504) {
275
- index_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e_1, null, 2));
276
- console.log(e_1);
277
- }
278
- return [3 /*break*/, 4];
279
- case 4: return [3 /*break*/, 15];
280
- case 5:
281
- tmpData = [];
282
- i = 0;
283
- _a.label = 6;
284
- case 6:
285
- if (!(i < monitorData.length)) return [3 /*break*/, 11];
286
- tmpData.push(monitorData[i]);
287
- size = JSON.stringify(tmpData).replace(/[\[\]\,\"]/g, '').length * 8;
288
- if (!(size > 45000000)) return [3 /*break*/, 10];
289
- tmpData.pop();
290
- _a.label = 7;
291
- case 7:
292
- _a.trys.push([7, 9, , 10]);
293
- return [4 /*yield*/, post('/api/monitor', tmpData)];
294
- case 8:
295
- response = _a.sent();
296
- tmpData = [monitorData[i]];
297
- return [3 /*break*/, 10];
298
- case 9:
299
- e_2 = _a.sent();
300
- if (e_2.statusCode !== 500 && e_2.statusCode !== 501 && e_2.statusCode !== 502 && e_2.statusCode !== 503 && e_2.statusCode !== 504) {
301
- index_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e_2, null, 2));
302
- console.log(e_2);
303
- }
304
- return [3 /*break*/, 10];
305
- case 10:
306
- i++;
307
- return [3 /*break*/, 6];
308
- case 11:
309
- if (!tmpData.length) return [3 /*break*/, 15];
310
- _a.label = 12;
311
- case 12:
312
- _a.trys.push([12, 14, , 15]);
313
- return [4 /*yield*/, post('/api/monitor', tmpData)];
314
- case 13:
315
- response = _a.sent();
316
- return [3 /*break*/, 15];
317
- case 14:
318
- e_3 = _a.sent();
319
- if (e_3.statusCode !== 500 && e_3.statusCode !== 501 && e_3.statusCode !== 502 && e_3.statusCode !== 503 && e_3.statusCode !== 504) {
320
- index_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', 'RESOLVEIO MONITOR HTTP - Error Detected', JSON.stringify(e_3, null, 2));
321
- console.log(e_3);
322
- }
323
- return [3 /*break*/, 15];
324
- case 15:
325
- this.setupEventLoop();
326
- return [2 /*return*/];
327
- }
328
- });
329
- }); }, 60000);
330
- };
331
- return MonitorManager;
332
- }());
333
- exports.MonitorManager = MonitorManager;
334
-
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(t,e,n,o){return new(n||(n=Promise))((function(r,i){function fulfilled(t){try{step(o.next(t))}catch(t){i(t)}}function rejected(t){try{step(o.throw(t))}catch(t){i(t)}}function step(t){t.done?r(t.value):function adopt(t){return t instanceof n?t:new n((function(e){e(t)}))}(t.value).then(fulfilled,rejected)}step((o=o.apply(t,e||[])).next())}))},__generator=this&&this.__generator||function(t,e){var n,o,r,i,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function verb(i){return function(a){return function step(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,o=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(r=s.trys,(r=r.length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){s.label=i[1];break}if(6===i[0]&&s.label<r[1]){s.label=r[1],r=i;break}if(r&&s.label<r[2]){s.label=r[2],s.ops.push(i);break}r[2]&&s.ops.pop(),s.trys.pop();continue}i=e.call(t,s)}catch(t){i=[6,t],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorManager=void 0;var bent=require("bent"),monitor_cpu_collection_1=require("../collections/monitor-cpu.collection"),monitor_memory_collection_1=require("../collections/monitor-memory.collection"),monitor_https_inbound_collection_1=require("../collections/monitor-https-inbound.collection"),monitor_https_outbound_collection_1=require("../collections/monitor-https-outbound.collection"),monitor_mongo_collection_1=require("../collections/monitor-mongo.collection"),index_1=require("../index"),common_1=require("../util/common"),mongo_manager_1=require("./mongo.manager"),MonitorManager=function(){function MonitorManager(t,e,n){this._instanceHostname="",this._monitorData=[],this._mainServer=t,this._monitorAgent=e,this._serverConfig=n,this.setupEvents(),this.setupEventLoop()}return MonitorManager.prototype.setupEvents=function(){var t=this;this._monitorAgent.on("initialized",(function(e){for(var n in e=t._monitorAgent.getEnvironment())console.log(n+":"+e[n]),"environment.HOSTNAME"===n&&(t._instanceHostname=e[n].replace("ip-","").replace(/-/g,"."))})),this._monitorAgent.on("cpu",(function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){return"https://resolveio.com"===this._serverConfig.ROOT_URL?monitor_cpu_collection_1.MonitorCPUs.create({_id:mongo_manager_1.objectIdHexString(),__v:0,instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),app:e.process,system:e.system}):this._instanceHostname&&this._monitorData.push({instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),type:"cpu",app:e.process,system:e.system}),[2]}))}))})),this._monitorAgent.on("memory",(function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){return"https://resolveio.com"===this._serverConfig.ROOT_URL?monitor_memory_collection_1.MonitorMemorys.create({_id:mongo_manager_1.objectIdHexString(),__v:0,instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),physical_total:e.physical_total,physical_used:e.physical_used,physical_free:e.physical_free,virtual:e.virtual,private:e.private,physical:e.physical}):this._instanceHostname&&this._monitorData.push({instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),type:"memory",physical_total:e.physical_total,physical_used:e.physical_used,physical_free:e.physical_free,virtual:e.virtual,private:e.private,physical:e.physical}),[2]}))}))})),this._monitorAgent.on("https",(function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){return"https://resolveio.com"===this._serverConfig.ROOT_URL?monitor_https_inbound_collection_1.MonitorHTTPSInbounds.create({_id:mongo_manager_1.objectIdHexString(),__v:0,instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),method:e.method,url:e.url,duration:e.duration,contentType:e.contentType,requestHeader:e.requestHeader}):this._instanceHostname&&this._monitorData.push({instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),type:"https-inbound",method:e.method,url:e.url,duration:e.duration,contentType:e.contentType,requestHeader:e.requestHeader}),[2]}))}))})),this._monitorAgent.on("https-outbound",(function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){return"https://resolveio.com"===this._serverConfig.ROOT_URL?monitor_https_outbound_collection_1.MonitorHTTPSOutbounds.create({_id:mongo_manager_1.objectIdHexString(),__v:0,instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),method:e.method,url:e.url,duration:e.duration,status:e.status,contentType:e.contentType,requestHeaders:e.requestHeaders}):e.url.startsWith("https://backend.resolveio.com/api/monitor/")||this._instanceHostname&&this._monitorData.push({instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),type:"https-outbound",method:e.method,url:e.url,duration:e.duration,status:e.status,contentType:e.contentType,requestHeaders:e.requestHeaders}),[2]}))}))})),this._monitorAgent.on("mongo",(function(e){return __awaiter(t,void 0,void 0,(function(){return __generator(this,(function(t){return"https://resolveio.com"===this._serverConfig.ROOT_URL?e.collection.startsWith("monitor-")||monitor_mongo_collection_1.MonitorMongos.create({_id:mongo_manager_1.objectIdHexString(),__v:0,instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),method:e.method,doc_collection:e.collection,duration:e.duration,query:e.query}):this._instanceHostname&&this._monitorData.push({instance:this._instanceHostname,client:this._serverConfig.CLIENT_NAME,date:new Date(e.time),type:"mongo",method:e.method,doc_collection:e.collection,duration:e.duration,query:e.query}),[2]}))}))}))},MonitorManager.prototype.setupEventLoop=function(){var t=this;setTimeout((function(){return __awaiter(t,void 0,void 0,(function(){var t,e,n,o,r,i,s;return __generator(this,(function(a){switch(a.label){case 0:if(!this._monitorData.length)return[3,15];if(t=bent("https://backend.resolveio.com","POST","json",200),e=common_1.deepCopy(this._monitorData),this._monitorData=[],!(8*JSON.stringify(e).replace(/[\[\]\,\"]/g,"").length<45e6))return[3,5];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,t("/api/monitor",e)];case 2:return a.sent(),[3,4];case 3:return 500!==(n=a.sent()).statusCode&&501!==n.statusCode&&502!==n.statusCode&&503!==n.statusCode&&504!==n.statusCode&&(index_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com","RESOLVEIO MONITOR HTTP - Error Detected",JSON.stringify(n,null,2)),console.log(n)),[3,4];case 4:return[3,15];case 5:o=[],r=0,a.label=6;case 6:if(!(r<e.length))return[3,11];if(o.push(e[r]),!(8*JSON.stringify(o).replace(/[\[\]\,\"]/g,"").length>45e6))return[3,10];o.pop(),a.label=7;case 7:return a.trys.push([7,9,,10]),[4,t("/api/monitor",o)];case 8:return a.sent(),o=[e[r]],[3,10];case 9:return 500!==(i=a.sent()).statusCode&&501!==i.statusCode&&502!==i.statusCode&&503!==i.statusCode&&504!==i.statusCode&&(index_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com","RESOLVEIO MONITOR HTTP - Error Detected",JSON.stringify(i,null,2)),console.log(i)),[3,10];case 10:return r++,[3,6];case 11:if(!o.length)return[3,15];a.label=12;case 12:return a.trys.push([12,14,,15]),[4,t("/api/monitor",o)];case 13:return a.sent(),[3,15];case 14:return 500!==(s=a.sent()).statusCode&&501!==s.statusCode&&502!==s.statusCode&&503!==s.statusCode&&504!==s.statusCode&&(index_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com","RESOLVEIO MONITOR HTTP - Error Detected",JSON.stringify(s,null,2)),console.log(s)),[3,15];case 15:return this.setupEventLoop(),[2]}}))}))}),6e4)},MonitorManager}();exports.MonitorManager=MonitorManager;
335
2
  //# sourceMappingURL=monitor.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2BAA6B;AAC7B,gFAAoE;AACpE,sFAA0E;AAC1E,oGAAuF;AACvF,sGAAyF;AACzF,oFAAwE;AACxE,kCAA2C;AAC3C,yCAA0C;AAC1C,iDAAoD;AAEpD;IAOC,wBAAY,UAAU,EAAE,YAAY,EAAE,YAAY;QAH1C,sBAAiB,GAAG,EAAE,CAAC;QACvB,iBAAY,GAAG,EAAE,CAAC;QAGzB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAElC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC;IAED,oCAAW,GAAX;QAAA,iBAuLC;QAtLA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,UAAC,GAAG;YACxC,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YAC1C,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,sBAAsB,EAAE;oBACrC,KAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBAC1E;aACD;YAAA,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAO,IAAI;;gBACvC,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE;oBAC/D,oCAAW,CAAC,MAAM,CAAC;wBAClB,GAAG,EAAE,iCAAiB,EAAE;wBACxB,GAAG,EAAE,CAAC;wBACN,QAAQ,EAAE,IAAI,CAAC,iBAAiB;wBAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;wBACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzB,GAAG,EAAE,IAAI,CAAC,OAAO;wBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;qBACnB,CAAC,CAAC;iBACH;qBACI;oBACJ,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;4BAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;4BACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzB,IAAI,EAAE,KAAK;4BACX,GAAG,EAAE,IAAI,CAAC,OAAO;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;yBACnB,CAAC,CAAC;qBACH;iBACD;;;aACD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAO,IAAI;;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE;oBAC/D,0CAAc,CAAC,MAAM,CAAC;wBACrB,GAAG,EAAE,iCAAiB,EAAE;wBACxB,GAAG,EAAE,CAAC;wBACN,QAAQ,EAAE,IAAI,CAAC,iBAAiB;wBAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;wBACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACvB,CAAC,CAAC;iBACH;qBACI;oBACJ,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;4BAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;4BACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzB,IAAI,EAAE,QAAQ;4BACd,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACvB,CAAC,CAAC;qBACH;iBACD;;;aACD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAO,IAAI;;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE;oBAC/D,uDAAoB,CAAC,MAAM,CAAC;wBAC3B,GAAG,EAAE,iCAAiB,EAAE;wBACxB,GAAG,EAAE,CAAC;wBACN,QAAQ,EAAE,IAAI,CAAC,iBAAiB;wBAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;wBACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;qBACjC,CAAC,CAAC;iBACH;qBACI;oBACJ,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;4BAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;4BACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzB,IAAI,EAAE,eAAe;4BACrB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;yBACjC,CAAC,CAAC;qBACH;iBACD;;;aACD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,UAAO,IAAI;;gBAClD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE;oBAC/D,yDAAqB,CAAC,MAAM,CAAC;wBAC5B,GAAG,EAAE,iCAAiB,EAAE;wBACxB,GAAG,EAAE,CAAC;wBACN,QAAQ,EAAE,IAAI,CAAC,iBAAiB;wBAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;wBACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;qBACnC,CAAC,CAAC;iBACH;qBACI;oBACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,4CAA4C,CAAC,EAAE;wBACvE,IAAI,IAAI,CAAC,iBAAiB,EAAE;4BAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gCACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;gCAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;gCACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gCACzB,IAAI,EAAE,gBAAgB;gCACtB,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gCACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gCAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;6BACnC,CAAC,CAAC;yBACH;qBACD;iBACD;;;aACD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAO,IAAI;;gBACzC,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE;oBAC/D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC5C,wCAAa,CAAC,MAAM,CAAC;4BACpB,GAAG,EAAE,iCAAiB,EAAE;4BACxB,GAAG,EAAE,CAAC;4BACN,QAAQ,EAAE,IAAI,CAAC,iBAAiB;4BAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;4BACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,cAAc,EAAE,IAAI,CAAC,UAAU;4BAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,KAAK,EAAE,IAAI,CAAC,KAAK;yBACjB,CAAC,CAAC;qBACH;iBACD;qBACI;oBACJ,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;4BACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;4BAChC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;4BACzC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzB,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,cAAc,EAAE,IAAI,CAAC,UAAU;4BAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,KAAK,EAAE,IAAI,CAAC,KAAK;yBACjB,CAAC,CAAC;qBACH;iBACD;;;aACD,CAAC,CAAC;QAEH,oDAAoD;QACpD,qEAAqE;QAErE,KAAK;QACL,UAAU;QACV,yDAAyD;QACzD,gDAAgD;QAChD,gCAAgC;QAEhC,QAAQ;QACR,KAAK;QACL,MAAM;IACP,CAAC;IAED,uCAAc,GAAd;QAAA,iBA+DC;QA9DA,UAAU,CAAC;;;;;6BACN,IAAI,CAAC,YAAY,CAAC,MAAM,EAAxB,yBAAwB;wBACrB,IAAI,GAAG,IAAI,CAAC,+BAA+B,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;wBAEpE,WAAW,GAAG,iBAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBAEnB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;6BAExE,CAAA,IAAI,GAAG,QAAQ,CAAA,EAAf,wBAAe;;;;wBAEA,qBAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,EAAA;;wBAAlD,QAAQ,GAAG,SAAuC;;;;wBAGxD,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,EAAE;4BACzH,uBAAe,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;4BAEzJ,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;yBACf;;;;wBAIE,OAAO,GAAG,EAAE,CAAC;wBACR,CAAC,GAAG,CAAC;;;6BAAE,CAAA,CAAC,GAAG,WAAW,CAAC,MAAM,CAAA;wBACrC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;6BAEhE,CAAA,IAAI,GAAG,QAAQ,CAAA,EAAf,yBAAe;wBAClB,OAAO,CAAC,GAAG,EAAE,CAAC;;;;wBAGI,qBAAM,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EAAA;;wBAA9C,QAAQ,GAAG,SAAmC;wBAEpD,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;;;;wBAG3B,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,EAAE;4BACzH,uBAAe,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;4BAEzJ,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;yBACf;;;wBAjBoC,CAAC,EAAE,CAAA;;;6BAsBvC,OAAO,CAAC,MAAM,EAAd,yBAAc;;;;wBAEC,qBAAM,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EAAA;;wBAA9C,QAAQ,GAAG,SAAmC;;;;wBAGpD,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,IAAI,GAAC,CAAC,UAAU,KAAK,GAAG,EAAE;4BACzH,uBAAe,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;4BAEzJ,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;yBACf;;;wBAML,IAAI,CAAC,cAAc,EAAE,CAAC;;;;aACtB,EAAE,KAAK,CAAC,CAAC;IACX,CAAC;IACF,qBAAC;AAAD,CAzQA,AAyQC,IAAA;AAzQY,wCAAc","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 { MonitorHTTPSInbounds } from '../collections/monitor-https-inbound.collection';\nimport { MonitorHTTPSOutbounds } from '../collections/monitor-https-outbound.collection';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { ResolveIOServer } from '../index';\nimport { deepCopy } from '../util/common';\nimport { objectIdHexString } from './mongo.manager';\n\nexport class MonitorManager {\n\tprivate _mainServer: ResolveIOMainServer;\n\tprivate _monitorAgent;\n\tprivate _serverConfig;\n\tprivate _instanceHostname = '';\n\tprivate _monitorData = [];\n\n\tconstructor(mainServer, monitorAgent, serverConfig) {\n\t\tthis._mainServer = mainServer;\n\t\tthis._monitorAgent = monitorAgent;\n\t\tthis._serverConfig = serverConfig;\n\n\t\tthis.setupEvents();\n\t\tthis.setupEventLoop();\n\t}\n\n\tsetupEvents() {\t\t\n\t\tthis._monitorAgent.on('initialized', (env) => {\n\t\t\tenv = this._monitorAgent.getEnvironment();\n\t\t\tfor (let entry in env) {\n\t\t\t\tconsole.log(entry + ':' + env[entry]);\n\t\t\t\tif (entry === 'environment.HOSTNAME') {\n\t\t\t\t\tthis._instanceHostname = env[entry].replace('ip-', '').replace(/-/g, '.');\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t\t\n\t\tthis._monitorAgent.on('cpu', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorCPUs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tapp: data.process,\n\t\t\t\t\tsystem: data.system\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'cpu',\n\t\t\t\t\t\tapp: data.process,\n\t\t\t\t\t\tsystem: data.system\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('memory', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorMemorys.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tphysical_total: data.physical_total,\n\t\t\t\t\tphysical_used: data.physical_used,\n\t\t\t\t\tphysical_free: data.physical_free,\n\t\t\t\t\tvirtual: data.virtual,\n\t\t\t\t\tprivate: data.private,\n\t\t\t\t\tphysical: data.physical\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'memory',\n\t\t\t\t\t\tphysical_total: data.physical_total,\n\t\t\t\t\t\tphysical_used: data.physical_used,\n\t\t\t\t\t\tphysical_free: data.physical_free,\n\t\t\t\t\t\tvirtual: data.virtual,\n\t\t\t\t\t\tprivate: data.private,\n\t\t\t\t\t\tphysical: data.physical\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('https', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorHTTPSInbounds.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\turl: data.url,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\trequestHeader: data.requestHeader\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'https-inbound',\n\t\t\t\t\t\tmethod: data.method,\n\t\t\t\t\t\turl: data.url,\n\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\t\trequestHeader: data.requestHeader\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('https-outbound', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorHTTPSOutbounds.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\turl: data.url,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tstatus: data.status,\n\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\trequestHeaders: data.requestHeaders\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!data.url.startsWith('https://backend.resolveio.com/api/monitor/')) {\n\t\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\t\tthis._monitorData.push({\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\t\t\ttype: 'https-outbound',\n\t\t\t\t\t\t\tmethod: data.method,\n\t\t\t\t\t\t\turl: data.url,\n\t\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\t\tstatus: data.status,\n\t\t\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\t\t\trequestHeaders: data.requestHeaders\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('mongo', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tif (!data.collection.startsWith('monitor-')) {\n\t\t\t\t\tMonitorMongos.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\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\tdate: new Date(data.time),\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: data.query\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'mongo',\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: data.query\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// this._monitorAgent.on('socket', async (data) => {\n\t\t// \tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\n\t\t// \t}\n\t\t// \telse {\n\t\t// \t\tconst response = await post('/api/monitor/socket', {\n\t\t// \t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t// \t\t\tdate: new Date(data.time),\n\t\t\t\t\t\n\t\t// \t\t});\n\t\t// \t}\n\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}"]}
1
+ {"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":["bent","require","monitor_cpu_collection_1","monitor_memory_collection_1","monitor_https_inbound_collection_1","monitor_https_outbound_collection_1","monitor_mongo_collection_1","index_1","common_1","mongo_manager_1","MonitorManager","mainServer","monitorAgent","serverConfig","this","_instanceHostname","_monitorData","_mainServer","_monitorAgent","_serverConfig","setupEvents","setupEventLoop","prototype","_this","on","env","entry","getEnvironment","console","log","replace","data","__awaiter","MonitorCPUs","create","_id","objectIdHexString","__v","instance","client","date","Date","time","app","process","system","push","type","MonitorMemorys","physical_total","physical_used","physical_free","virtual","private","physical","MonitorHTTPSInbounds","method","url","duration","contentType","requestHeader","MonitorHTTPSOutbounds","status","requestHeaders","startsWith","collection","MonitorMongos","doc_collection","query","setTimeout","length","post","monitorData","deepCopy","JSON","stringify","_a","sent","statusCode","e_1","ResolveIOServer","getMainServer","getMethodManager","sendEmail","tmpData","i","pop","e_2","e_3","exports"],"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 { MonitorHTTPSInbounds } from '../collections/monitor-https-inbound.collection';\nimport { MonitorHTTPSOutbounds } from '../collections/monitor-https-outbound.collection';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { ResolveIOServer } from '../index';\nimport { deepCopy } from '../util/common';\nimport { objectIdHexString } from './mongo.manager';\n\nexport class MonitorManager {\n\tprivate _mainServer: ResolveIOMainServer;\n\tprivate _monitorAgent;\n\tprivate _serverConfig;\n\tprivate _instanceHostname = '';\n\tprivate _monitorData = [];\n\n\tconstructor(mainServer, monitorAgent, serverConfig) {\n\t\tthis._mainServer = mainServer;\n\t\tthis._monitorAgent = monitorAgent;\n\t\tthis._serverConfig = serverConfig;\n\n\t\tthis.setupEvents();\n\t\tthis.setupEventLoop();\n\t}\n\n\tsetupEvents() {\t\t\n\t\tthis._monitorAgent.on('initialized', (env) => {\n\t\t\tenv = this._monitorAgent.getEnvironment();\n\t\t\tfor (let entry in env) {\n\t\t\t\tconsole.log(entry + ':' + env[entry]);\n\t\t\t\tif (entry === 'environment.HOSTNAME') {\n\t\t\t\t\tthis._instanceHostname = env[entry].replace('ip-', '').replace(/-/g, '.');\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t\t\n\t\tthis._monitorAgent.on('cpu', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorCPUs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tapp: data.process,\n\t\t\t\t\tsystem: data.system\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'cpu',\n\t\t\t\t\t\tapp: data.process,\n\t\t\t\t\t\tsystem: data.system\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('memory', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorMemorys.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tphysical_total: data.physical_total,\n\t\t\t\t\tphysical_used: data.physical_used,\n\t\t\t\t\tphysical_free: data.physical_free,\n\t\t\t\t\tvirtual: data.virtual,\n\t\t\t\t\tprivate: data.private,\n\t\t\t\t\tphysical: data.physical\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'memory',\n\t\t\t\t\t\tphysical_total: data.physical_total,\n\t\t\t\t\t\tphysical_used: data.physical_used,\n\t\t\t\t\t\tphysical_free: data.physical_free,\n\t\t\t\t\t\tvirtual: data.virtual,\n\t\t\t\t\t\tprivate: data.private,\n\t\t\t\t\t\tphysical: data.physical\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('https', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorHTTPSInbounds.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\turl: data.url,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\trequestHeader: data.requestHeader\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'https-inbound',\n\t\t\t\t\t\tmethod: data.method,\n\t\t\t\t\t\turl: data.url,\n\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\t\trequestHeader: data.requestHeader\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('https-outbound', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tMonitorHTTPSOutbounds.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t__v: 0,\n\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\tmethod: data.method,\n\t\t\t\t\turl: data.url,\n\t\t\t\t\tduration: data.duration,\n\t\t\t\t\tstatus: data.status,\n\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\trequestHeaders: data.requestHeaders\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!data.url.startsWith('https://backend.resolveio.com/api/monitor/')) {\n\t\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\t\tthis._monitorData.push({\n\t\t\t\t\t\t\tinstance: this._instanceHostname,\n\t\t\t\t\t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t\t\t\t\t\tdate: new Date(data.time),\n\t\t\t\t\t\t\ttype: 'https-outbound',\n\t\t\t\t\t\t\tmethod: data.method,\n\t\t\t\t\t\t\turl: data.url,\n\t\t\t\t\t\t\tduration: data.duration,\n\t\t\t\t\t\t\tstatus: data.status,\n\t\t\t\t\t\t\tcontentType: data.contentType,\n\t\t\t\t\t\t\trequestHeaders: data.requestHeaders\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._monitorAgent.on('mongo', async (data) => {\n\t\t\tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\t\t\t\tif (!data.collection.startsWith('monitor-')) {\n\t\t\t\t\tMonitorMongos.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\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\tdate: new Date(data.time),\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: data.query\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this._instanceHostname) {\n\t\t\t\t\tthis._monitorData.push({\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\tdate: new Date(data.time),\n\t\t\t\t\t\ttype: 'mongo',\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: data.query\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// this._monitorAgent.on('socket', async (data) => {\n\t\t// \tif (this._serverConfig['ROOT_URL'] === 'https://resolveio.com') {\n\n\t\t// \t}\n\t\t// \telse {\n\t\t// \t\tconst response = await post('/api/monitor/socket', {\n\t\t// \t\t\tclient: this._serverConfig['CLIENT_NAME'],\n\t\t// \t\t\tdate: new Date(data.time),\n\t\t\t\t\t\n\t\t// \t\t});\n\t\t// \t}\n\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}"]}