@nsshunt/stsappframework 3.3.132 → 3.3.134

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 (81) hide show
  1. package/README.md +42 -0
  2. package/dist/commonTypes.js +6 -6
  3. package/dist/commonTypes.js.map +1 -1
  4. package/dist/controller/stscontrollerbase.js.map +1 -1
  5. package/dist/controller/stslatencycontroller.js +10 -4
  6. package/dist/controller/stslatencycontroller.js.map +1 -1
  7. package/dist/grpc/grpcServer.js +32 -31
  8. package/dist/grpc/grpcServer.js.map +1 -1
  9. package/dist/index.js +15 -15
  10. package/dist/index.js.map +1 -1
  11. package/dist/logger/socketClientLogPublisher.js +12 -12
  12. package/dist/logger/socketClientLogPublisher.js.map +1 -1
  13. package/dist/logger/stsTransportLoggerSocket.js +9 -9
  14. package/dist/logger/stsTransportLoggerSocket.js.map +1 -1
  15. package/dist/logger/stsTransportLoggerWinston.js +2 -2
  16. package/dist/logger/stsTransportLoggerWinston.js.map +1 -1
  17. package/dist/logger/stsTransportWinston.js +3 -3
  18. package/dist/logger/stsTransportWinston.js.map +1 -1
  19. package/dist/middleware/serverNetworkMiddleware.js +41 -34
  20. package/dist/middleware/serverNetworkMiddleware.js.map +1 -1
  21. package/dist/network.js +2 -2
  22. package/dist/network.js.map +1 -1
  23. package/dist/process/masterprocessbase.js +92 -78
  24. package/dist/process/masterprocessbase.js.map +1 -1
  25. package/dist/process/processbase.js +58 -55
  26. package/dist/process/processbase.js.map +1 -1
  27. package/dist/process/serverprocessbase.js +104 -62
  28. package/dist/process/serverprocessbase.js.map +1 -1
  29. package/dist/process/singleprocessbase.js +17 -14
  30. package/dist/process/singleprocessbase.js.map +1 -1
  31. package/dist/process/workerprocessbase.js +39 -34
  32. package/dist/process/workerprocessbase.js.map +1 -1
  33. package/dist/publishertransports/publishTransportUtils.js +4 -4
  34. package/dist/publishertransports/publishTransportUtils.js.map +1 -1
  35. package/dist/route/stslatencyroute.js +3 -3
  36. package/dist/route/stslatencyroute.js.map +1 -1
  37. package/dist/route/stsrouterbase.js +1 -1
  38. package/dist/route/stsrouterbase.js.map +1 -1
  39. package/dist/server.test.js +2 -2
  40. package/dist/stsexpressserver.js +22 -19
  41. package/dist/stsexpressserver.js.map +1 -1
  42. package/dist/validation/errors.js +2 -2
  43. package/package.json +17 -16
  44. package/types/commonTypes.d.ts +24 -20
  45. package/types/commonTypes.d.ts.map +1 -1
  46. package/types/controller/stscontrollerbase.d.ts +1 -1
  47. package/types/controller/stscontrollerbase.d.ts.map +1 -1
  48. package/types/controller/stslatencycontroller.d.ts +2 -2
  49. package/types/controller/stslatencycontroller.d.ts.map +1 -1
  50. package/types/grpc/grpcServer.d.ts.map +1 -1
  51. package/types/index.d.ts +15 -15
  52. package/types/index.d.ts.map +1 -1
  53. package/types/logger/socketClientLogPublisher.d.ts +3 -3
  54. package/types/logger/socketClientLogPublisher.d.ts.map +1 -1
  55. package/types/logger/stsTransportLoggerSocket.d.ts +2 -2
  56. package/types/logger/stsTransportLoggerSocket.d.ts.map +1 -1
  57. package/types/logger/stsTransportLoggerWinston.d.ts +2 -2
  58. package/types/logger/stsTransportLoggerWinston.d.ts.map +1 -1
  59. package/types/logger/stsTransportWinston.d.ts +2 -2
  60. package/types/logger/stsTransportWinston.d.ts.map +1 -1
  61. package/types/middleware/serverNetworkMiddleware.d.ts +3 -3
  62. package/types/middleware/serverNetworkMiddleware.d.ts.map +1 -1
  63. package/types/network.d.ts.map +1 -1
  64. package/types/process/masterprocessbase.d.ts +4 -4
  65. package/types/process/masterprocessbase.d.ts.map +1 -1
  66. package/types/process/processbase.d.ts +5 -5
  67. package/types/process/processbase.d.ts.map +1 -1
  68. package/types/process/serverprocessbase.d.ts +3 -3
  69. package/types/process/serverprocessbase.d.ts.map +1 -1
  70. package/types/process/singleprocessbase.d.ts +3 -3
  71. package/types/process/singleprocessbase.d.ts.map +1 -1
  72. package/types/process/workerprocessbase.d.ts +3 -3
  73. package/types/process/workerprocessbase.d.ts.map +1 -1
  74. package/types/publishertransports/publishTransportUtils.d.ts +1 -1
  75. package/types/publishertransports/publishTransportUtils.d.ts.map +1 -1
  76. package/types/route/stslatencyroute.d.ts +2 -2
  77. package/types/route/stslatencyroute.d.ts.map +1 -1
  78. package/types/route/stsrouterbase.d.ts +2 -2
  79. package/types/route/stsrouterbase.d.ts.map +1 -1
  80. package/types/stsexpressserver.d.ts +2 -2
  81. package/types/stsexpressserver.d.ts.map +1 -1
