@resolveio/server-lib 9.2.19 → 9.2.20

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 +55 -1
  2. package/client-server-app.js.map +1 -1
  3. package/collections/app-status.collection.js +40 -1
  4. package/collections/app-status.collection.js.map +1 -1
  5. package/collections/app-version.collection.js +40 -1
  6. package/collections/app-version.collection.js.map +1 -1
  7. package/collections/counter.collection.js +43 -1
  8. package/collections/counter.collection.js.map +1 -1
  9. package/collections/cron-job-history.collection.js +71 -1
  10. package/collections/cron-job-history.collection.js.map +1 -1
  11. package/collections/cron-job.collection.js +74 -1
  12. package/collections/cron-job.collection.js.map +1 -1
  13. package/collections/email-history.collection.js +55 -1
  14. package/collections/email-history.collection.js.map +1 -1
  15. package/collections/email-verified.collection.js +50 -1
  16. package/collections/email-verified.collection.js.map +1 -1
  17. package/collections/file.collection.js +62 -1
  18. package/collections/file.collection.js.map +1 -1
  19. package/collections/flag.collection.js +44 -1
  20. package/collections/flag.collection.js.map +1 -1
  21. package/collections/log-method-latency.collection.js +53 -1
  22. package/collections/log-method-latency.collection.js.map +1 -1
  23. package/collections/log-subscription.collection.js +57 -1
  24. package/collections/log-subscription.collection.js.map +1 -1
  25. package/collections/log.collection.js +72 -1
  26. package/collections/log.collection.js.map +1 -1
  27. package/collections/logged-in-users.collection.js +58 -1
  28. package/collections/logged-in-users.collection.js.map +1 -1
  29. package/collections/method-call.collection.js +51 -1
  30. package/collections/method-call.collection.js.map +1 -1
  31. package/collections/method-response.collection.js +55 -1
  32. package/collections/method-response.collection.js.map +1 -1
  33. package/collections/monitor-cpu.collection.js +57 -1
  34. package/collections/monitor-cpu.collection.js.map +1 -1
  35. package/collections/monitor-https-inbound.collection.js +66 -1
  36. package/collections/monitor-https-inbound.collection.js.map +1 -1
  37. package/collections/monitor-https-outbound.collection.js +74 -1
  38. package/collections/monitor-https-outbound.collection.js.map +1 -1
  39. package/collections/monitor-memory.collection.js +68 -1
  40. package/collections/monitor-memory.collection.js.map +1 -1
  41. package/collections/monitor-mongo.collection.js +62 -1
  42. package/collections/monitor-mongo.collection.js.map +1 -1
  43. package/collections/notification.collection.js +40 -1
  44. package/collections/notification.collection.js.map +1 -1
  45. package/collections/report-builder-dashboard-builder.collection.js +93 -1
  46. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  47. package/collections/report-builder-library.collection.js +76 -1
  48. package/collections/report-builder-library.collection.js.map +1 -1
  49. package/collections/report-builder-report.collection.js +138 -1
  50. package/collections/report-builder-report.collection.js.map +1 -1
  51. package/collections/user-group.collection.js +79 -1
  52. package/collections/user-group.collection.js.map +1 -1
  53. package/collections/user-guide.collection.js +46 -1
  54. package/collections/user-guide.collection.js.map +1 -1
  55. package/collections/user.collection.js +248 -1
  56. package/collections/user.collection.js.map +1 -1
  57. package/cron/cron.js +161 -1
  58. package/cron/cron.js.map +1 -1
  59. package/fixtures/cron-jobs.js +72 -1
  60. package/fixtures/cron-jobs.js.map +1 -1
  61. package/fixtures/init.js +62 -1
  62. package/fixtures/init.js.map +1 -1
  63. package/http/auth.js +697 -1
  64. package/http/auth.js.map +1 -1
  65. package/http/health.js +10 -1
  66. package/http/health.js.map +1 -1
  67. package/http/home.js +64 -1
  68. package/http/home.js.map +1 -1
  69. package/index.js +123 -1
  70. package/index.js.map +1 -1
  71. package/managers/cron.manager.js +205 -1
  72. package/managers/cron.manager.js.map +1 -1
  73. package/managers/method.manager.js +599 -1
  74. package/managers/method.manager.js.map +1 -1
  75. package/managers/mongo.manager.js +1682 -1
  76. package/managers/mongo.manager.js.map +1 -1
  77. package/managers/monitor.manager.js +334 -1
  78. package/managers/monitor.manager.js.map +1 -1
  79. package/managers/subscription.manager.js +867 -1
  80. package/managers/subscription.manager.js.map +1 -1
  81. package/managers/subscription.performance.js +100 -1
  82. package/managers/subscription.performance.js.map +1 -1
  83. package/methods/accounts.js +224 -1
  84. package/methods/accounts.js.map +1 -1
  85. package/methods/aws.js +449 -1
  86. package/methods/aws.js.map +1 -1
  87. package/methods/cloudconvert.js +214 -1
  88. package/methods/cloudconvert.js.map +1 -1
  89. package/methods/collections.js +526 -1
  90. package/methods/collections.js.map +1 -1
  91. package/methods/counters.js +121 -1
  92. package/methods/counters.js.map +1 -1
  93. package/methods/cron-jobs.js +1284 -1
  94. package/methods/cron-jobs.js.map +1 -1
  95. package/methods/flags.js +8 -1
  96. package/methods/flags.js.map +1 -1
  97. package/methods/logs.js +370 -1
  98. package/methods/logs.js.map +1 -1
  99. package/methods/monitor.js +384 -1
  100. package/methods/monitor.js.map +1 -1
  101. package/methods/pdf.js +685 -1
  102. package/methods/pdf.js.map +1 -1
  103. package/methods/report-builder.js +826 -1
  104. package/methods/report-builder.js.map +1 -1
  105. package/methods/support.js +263 -1
  106. package/methods/support.js.map +1 -1
  107. package/models/app-status.model.js +3 -1
  108. package/models/app-status.model.js.map +1 -1
  109. package/models/app-version.model.js +3 -1
  110. package/models/app-version.model.js.map +1 -1
  111. package/models/billing-logged-in-users.model.js +3 -1
  112. package/models/billing-logged-in-users.model.js.map +1 -1
  113. package/models/collection-document.model.js +3 -1
  114. package/models/collection-document.model.js.map +1 -1
  115. package/models/counter.model.js +3 -1
  116. package/models/counter.model.js.map +1 -1
  117. package/models/cron-job-history.model.js +3 -1
  118. package/models/cron-job-history.model.js.map +1 -1
  119. package/models/cron-job.model.js +3 -1
  120. package/models/cron-job.model.js.map +1 -1
  121. package/models/dialog.model.js +3 -1
  122. package/models/dialog.model.js.map +1 -1
  123. package/models/email-history.model.js +3 -1
  124. package/models/email-history.model.js.map +1 -1
  125. package/models/email-verified.model.js +3 -1
  126. package/models/email-verified.model.js.map +1 -1
  127. package/models/file.model.js +3 -1
  128. package/models/file.model.js.map +1 -1
  129. package/models/flag.model.js +3 -1
  130. package/models/flag.model.js.map +1 -1
  131. package/models/log-method-latency.model.js +3 -1
  132. package/models/log-method-latency.model.js.map +1 -1
  133. package/models/log-subscription.model.js +3 -1
  134. package/models/log-subscription.model.js.map +1 -1
  135. package/models/log.model.js +3 -1
  136. package/models/log.model.js.map +1 -1
  137. package/models/logged-in-users.model.js +3 -1
  138. package/models/logged-in-users.model.js.map +1 -1
  139. package/models/method-call.model.js +3 -1
  140. package/models/method-call.model.js.map +1 -1
  141. package/models/method-response.model.js +3 -1
  142. package/models/method-response.model.js.map +1 -1
  143. package/models/method.model.js +3 -1
  144. package/models/method.model.js.map +1 -1
  145. package/models/monitor-cpu.model.js +3 -1
  146. package/models/monitor-cpu.model.js.map +1 -1
  147. package/models/monitor-https-inbound.model.js +3 -1
  148. package/models/monitor-https-inbound.model.js.map +1 -1
  149. package/models/monitor-https-outbound.model.js +3 -1
  150. package/models/monitor-https-outbound.model.js.map +1 -1
  151. package/models/monitor-memory.model.js +3 -1
  152. package/models/monitor-memory.model.js.map +1 -1
  153. package/models/monitor-mongo.model.js +3 -1
  154. package/models/monitor-mongo.model.js.map +1 -1
  155. package/models/notification.model.js +3 -1
  156. package/models/notification.model.js.map +1 -1
  157. package/models/pagination.model.js +23 -1
  158. package/models/pagination.model.js.map +1 -1
  159. package/models/permission.model.js +3 -1
  160. package/models/permission.model.js.map +1 -1
  161. package/models/report-builder-dashboard-builder.model.js +3 -1
  162. package/models/report-builder-dashboard-builder.model.js.map +1 -1
  163. package/models/report-builder-library.model.js +3 -1
  164. package/models/report-builder-library.model.js.map +1 -1
  165. package/models/report-builder-report.model.js +3 -1
  166. package/models/report-builder-report.model.js.map +1 -1
  167. package/models/report-builder.model.js +3 -1
  168. package/models/report-builder.model.js.map +1 -1
  169. package/models/select-data-label.model.js +3 -1
  170. package/models/select-data-label.model.js.map +1 -1
  171. package/models/server-response.model.js +3 -1
  172. package/models/server-response.model.js.map +1 -1
  173. package/models/subscription.model.js +3 -1
  174. package/models/subscription.model.js.map +1 -1
  175. package/models/support-ticket.model.js +3 -1
  176. package/models/support-ticket.model.js.map +1 -1
  177. package/models/user-group.model.js +3 -1
  178. package/models/user-group.model.js.map +1 -1
  179. package/models/user-guide.model.js +3 -1
  180. package/models/user-guide.model.js.map +1 -1
  181. package/models/user.model.js +3 -1
  182. package/models/user.model.js.map +1 -1
  183. package/package.json +1 -2
  184. package/public_api.js +78 -1
  185. package/public_api.js.map +1 -1
  186. package/publications/app-status.js +16 -1
  187. package/publications/app-status.js.map +1 -1
  188. package/publications/app-version.js +16 -1
  189. package/publications/app-version.js.map +1 -1
  190. package/publications/cron-jobs.js +32 -1
  191. package/publications/cron-jobs.js.map +1 -1
  192. package/publications/files.js +36 -1
  193. package/publications/files.js.map +1 -1
  194. package/publications/flags.js +22 -1
  195. package/publications/flags.js.map +1 -1
  196. package/publications/logs.js +90 -1
  197. package/publications/logs.js.map +1 -1
  198. package/publications/method-calls.js +16 -1
  199. package/publications/method-calls.js.map +1 -1
  200. package/publications/method-responses.js +16 -1
  201. package/publications/method-responses.js.map +1 -1
  202. package/publications/notifications.js +16 -1
  203. package/publications/notifications.js.map +1 -1
  204. package/publications/report-builder-dashboard-builders.js +42 -1
  205. package/publications/report-builder-dashboard-builders.js.map +1 -1
  206. package/publications/report-builder-libraries.js +89 -1
  207. package/publications/report-builder-libraries.js.map +1 -1
  208. package/publications/report-builder-reports.js +50 -1
  209. package/publications/report-builder-reports.js.map +1 -1
  210. package/publications/super-admin.js +16 -1
  211. package/publications/super-admin.js.map +1 -1
  212. package/publications/user-groups.js +16 -1
  213. package/publications/user-groups.js.map +1 -1
  214. package/publications/user-guides.js +16 -1
  215. package/publications/user-guides.js.map +1 -1
  216. package/server-app.js +682 -1
  217. package/server-app.js.map +1 -1
  218. package/util/common.js +498 -1
  219. package/util/common.js.map +1 -1
  220. package/util/schema-report-builder.js +452 -1
  221. package/util/schema-report-builder.js.map +1 -1
@@ -1,2 +1,335 @@
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;
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
+
2
335
  //# sourceMappingURL=monitor.manager.js.map
@@ -1 +1 @@
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}"]}
1
+ {"version":3,"sources":["../../src/managers/monitor.manager.ts"],"names":[],"mappings":"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","file":"monitor.manager.js","sourcesContent":["import ResolveIOMainServer from '../server-app';\nimport * as bent from 'bent';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { 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}"]}