@@ -1,17 +1,17 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
- import chalk from 'chalk'; // Note: Do NOT upgrade beyond 4.1.2 as the ESM version (5.0.0+) breaks this entire codebase
3
- import { TinyEmitter } from 'tiny-emitter';
4
- import { randomUUID } from 'node:crypto';
5
- import onHeaders from 'on-headers';
2
+ import chalk from "chalk"; // Note: Do NOT upgrade beyond 4.1.2 as the ESM version (5.0.0+) breaks this entire codebase
3
+ import { TinyEmitter } from "tiny-emitter";
4
+ import { randomUUID } from "node:crypto";
5
+ import onHeaders from "on-headers";
6
6
  export var ServerNetworkMiddlewareEventName;
7
7
  (function (ServerNetworkMiddlewareEventName) {
8
- ServerNetworkMiddlewareEventName["UpdateInstrument_SERVER_NET_VAL"] = "UpdateInstrument_SERVER_NET_VAL"; // request net stats
8
+ ServerNetworkMiddlewareEventName["UpdateInstrument_SERVER_NET_VAL"] = "UpdateInstrument_SERVER_NET_VAL";
9
9
  })(ServerNetworkMiddlewareEventName || (ServerNetworkMiddlewareEventName = {}));
10
10
  export class ServerNetworkMiddleware {
11
11
  options;
12
12
  #tinyEmitter = new TinyEmitter();
13
13
  #socketCollection = {};
14
- #id = '';
14
+ #id = "";
15
15
  constructor(options) {
16
16
  this.options = options;
17
17
  }
@@ -37,26 +37,32 @@ export class ServerNetworkMiddleware {
37
37
  workingSocketRecord.eventName = eventName;
38
38
  workingSocketRecord.currentBytesRead = req.socket.bytesRead;
39
39
  workingSocketRecord.currentBytesWritten = req.socket.bytesWritten;
40
- workingSocketRecord.requestBytesRead = workingSocketRecord.currentBytesRead - workingSocketRecord.lastBytesRead;
41
- workingSocketRecord.requestBytesWritten = workingSocketRecord.currentBytesWritten - workingSocketRecord.lastBytesWritten;
40
+ workingSocketRecord.requestBytesRead =
41
+ workingSocketRecord.currentBytesRead -
42
+ workingSocketRecord.lastBytesRead;
43
+ workingSocketRecord.requestBytesWritten =
44
+ workingSocketRecord.currentBytesWritten -
45
+ workingSocketRecord.lastBytesWritten;
42
46
  //this.#LogDebugMessage(chalk.gray(`totalBytesRead: [${workingSocketRecord.id}] [${workingSocketRecord.originalUrl}] [${eventName}] [${workingSocketRecord.requestBytesRead}]`));
43
47
  //this.#LogDebugMessage(chalk.gray(`totalBytesWritten: [${workingSocketRecord.id}] [${workingSocketRecord.originalUrl}] [${eventName}] [${workingSocketRecord.requestBytesWritten}]`));
44
48
  const workingSocketEventRecord = { ...workingSocketRecord };
45
49
  delete workingSocketEventRecord.socket;
46
50
  this.#LogSillyMessage(chalk.gray(`Sending event: [${JSON.stringify(workingSocketEventRecord)}]`));
47
51
  this.#tinyEmitter.emit(ServerNetworkMiddlewareEventName.UpdateInstrument_SERVER_NET_VAL, workingSocketEventRecord);
48
- workingSocketRecord.lastBytesRead = workingSocketRecord.currentBytesRead;
49
- workingSocketRecord.lastBytesWritten = workingSocketRecord.currentBytesWritten;
52
+ workingSocketRecord.lastBytesRead =
53
+ workingSocketRecord.currentBytesRead;
54
+ workingSocketRecord.lastBytesWritten =
55
+ workingSocketRecord.currentBytesWritten;
50
56
  };
51
57
  #GetRequestContentSize = (req) => {
52
58
  try {
53
59
  let contentLength = 0;
54
- if (req['_contentLength']) {
55
- contentLength = req['_contentLength'];
60
+ if (req["_contentLength"]) {
61
+ contentLength = req["_contentLength"];
56
62
  }
57
63
  else {
58
- if (req.headers['content-length']) {
59
- contentLength = parseInt(req.headers['content-length']);
64
+ if (req.headers["content-length"]) {
65
+ contentLength = parseInt(req.headers["content-length"]);
60
66
  }
61
67
  }
62
68
  return contentLength;
@@ -81,25 +87,26 @@ export class ServerNetworkMiddleware {
81
87
  requestBytesRead: 0,
82
88
  requestBytesWritten: 0,
83
89
  originalUrl: req.originalUrl,
84
- eventName: '',
90
+ eventName: "",
85
91
  };
86
- this.#socketCollection[workingSocketRecord.id] = workingSocketRecord;
92
+ this.#socketCollection[workingSocketRecord.id] =
93
+ workingSocketRecord;
87
94
  this.#LogSillyMessage(chalk.gray(`Adding new socket to recordset: ID: [${workingSocketRecord.id}], originalUrl: [${workingSocketRecord.originalUrl}]`));
88
- workingSocketRecord.socket.on('data', () => {
95
+ workingSocketRecord.socket.on("data", () => {
89
96
  const socketRecord = this.GetSocketRecord(workingSocketRecord.socket);
90
97
  if (socketRecord) {
91
98
  this.#LogSillyMessage(chalk.gray(`Socket data event: ID: [${socketRecord.id}], originalUrl: [${socketRecord.originalUrl}]`));
92
- this.UpdateNetworkStats(socketRecord, 'socket_data', req);
99
+ this.UpdateNetworkStats(socketRecord, "socket_data", req);
93
100
  }
94
101
  else {
95
102
  this.#LogSillyMessage(chalk.magenta(`Socket data event: Could not find socket within recordset`));
96
103
  }
97
104
  });
98
- workingSocketRecord.socket.on('close', () => {
105
+ workingSocketRecord.socket.on("close", () => {
99
106
  const socketRecord = this.GetSocketRecord(workingSocketRecord.socket);
100
107
  if (socketRecord) {
101
108
  this.#LogSillyMessage(chalk.gray(`Socket close event: ID: [${socketRecord.id}], originalUrl: [${socketRecord.originalUrl}]`));
102
- this.UpdateNetworkStats(socketRecord, 'socket_close', req);
109
+ this.UpdateNetworkStats(socketRecord, "socket_close", req);
103
110
  delete this.#socketCollection[socketRecord.id];
104
111
  this.#LogSillyMessage(chalk.gray(`Socket removed from recordset: ID: [${socketRecord.id}], originalUrl: [${socketRecord.originalUrl}]`));
105
112
  }
@@ -107,11 +114,11 @@ export class ServerNetworkMiddleware {
107
114
  this.#LogSillyMessage(chalk.magenta(`Socket close event: Could not find socket within recordset`));
108
115
  }
109
116
  });
110
- workingSocketRecord.socket.on('end', () => {
117
+ workingSocketRecord.socket.on("end", () => {
111
118
  const socketRecord = this.GetSocketRecord(workingSocketRecord.socket);
112
119
  if (socketRecord) {
113
120
  this.#LogSillyMessage(chalk.gray(`Socket end event: ID: [${socketRecord.id}], originalUrl: [${socketRecord.originalUrl}]`));
114
- this.UpdateNetworkStats(socketRecord, 'socket_end', req);
121
+ this.UpdateNetworkStats(socketRecord, "socket_end", req);
115
122
  }
116
123
  else {
117
124
  this.#LogSillyMessage(chalk.magenta(`Socket end event: Could not find socket within recordset`));
@@ -122,38 +129,38 @@ export class ServerNetworkMiddleware {
122
129
  // From brief observations, this appears to be about 80 bytes short from what is reported by the socket writtenBytes.
123
130
  onHeaders(res, () => {
124
131
  let contentLength = 0;
125
- if (res['_contentLength']) {
126
- contentLength = res['_contentLength'];
132
+ if (res["_contentLength"]) {
133
+ contentLength = res["_contentLength"];
127
134
  }
128
135
  else {
129
- if (res.hasHeader('content-length')) {
130
- contentLength = parseInt(res.getHeader('content-length'));
136
+ if (res.hasHeader("content-length")) {
137
+ contentLength = parseInt(res.getHeader("content-length"));
131
138
  }
132
139
  }
133
140
  // Ensure that the client does NOT cache the response
134
- res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); // HTTP 1.1
135
- res.setHeader('Pragma', 'no-cache'); // HTTP 1.0
136
- res.setHeader('Expires', '0'); // Proxies
141
+ res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
142
+ res.setHeader("Pragma", "no-cache"); // HTTP 1.0
143
+ res.setHeader("Expires", "0"); // Proxies
137
144
  const headerLength = JSON.stringify(res.getHeaders()).length;
138
145
  const totalSize = contentLength + headerLength;
139
146
  this.#LogSillyMessage(chalk.white.bgBlue(`contentLength: [${contentLength}], headerLength: [${headerLength}], total Size: [${totalSize}]`));
140
147
  });
141
148
  // This event is the one where bytesWritten is generally recorded
142
- req.on('end', () => {
149
+ req.on("end", () => {
143
150
  const socketRecord = this.GetSocketRecord(req.socket);
144
151
  if (socketRecord) {
145
152
  this.#LogSillyMessage(chalk.gray(`Request end event: ID: [${socketRecord.id}], originalUrl: [${socketRecord.originalUrl}]`));
146
- this.UpdateNetworkStats(socketRecord, 'req_end', req);
153
+ this.UpdateNetworkStats(socketRecord, "req_end", req);
147
154
  }
148
155
  else {
149
156
  this.#LogSillyMessage(chalk.magenta(`Request end event: Could not find socket within recordset`));
150
157
  }
151
158
  });
152
- req.on('close', () => {
159
+ req.on("close", () => {
153
160
  const socketRecord = this.GetSocketRecord(req.socket);
154
161
  if (socketRecord) {
155
162
  this.#LogSillyMessage(chalk.gray(`Request close event: ID: [${socketRecord.id}], originalUrl: [${socketRecord.originalUrl}]`));
156
- this.UpdateNetworkStats(socketRecord, 'req_close', req);
163
+ this.UpdateNetworkStats(socketRecord, "req_close", req);
157
164
  }
158
165
  else {
159
166
  this.#LogSillyMessage(chalk.magenta(`Request close event: Could not find socket within recordset`));
@@ -185,7 +192,7 @@ export class ServerNetworkMiddleware {
185
192
  const inTotal = inHeadersLength + inContentLength;
186
193
  this.#LogSillyMessage(chalk.white.bgGray(`inHeadersLength: [${inHeadersLength}], inContentLength: [${inContentLength}], inTotal: [${inTotal}]`));
187
194
  // This event is the one where bytesRead is generally recorded
188
- this.UpdateNetworkStats(workingSocketRecord, 'middleware', req);
195
+ this.UpdateNetworkStats(workingSocketRecord, "middleware", req);
189
196
  next();
190
197
  };
191
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serverNetworkMiddleware.js","sourceRoot":"","sources":["../../src/middleware/serverNetworkMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverNetworkMiddleware.js","sourceRoot":"","sources":["../../src/middleware/serverNetworkMiddleware.ts"],"names":[],"mappings":"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"}
package/dist/network.js CHANGED
@@ -1,4 +1,4 @@
1
- import os from 'os';
1
+ import os from "os";
2
2
  export function GetNetworkInterfaces() {
3
3
  const nets = os.networkInterfaces();
4
4
  const results = {};
@@ -6,7 +6,7 @@ export function GetNetworkInterfaces() {
6
6
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
7
  for (const net of nets[name]) {
8
8
  // Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses
9
- if (net.family === 'IPv4' && !net.internal) {
9
+ if (net.family === "IPv4" && !net.internal) {
10
10
  if (!results[name]) {
11
11
  results[name] = [];
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAInB,MAAM,UAAU,oBAAoB;IAChC,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAsB,EAAG,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,8DAA8D;QAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAQ,EAAE,CAAC;YAClC,6DAA6D;YAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,MAAM,IAAI,GAAsB,oBAAoB,EAAE,CAAC;IACvD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EACtB,CAAC;QACG,MAAM,GAAG,GAAa,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAClB,CAAC;YACG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM;QACV,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,MAAM,UAAU,oBAAoB;IAChC,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,8DAA8D;QAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAQ,EAAE,CAAC;YAClC,6DAA6D;YAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,MAAM,IAAI,GAAsB,oBAAoB,EAAE,CAAC;IACvD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAa,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjB,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM;QACV,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -1,29 +1,29 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
2
  import fs from "node:fs";
3
- import si from 'systeminformation'; // https://systeminformation.io/
4
- import axios from 'axios';
5
- import cluster from 'node:cluster';
6
- import chalk from 'chalk';
7
- import express from 'express';
8
- import { setupPrimary } from '@socket.io/cluster-adapter';
9
- import { createServer as createServerHttps } from 'node:https';
10
- import { createServer } from 'node:http';
11
- import { AggregatorRegistry } from 'prom-client';
12
- import { goptions } from '@nsshunt/stsconfig';
13
- import { Gauge, GaugeTypes } from '@nsshunt/stsobservability';
14
- import { ProcessBase } from './processbase.js';
15
- import { IPCMessageCommand } from './../commonTypes.js';
16
- import { STSTransportLoggerWinston } from './../logger/stsTransportLoggerWinston.js';
17
- import { Sleep, STSAxiosConfig, createAgentManager } from '@nsshunt/stsutils';
18
- import http from 'node:http';
19
- import https from 'node:https';
3
+ import si from "systeminformation"; // https://systeminformation.io/
4
+ import axios from "axios";
5
+ import cluster from "node:cluster";
6
+ import chalk from "chalk";
7
+ import express from "express";
8
+ import { setupPrimary } from "@socket.io/cluster-adapter";
9
+ import { createServer as createServerHttps } from "node:https";
10
+ import { createServer } from "node:http";
11
+ import { AggregatorRegistry } from "prom-client";
12
+ import { goptions } from "@nsshunt/stsconfig";
13
+ import { Gauge, GaugeTypes, } from "@nsshunt/stsobservability";
14
+ import { ProcessBase } from "./processbase.js";
15
+ import { IPCMessageCommand } from "./../commonTypes.js";
16
+ import { STSTransportLoggerWinston } from "./../logger/stsTransportLoggerWinston.js";
17
+ import { Sleep, STSAxiosConfig, createAgentManager, } from "@nsshunt/stsutils";
18
+ import http from "node:http";
19
+ import https from "node:https";
20
20
  //import { GetFirstNetworkInterface } from './network';
21
21
  export class MasterProcessBase extends ProcessBase {
22
22
  //static WORKER_MESSAGE_EVENT = 'sts_worker_message_event';
23
23
  #masterProcessExitTime = goptions.masterProcessExitTime;
24
24
  #childProcessExitTime = goptions.childProcessExitTime;
25
25
  #siValueObject = {
26
- currentLoad: 'currentLoad'
26
+ currentLoad: "currentLoad",
27
27
  };
28
28
  #httpServer = null; // Prometheus cluster server. See https://github.com/siimon/prom-client/blob/master/example/cluster.js
29
29
  #metricsServer = null;
@@ -42,14 +42,14 @@ export class MasterProcessBase extends ProcessBase {
42
42
  maxSockets: goptions.maxSockets,
43
43
  maxTotalSockets: goptions.maxTotalSockets,
44
44
  timeout: goptions.timeout,
45
- rejectUnauthorized: goptions.isProduction // Allows self-signed certificates if non-production
45
+ rejectUnauthorized: goptions.isProduction, // Allows self-signed certificates if non-production
46
46
  },
47
47
  httpAgentFactory(options) {
48
48
  return new http.Agent(options);
49
49
  },
50
50
  httpsAgentFactory(options) {
51
51
  return new https.Agent(options);
52
- }
52
+ },
53
53
  });
54
54
  }
55
55
  #LogErrorMessage(message) {
@@ -60,21 +60,24 @@ export class MasterProcessBase extends ProcessBase {
60
60
  }
61
61
  CollectAdditionalTelemetry() {
62
62
  try {
63
- si.get(this.#siValueObject).then(data => {
63
+ si.get(this.#siValueObject).then((data) => {
64
64
  this.UpdateInstrument(Gauge.CPU_SYSTEM_LOAD_GAUGE, {
65
- val: data.currentLoad.currentLoad
65
+ val: data.currentLoad.currentLoad,
66
66
  });
67
67
  });
68
68
  }
69
- catch (error) {
70
- }
69
+ catch (error) { }
71
70
  }
72
71
  GetAdditionalInstruments() {
73
72
  return [
74
- [Gauge.CPU_SYSTEM_LOAD_GAUGE, GaugeTypes.INSTRUMENT_GAUGE, {
73
+ [
74
+ Gauge.CPU_SYSTEM_LOAD_GAUGE,
75
+ GaugeTypes.INSTRUMENT_GAUGE,
76
+ {
75
77
  interval: goptions.instrumentationObservationInterval,
76
- sampleSize: goptions.instrumentationTimeWindow
77
- }]
78
+ sampleSize: goptions.instrumentationTimeWindow,
79
+ },
80
+ ],
78
81
  ];
79
82
  }
80
83
  /**
@@ -90,8 +93,8 @@ export class MasterProcessBase extends ProcessBase {
90
93
  }
91
94
  }
92
95
  #InitCluster = () => {
93
- cluster.on('listening', (worker, address) => {
94
- this.emit('clusterListening', worker, address);
96
+ cluster.on("listening", (worker, address) => {
97
+ this.emit("clusterListening", worker, address);
95
98
  let allListening = true;
96
99
  for (const worker of Object.values(cluster.workers)) {
97
100
  if (worker?.isConnected) {
@@ -101,7 +104,7 @@ export class MasterProcessBase extends ProcessBase {
101
104
  }
102
105
  if (allListening) {
103
106
  this.LogInfoMessage(`Service instance started.`);
104
- this.emit('allListening');
107
+ this.emit("allListening");
105
108
  }
106
109
  });
107
110
  };
@@ -110,24 +113,24 @@ export class MasterProcessBase extends ProcessBase {
110
113
  this.#metricsServer = express();
111
114
  this.#aggregatorRegistry = new AggregatorRegistry();
112
115
  switch (goptions.STSServerType) {
113
- case 'EXPRESS_TLS':
116
+ case "EXPRESS_TLS":
114
117
  {
115
118
  const options = {
116
119
  key: fs.readFileSync(this.options.httpsServerKeyPath),
117
- cert: fs.readFileSync(this.options.httpsServerCertificatePath)
120
+ cert: fs.readFileSync(this.options.httpsServerCertificatePath),
118
121
  };
119
122
  this.#httpServer = createServerHttps(options, this.#metricsServer);
120
123
  }
121
124
  break;
122
- case 'EXPRESS': {
125
+ case "EXPRESS": {
123
126
  this.#httpServer = createServer(this.#metricsServer);
124
127
  }
125
128
  }
126
129
  //this.#httpServer.maxConnections = 50;
127
- this.#metricsServer.get('/cluster_metrics', async (req, res) => {
130
+ this.#metricsServer.get("/cluster_metrics", async (req, res) => {
128
131
  try {
129
132
  const metrics = await this.#aggregatorRegistry.clusterMetrics();
130
- res.set('Content-Type', this.#aggregatorRegistry.contentType);
133
+ res.set("Content-Type", this.#aggregatorRegistry.contentType);
131
134
  res.send(metrics);
132
135
  }
133
136
  catch (ex) {
@@ -141,10 +144,12 @@ export class MasterProcessBase extends ProcessBase {
141
144
  //@@httpServer.listen('/tmp/stsrest01.sock').on('listening', () =>
142
145
  //@@httpServer.listen('/var/run/sts/stsrest01.sock').on('listening', () =>
143
146
  //@@httpServer.listen('/var/lib/sts/stsrest01.sock').on('listening', () =>
144
- this.#httpServer.listen(this.options.prometheusClusterPort, () => {
147
+ this.#httpServer
148
+ .listen(this.options.prometheusClusterPort, () => {
145
149
  //@@chmodSync(this.options.port, 511);
146
- }).on('listening', () => {
147
- this.emit('prometheusScrapesListening', `${this.options.endpoint}:${this.options.prometheusClusterPort}/metrics`, this.options.endpoint, this.options.prometheusClusterPort);
150
+ })
151
+ .on("listening", () => {
152
+ this.emit("prometheusScrapesListening", `${this.options.endpoint}:${this.options.prometheusClusterPort}/metrics`, this.options.endpoint, this.options.prometheusClusterPort);
148
153
  this.LogInfoMessage(`Prometheus scrapes ready and live on ${this.options.endpoint}:${this.options.prometheusClusterPort}/metrics`);
149
154
  });
150
155
  }
@@ -163,7 +168,7 @@ export class MasterProcessBase extends ProcessBase {
163
168
  // We use port rather than hostport becuase this test going outside the service and comes back in as a regular client
164
169
  const url = `${this.options.endpoint}:${this.options.port}${this.options.apiRoot}/latency`;
165
170
  try {
166
- retVal = await axios(new STSAxiosConfig(url, 'get')
171
+ retVal = await axios(new STSAxiosConfig(url, "get")
167
172
  .withDefaultHeaders()
168
173
  .withAgentManager(this.#agentManager).config);
169
174
  if (retVal.status !== 200) {
@@ -187,10 +192,10 @@ export class MasterProcessBase extends ProcessBase {
187
192
  timeInMs = (end[0] * 1000000000 + end[1]) / 1000000;
188
193
  timeInMs = parseFloat(timeInMs.toFixed(4));
189
194
  this.UpdateInstrument(Gauge.LATENCY_HISTOGRAM_GAUGE, {
190
- val: timeInMs
195
+ val: timeInMs,
191
196
  });
192
197
  this.UpdateInstrument(Gauge.LATENCY_GAUGE, {
193
- val: timeInMs
198
+ val: timeInMs,
194
199
  });
195
200
  };
196
201
  SetupServer = async () => {
@@ -204,8 +209,12 @@ export class MasterProcessBase extends ProcessBase {
204
209
  if (cluster.workers && cluster.workers[id]) {
205
210
  const worker = cluster.workers[id];
206
211
  if (worker.process) {
207
- this.LogInfoMessage(chalk.grey(`Sending terminate message `) + chalk.yellow(`(initiated by ${signal})`) + chalk.grey(` for worker PID: ${worker.process.pid}`));
208
- const command = (killProcess ? 'TerminateAndKill' : 'Terminate');
212
+ this.LogInfoMessage(chalk.grey(`Sending terminate message `) +
213
+ chalk.yellow(`(initiated by ${signal})`) +
214
+ chalk.grey(` for worker PID: ${worker.process.pid}`));
215
+ const command = killProcess
216
+ ? "TerminateAndKill"
217
+ : "Terminate";
209
218
  try {
210
219
  worker.send({ command });
211
220
  //worker.process.send( { command } );
@@ -233,8 +242,9 @@ export class MasterProcessBase extends ProcessBase {
233
242
  };
234
243
  KillWorker = (id, signal = "SIGTERM", options, killProcess, allowKillAll) => {
235
244
  try {
236
- if (allowKillAll || Object.keys(cluster.workers).length > 1) {
237
- if (id.localeCompare('0') === 0) {
245
+ if (allowKillAll ||
246
+ Object.keys(cluster.workers).length > 1) {
247
+ if (id.localeCompare("0") === 0) {
238
248
  const keys = Object.keys(cluster.workers);
239
249
  for (let i = keys.length - 1; i > 0; i--) {
240
250
  // Kill the last one added (assumed node keeps them in order)
@@ -268,7 +278,7 @@ export class MasterProcessBase extends ProcessBase {
268
278
  const logPrefix = `MasterProcessBase:KillWorkers():${process.pid}:`;
269
279
  try {
270
280
  this.LogInfoMessage(`${logPrefix} Killing Workers.`);
271
- const keepOneAlive = (keepOne ? keepOne : false);
281
+ const keepOneAlive = keepOne ? keepOne : false;
272
282
  let skippedFirst = false;
273
283
  const sortedIdList = [];
274
284
  for (const id in cluster.workers) {
@@ -290,7 +300,7 @@ export class MasterProcessBase extends ProcessBase {
290
300
  #UpdateWorkersInstrument = () => {
291
301
  setTimeout(() => {
292
302
  this.UpdateInstrument(Gauge.CORE_COUNT_GAUGE, {
293
- val: this.#workers
303
+ val: this.#workers,
294
304
  });
295
305
  }, 2000);
296
306
  };
@@ -321,7 +331,7 @@ export class MasterProcessBase extends ProcessBase {
321
331
  case IPCMessageCommand.AddWorker: {
322
332
  const workerId = this.AddWorker(iPCMessagePayload.requestDetail?.options);
323
333
  iPCMessagePayload.responseDetail = {
324
- workerId
334
+ workerId,
325
335
  };
326
336
  return iPCMessagePayload;
327
337
  }
@@ -331,7 +341,7 @@ export class MasterProcessBase extends ProcessBase {
331
341
  this.#LogDebugMessage(chalk.yellow(` Killed worker with id: [${workerId}]`));
332
342
  iPCMessagePayload.responseDetail = {
333
343
  workerId,
334
- workerKilled
344
+ workerKilled,
335
345
  };
336
346
  return iPCMessagePayload;
337
347
  }
@@ -342,7 +352,7 @@ export class MasterProcessBase extends ProcessBase {
342
352
  delete safeOptions.expressServerRouteFactory;
343
353
  //this.#LogDebugMessage(chalk.yellow(` Safe options: [${JSON.stringify(safeOptions)}]`));
344
354
  iPCMessagePayload.responseDetail = {
345
- safeOptions
355
+ safeOptions,
346
356
  };
347
357
  return iPCMessagePayload;
348
358
  }
@@ -359,9 +369,9 @@ export class MasterProcessBase extends ProcessBase {
359
369
  // Remove the assigned loggers (this will need to be re-created in the worker thread)
360
370
  delete tempOptions.logger;
361
371
  delete tempOptions.publisherLogger;
362
- workerEnv['STS_GSD_SII'] = JSON.stringify(tempOptions);
372
+ workerEnv["STS_GSD_SII"] = JSON.stringify(tempOptions);
363
373
  if (spawnWorkerOptions) {
364
- workerEnv['STS_GSD_OPTIONS'] = JSON.stringify(spawnWorkerOptions);
374
+ workerEnv["STS_GSD_OPTIONS"] = JSON.stringify(spawnWorkerOptions);
365
375
  }
366
376
  /*
367
377
  // https://nodejs.org/api/cluster.html#clustersetupprimarysettings
@@ -377,8 +387,8 @@ export class MasterProcessBase extends ProcessBase {
377
387
  */
378
388
  const worker = cluster.fork(workerEnv);
379
389
  this.IncWorkers();
380
- worker.on('exit', (code, signal) => {
381
- this.emit('workerExit', code, signal);
390
+ worker.on("exit", (code, signal) => {
391
+ this.emit("workerExit", code, signal);
382
392
  if (signal) {
383
393
  this.LogInfoMessage(`Worker: ${worker.process.pid} was killed by signal: ${signal}`);
384
394
  }
@@ -389,8 +399,8 @@ export class MasterProcessBase extends ProcessBase {
389
399
  this.LogInfoMessage(`Worker: ${worker.process.pid} exited successfully, code: ${code}, signal: ${signal}`);
390
400
  }
391
401
  });
392
- worker.on('message', async (payload) => {
393
- this.emit('workerMessage', worker.id, payload);
402
+ worker.on("message", async (payload) => {
403
+ this.emit("workerMessage", worker.id, payload);
394
404
  // Only handle request/response message types here ...
395
405
  if (payload.requestResponse) {
396
406
  const iPCMessagePayload = payload;
@@ -403,17 +413,18 @@ export class MasterProcessBase extends ProcessBase {
403
413
  this.#WorkerMessageEvent(worker.id, payload);
404
414
  }
405
415
  });
406
- worker.on('error', (error) => {
407
- this.emit('workerError', error);
416
+ worker.on("error", (error) => {
417
+ this.emit("workerError", error);
408
418
  const message = chalk.red(`#SpawnWorker():worker.on('error'): Error: [${error}]`);
409
419
  this.LogErrorMessage(message);
410
420
  });
411
- this.emit('workerAdded', worker.id);
421
+ this.emit("workerAdded", worker.id);
412
422
  return worker.id;
413
423
  };
414
424
  MasterStarted() {
425
+ // eslint-disable @typescript-eslint/no-empty-function
415
426
  const transport = new STSTransportLoggerWinston({
416
- stsApp: this
427
+ stsApp: this,
417
428
  });
418
429
  setTimeout(() => {
419
430
  this.options.logger.add(transport);
@@ -459,22 +470,22 @@ export class MasterProcessBase extends ProcessBase {
459
470
  this.#SpawnWorker();
460
471
  }
461
472
  this.#InitCluster();
462
- cluster.on('listening', (worker, address) => {
463
- this.emit('clusterListening', worker, address);
473
+ cluster.on("listening", (worker, address) => {
474
+ this.emit("clusterListening", worker, address);
464
475
  this.LogInfoMessage(`Worker process ${worker.process.pid} is listening at address: ${JSON.stringify(address)}`);
465
476
  });
466
477
  //Setting up lifecycle event listeners for worker processes
467
- cluster.on('online', worker => {
468
- this.emit('clusterOnline', worker);
478
+ cluster.on("online", (worker) => {
479
+ this.emit("clusterOnline", worker);
469
480
  this.LogInfoMessage(`Worker process ${worker.process.pid} is online`);
470
481
  });
471
- cluster.on('exit', (worker, code, signal) => {
472
- this.emit('clusterExit', worker, code, signal);
473
- if ((code !== null && code === 0) || (signal === 'SIGINT')) {
482
+ cluster.on("exit", (worker, code, signal) => {
483
+ this.emit("clusterExit", worker, code, signal);
484
+ if ((code !== null && code === 0) || signal === "SIGINT") {
474
485
  this.LogInfoMessage(chalk.green(`Process ${worker.process.pid} terminated gracefully with code: ${code}, signal: ${signal}`));
475
486
  this.DecWorkers();
476
487
  }
477
- else if ((code !== null && code === 15) || (signal === 'SIGTERM')) {
488
+ else if ((code !== null && code === 15) || signal === "SIGTERM") {
478
489
  this.DecWorkers();
479
490
  this.LogInfoMessage(chalk.red(`Process ${worker.process.pid} terminated with code: ${code}, signal: ${signal}`));
480
491
  }
@@ -483,7 +494,7 @@ export class MasterProcessBase extends ProcessBase {
483
494
  this.LogInfoMessage(chalk.red(`worker ${worker.process.pid} died`));
484
495
  this.LogInfoMessage(chalk.red(`code: ${code}`));
485
496
  this.LogInfoMessage(chalk.red(`signal: ${signal}`));
486
- this.LogInfoMessage(chalk.red('process terminated in an error state'));
497
+ this.LogInfoMessage(chalk.red("process terminated in an error state"));
487
498
  if (goptions.respawnOnFail === true) {
488
499
  this.LogInfoMessage(chalk.magenta(`Attemping to respawn worker`));
489
500
  this.#SpawnWorker();
@@ -537,16 +548,16 @@ export class MasterProcessBase extends ProcessBase {
537
548
  this.LogInfoMessage(`${logPrefix} Process already terminating.`);
538
549
  }
539
550
  };
540
- process.on('SIGINT', async () => {
541
- this.emit('processSigint');
542
- await Terminate('SIGINT');
551
+ process.on("SIGINT", async () => {
552
+ this.emit("processSigint");
553
+ await Terminate("SIGINT");
543
554
  });
544
- process.on('SIGTERM', async () => {
545
- this.emit('processSigterm');
546
- await Terminate('SIGTERM');
555
+ process.on("SIGTERM", async () => {
556
+ this.emit("processSigterm");
557
+ await Terminate("SIGTERM");
547
558
  });
548
- process.on('exit', (code) => {
549
- this.emit('processExit', code);
559
+ process.on("exit", (code) => {
560
+ this.emit("processExit", code);
550
561
  if (code === 0) {
551
562
  this.LogInfoMessage(chalk.green(`Main Process: ${process.pid} terminated gracefully with code: ${code}`));
552
563
  }
@@ -567,7 +578,10 @@ export class MasterProcessBase extends ProcessBase {
567
578
  for (const id in cluster.workers) {
568
579
  try {
569
580
  //@@this.LogInfoMessage(chalk.gray(`Sending message to worker PID: ${cluster.workers[id].process.pid}`));
570
- cluster.workers[id].process.send({ command: command, data: data });
581
+ cluster.workers[id].process.send({
582
+ command: command,
583
+ data: data,
584
+ });
571
585
  }
572
586
  catch (error) {
573
587
  //@@this.LogInfoMessage(error);