@nsshunt/stsappframework 3.1.160 → 3.1.162

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 (41) hide show
  1. package/dist/testertesting/app.js +198 -0
  2. package/dist/testertesting/app.js.map +1 -0
  3. package/dist/testertesting/commonTypes.js +39 -0
  4. package/dist/testertesting/commonTypes.js.map +1 -0
  5. package/dist/testertesting/requestResponseHelper.js +83 -0
  6. package/dist/testertesting/requestResponseHelper.js.map +1 -0
  7. package/dist/testertesting/telemetryProcessor.js +114 -0
  8. package/dist/testertesting/telemetryProcessor.js.map +1 -0
  9. package/dist/testertesting/workerInstance.js +141 -0
  10. package/dist/testertesting/workerInstance.js.map +1 -0
  11. package/dist/testertesting/workerManager.js +339 -0
  12. package/dist/testertesting/workerManager.js.map +1 -0
  13. package/dist/testertesting/workerPrimaryTestRunner01.js +62 -0
  14. package/dist/testertesting/workerPrimaryTestRunner01.js.map +1 -0
  15. package/dist/testertesting/workerWorkerTestRunner01.js +146 -0
  16. package/dist/testertesting/workerWorkerTestRunner01.js.map +1 -0
  17. package/package.json +1 -1
  18. package/src/testertesting/app.ts +243 -0
  19. package/src/testertesting/commonTypes.ts +197 -0
  20. package/src/testertesting/requestResponseHelper.ts +95 -0
  21. package/src/testertesting/telemetryProcessor.ts +128 -0
  22. package/src/testertesting/workerInstance.ts +165 -0
  23. package/src/testertesting/workerManager.ts +386 -0
  24. package/src/testertesting/workerPrimaryTestRunner01.ts +81 -0
  25. package/src/testertesting/workerWorkerTestRunner01.ts +184 -0
  26. package/types/testertesting/app.d.ts +2 -0
  27. package/types/testertesting/app.d.ts.map +1 -0
  28. package/types/testertesting/commonTypes.d.ts +167 -0
  29. package/types/testertesting/commonTypes.d.ts.map +1 -0
  30. package/types/testertesting/requestResponseHelper.d.ts +8 -0
  31. package/types/testertesting/requestResponseHelper.d.ts.map +1 -0
  32. package/types/testertesting/telemetryProcessor.d.ts +6 -0
  33. package/types/testertesting/telemetryProcessor.d.ts.map +1 -0
  34. package/types/testertesting/workerInstance.d.ts +18 -0
  35. package/types/testertesting/workerInstance.d.ts.map +1 -0
  36. package/types/testertesting/workerManager.d.ts +14 -0
  37. package/types/testertesting/workerManager.d.ts.map +1 -0
  38. package/types/testertesting/workerPrimaryTestRunner01.d.ts +8 -0
  39. package/types/testertesting/workerPrimaryTestRunner01.d.ts.map +1 -0
  40. package/types/testertesting/workerWorkerTestRunner01.d.ts +16 -0
  41. package/types/testertesting/workerWorkerTestRunner01.d.ts.map +1 -0
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
7
+ const cluster_1 = __importDefault(require("cluster"));
8
+ const worker_threads_1 = require("worker_threads");
9
+ const workerPrimaryTestRunner01_1 = require("./workerPrimaryTestRunner01");
10
+ const workerManager_1 = require("./workerManager");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ // Force chalk level
13
+ chalk_1.default.level = 3;
14
+ const stsobservability_1 = require("@nsshunt/stsobservability");
15
+ const stsutils_1 = require("@nsshunt/stsutils");
16
+ const uuid_1 = require("uuid");
17
+ const stsconfig_1 = require("@nsshunt/stsconfig");
18
+ const LogInfoMessage = (message) => console.log(chalk_1.default.grey(message));
19
+ const LogErrorMessage = (message) => console.error(chalk_1.default.red(message));
20
+ if (cluster_1.default.isPrimary) {
21
+ //new MasterProcessBase(ServiceConfigOptions(true, cluster.isPrimary)).SetupServer();
22
+ LogInfoMessage(`Primary ${process.pid} is running`);
23
+ // Fork workers.
24
+ cluster_1.default.fork();
25
+ cluster_1.default.on('exit', (worker, code, signal) => {
26
+ LogInfoMessage(`worker ${worker.process.pid} died`);
27
+ });
28
+ /*
29
+ const fileName ='./dist/webworkertesting/worker.js';
30
+
31
+ const publishCollectorWebWorker = new Worker(fileName);
32
+ publishCollectorWebWorker.unref();
33
+
34
+ publishCollectorWebWorker.postMessage({cmd: 'text', message: 'Hello World'});
35
+
36
+ publishCollectorWebWorker.on('message', (data) => {
37
+ LogInfoMessage(`cluster.primary (${process.pid}): message from worker = [${JSON.stringify(data)}]`);
38
+ });
39
+
40
+ const { port1, port2 } = new MessageChannel();
41
+
42
+ publishCollectorWebWorker.postMessage({cmd: 'portmessage', port: port2}, [ port2 ]);
43
+ port1.postMessage('sending to port1');
44
+ port1.on('message', (data) => {
45
+ LogInfoMessage(`cluster.primary (${process.pid}): message from message port = [${data}]`);
46
+ });
47
+ */
48
+ LogInfoMessage(`cluster primary completed ...`);
49
+ }
50
+ else {
51
+ LogInfoMessage(`Worker ${process.pid} started`);
52
+ //const worker = new WorkerProcessBase(ServiceConfigOptions(true, cluster.isPrimary));
53
+ //worker.SetupServer();
54
+ const hostName = 'host01';
55
+ const agentId = 'agent01';
56
+ const userAgent = 'userAgent01';
57
+ const asyncRunnerContext = {
58
+ nid: `\
59
+ ${hostName}${stsutils_1.ModelDelimeter.COMPONENT_SEPERATOR}${agentId}-${userAgent}\
60
+ ${stsutils_1.ModelDelimeter.NID_SEPERATOR}\
61
+ MainProcess\
62
+ ${stsutils_1.ModelDelimeter.SEPERATOR}\
63
+ 0`,
64
+ id: (0, uuid_1.v4)(),
65
+ // id: `${applicationStore.applicationConfig.HOST}${ModelDelimeter.COMPONENT_SEPERATOR}${applicationStore.applicationConfig.AGENT_ID}-${applicationStore.applicationConfig.USER_AGENT}`,
66
+ hostName: (hostName ? hostName : 'host01'),
67
+ agentName: `${agentId}-${userAgent}`,
68
+ threadId: 'MainProcess',
69
+ asyncRunnerId: 0
70
+ };
71
+ const url = `https://stscore.stsmda.org:3001/stsinstrumentmanager/v1/publishmessage`;
72
+ const publishTransportOptions = {
73
+ transportType: stsobservability_1.TransportType.RESTAPI,
74
+ //url: `${goptions.imendpoint}:${goptions.import}${goptions.imapiroot}/publishmessage`,
75
+ url,
76
+ logger: stsutils_1.defaultLogger,
77
+ agentOptions: {
78
+ keepAlive: stsconfig_1.goptions.keepAlive,
79
+ maxSockets: stsconfig_1.goptions.maxSockets,
80
+ maxTotalSockets: stsconfig_1.goptions.maxTotalSockets,
81
+ maxFreeSockets: stsconfig_1.goptions.maxFreeSockets,
82
+ timeout: 30000, //@@ config
83
+ rejectUnauthorized: stsconfig_1.goptions.isProduction // Allows self signed certs in non production mode(s)
84
+ },
85
+ showPublishPayload: false
86
+ };
87
+ LogInfoMessage(`publishTransportOptions: [${publishTransportOptions.url}]`);
88
+ const standardInstruments = [
89
+ [stsobservability_1.Gauge.TIMER_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_TIMER],
90
+ [stsobservability_1.Gauge.LOGGER, stsobservability_1.GaugeTypes.INSTRUMENT_LOG, {
91
+ consoleLogging: process.env.consoleLogging,
92
+ instrumentLogging: process.env.instrumentLogging
93
+ }],
94
+ [stsobservability_1.Gauge.NETWORK_RX_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_VELOCITY],
95
+ [stsobservability_1.Gauge.NETWORK_TX_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_VELOCITY]
96
+ ];
97
+ const agentInstruments = [
98
+ [stsobservability_1.Gauge.REQUEST_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of requests serviced
99
+ [stsobservability_1.Gauge.ERROR_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE],
100
+ [stsobservability_1.Gauge.RETRY_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE],
101
+ [stsobservability_1.Gauge.AUTHENTICATION_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of new token requests
102
+ [stsobservability_1.Gauge.AUTHENTICATION_ERROR_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of new token requests errors
103
+ [stsobservability_1.Gauge.AUTHENTICATION_RETRY_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of new token requests retries
104
+ [stsobservability_1.Gauge.ACTIVE_REQUEST_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
105
+ interval: process.env.instrumentationObservationInterval,
106
+ sampleSize: process.env.instrumentationTimeWindow
107
+ }],
108
+ [stsobservability_1.Gauge.DURATION_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
109
+ interval: process.env.instrumentationObservationInterval,
110
+ sampleSize: process.env.instrumentationTimeWindow
111
+ }],
112
+ [stsobservability_1.Gauge.DURATION_HISTOGRAM_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_HISTOGRAM],
113
+ [stsobservability_1.Gauge.VELOCITY_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_VELOCITY], // Requests per second
114
+ [stsobservability_1.Gauge.CORE_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Thread count (for http agents)
115
+ [stsobservability_1.Gauge.LATENCY_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
116
+ interval: process.env.instrumentationObservationInterval,
117
+ sampleSize: process.env.instrumentationTimeWindow
118
+ }],
119
+ [stsobservability_1.Gauge.LATENCY_HISTOGRAM_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_HISTOGRAM],
120
+ [stsobservability_1.Gauge.CHILD_COUNT, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE] // Number of async runners idle or running
121
+ ];
122
+ const instrumentControllerOptions = {
123
+ processContext: asyncRunnerContext,
124
+ instrumentationObservationInterval: 1000, //@@
125
+ instrumentationTimeWindow: 600, //@@
126
+ publisherTransport: new stsobservability_1.PublishTransportRESTServer(publishTransportOptions),
127
+ logger: stsutils_1.defaultLogger,
128
+ publishInterval: 1000, //@@
129
+ //instrumentDefinitions: GetInstruments('agent')
130
+ instrumentDefinitions: [
131
+ ...standardInstruments,
132
+ ...agentInstruments
133
+ ]
134
+ };
135
+ const agentInstrumentController = new stsobservability_1.AgentInstrumentController(instrumentControllerOptions);
136
+ agentInstrumentController.StartPublish();
137
+ const workerFactory = {
138
+ createPrimaryThreadWorker: (app, options) => {
139
+ return new workerPrimaryTestRunner01_1.WorkerPrimaryTestRunner01(app, options);
140
+ },
141
+ createWorkerThreadWorker: () => {
142
+ LogInfoMessage(`createWorkerThreadWorker`);
143
+ const fileName = './dist/testertesting/workerWorkerTestRunner01.js';
144
+ const publishCollectorWebWorker = new worker_threads_1.Worker(fileName);
145
+ publishCollectorWebWorker.unref();
146
+ return publishCollectorWebWorker;
147
+ },
148
+ get workerThreadWorkerOptions() {
149
+ return {
150
+ agentId,
151
+ hostName,
152
+ userAgent,
153
+ workdata: 'worker - hello world'
154
+ };
155
+ },
156
+ get primaryThreadWorkerOptions() {
157
+ return {
158
+ agentId,
159
+ hostName,
160
+ userAgent,
161
+ primaryoptions: 'primary - hello world'
162
+ };
163
+ }
164
+ };
165
+ const PerformTesting = async () => {
166
+ const wm = new workerManager_1.STSWorkerManager(null, {
167
+ workerFactory,
168
+ publishInstrumentController: agentInstrumentController
169
+ });
170
+ const worker = await wm.AddWorker();
171
+ const runnerOptions = {
172
+ iterations: 100000,
173
+ sleepDuration: 250,
174
+ messageMod: 1,
175
+ logMessageMod: 1
176
+ };
177
+ const runner1 = worker.AddRunner(runnerOptions);
178
+ runner1.Start();
179
+ const runner2 = wm.AddRunnerToWorker(worker, runnerOptions);
180
+ runner2.Start();
181
+ wm.AddRunnerToWorker(worker, runnerOptions).Start();
182
+ };
183
+ PerformTesting();
184
+ /*
185
+ const fileName ='./dist/webworkertesting/worker.js';
186
+
187
+ const clusterWorker = new Worker(fileName);
188
+ clusterWorker.unref();
189
+
190
+ clusterWorker.postMessage({cmd: 'text', message: 'Hello World'});
191
+
192
+ clusterWorker.on('message', (data: any) => {
193
+ LogInfoMessage(`cluster.worker (${process.pid}): message from worker = [${JSON.stringify(data)}]`);
194
+ });
195
+ */
196
+ LogInfoMessage(`cluster work completed ...`);
197
+ }
198
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/testertesting/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublishMessageCommandsTestRunner = exports.IWorkerState = exports.IRunnerState = exports.eIWMessageCommands = exports.URI_BASE_VUEUTILS = void 0;
4
+ exports.URI_BASE_VUEUTILS = '/';
5
+ /**
6
+ * Inter-Worker (IW) message commands.
7
+ */
8
+ var eIWMessageCommands;
9
+ (function (eIWMessageCommands) {
10
+ eIWMessageCommands["InstrumentTelemetry"] = "__STS__InstrumentTelemetry";
11
+ eIWMessageCommands["MessagePort"] = "__STS__MessagePort";
12
+ eIWMessageCommands["MessagePortResponse"] = "__STS__MessagePortResponse";
13
+ eIWMessageCommands["AddAsyncRunner"] = "__STS__AddAsyncRunner";
14
+ eIWMessageCommands["StopAllAsyncRunners"] = "__STS__StopAllAsyncRunners";
15
+ eIWMessageCommands["StartRunner"] = "__STS__StartRunner";
16
+ })(eIWMessageCommands || (exports.eIWMessageCommands = eIWMessageCommands = {}));
17
+ var IRunnerState;
18
+ (function (IRunnerState) {
19
+ IRunnerState["created"] = "created";
20
+ IRunnerState["running"] = "running";
21
+ IRunnerState["stopped"] = "stopped";
22
+ IRunnerState["paused"] = "paused";
23
+ IRunnerState["error"] = "error";
24
+ })(IRunnerState || (exports.IRunnerState = IRunnerState = {}));
25
+ var IWorkerState;
26
+ (function (IWorkerState) {
27
+ IWorkerState["starting"] = "starting";
28
+ IWorkerState["started"] = "started";
29
+ IWorkerState["stopped"] = "stopped";
30
+ })(IWorkerState || (exports.IWorkerState = IWorkerState = {}));
31
+ exports.PublishMessageCommandsTestRunner = {
32
+ ...eIWMessageCommands,
33
+ GetAccessToken: '__GetAccessToken',
34
+ GetAccessTokenResponse: '__GetAccessTokenResponse',
35
+ GetDataFromPrimary: '__GetDataFromPrimary',
36
+ ExecuteRefreshToken: '__ExecuteRefreshToken',
37
+ ExecuteRefreshTokenResponse: '__ExecuteRefreshTokenResponse'
38
+ };
39
+ //# sourceMappingURL=commonTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../../src/testertesting/commonTypes.ts"],"names":[],"mappings":";;;AAMa,QAAA,iBAAiB,GAAW,GAAG,CAAC;AAiB7C;;GAEG;AACH,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC7B,wEAAiD,CAAA;IACjD,wDAAkC,CAAA;IAClC,wEAAkD,CAAA;IAClD,8DAAwC,CAAA;IACxC,wEAAkD,CAAA;IAClD,wDAAkC,CAAA;AACnC,CAAC,EAPW,kBAAkB,kCAAlB,kBAAkB,QAO7B;AA4BD,IAAY,YAMX;AAND,WAAY,YAAY;IACvB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AAChB,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB;AAuCD,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;AACpB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAmEY,QAAA,gCAAgC,GAAG;IAC5C,GAAG,kBAAkB;IACrB,cAAc,EAAE,kBAAkB;IAClC,sBAAsB,EAAE,0BAA0B;IAClD,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,uBAAuB;IAC5C,2BAA2B,EAAE,+BAA+B;CACtD,CAAA"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestResponseHelper = void 0;
4
+ const stsutils_1 = require("@nsshunt/stsutils");
5
+ //@@ this should become a low level stsutils type helper
6
+ class RequestResponseHelper {
7
+ #requestResponseMessages = {};
8
+ #requestResponseMessageTimeout = 10000; //@@ config
9
+ #port;
10
+ constructor(port) {
11
+ this.#port = port;
12
+ this.#SetupListener();
13
+ }
14
+ #debug = (message) => {
15
+ stsutils_1.defaultLogger.debug(message);
16
+ };
17
+ PostMessage = (message) => {
18
+ return new Promise((resolve, reject) => {
19
+ const { messageId } = message.payload;
20
+ if (messageId) {
21
+ if (this.#requestResponseMessages[messageId]) {
22
+ reject(`RequestResponseHelper: Message with id: [${messageId}] already exists within the Request/Response record structure`);
23
+ }
24
+ else {
25
+ this.#requestResponseMessages[messageId] = {
26
+ publishMessagePayload: { ...message },
27
+ cb: () => {
28
+ const detail = this.#requestResponseMessages[messageId].publishMessagePayloadResponse;
29
+ clearTimeout(this.#requestResponseMessages[messageId].timeout);
30
+ setTimeout(() => {
31
+ delete this.#requestResponseMessages[messageId];
32
+ }, 0);
33
+ if (detail) {
34
+ this.#debug(`RequestResponseHelper: Resolving response message with id: [${messageId}] from target worker port. Details: [${JSON.stringify(detail)}]`);
35
+ resolve(detail);
36
+ }
37
+ else {
38
+ const msg = `Could not get detail from this.#requestResponseMessages[messageId].publishMessagePayloadResponse`;
39
+ this.#debug(msg);
40
+ reject(msg);
41
+ }
42
+ },
43
+ timeout: setTimeout(() => {
44
+ setTimeout(() => {
45
+ delete this.#requestResponseMessages[messageId];
46
+ }, 0);
47
+ this.#debug(`RequestResponseHelper: Timeout has occurred after: [${this.#requestResponseMessageTimeout}]ms with message id: [${messageId}]. Details: [${JSON.stringify(this.#requestResponseMessages[messageId].publishMessagePayload)}]`);
48
+ reject('RequestResponseHelper: Did not receive response form parent process.');
49
+ }, this.#requestResponseMessageTimeout) // max message timeout allowed
50
+ };
51
+ //debug(`RequestResponseHelper: Sending message with id: [${messageId}] to target worker port. Details: [${JSON.stringify(this.#requestResponseMessages[messageId].publishMessagePayload)}]`);
52
+ this.#port.postMessage(message);
53
+ }
54
+ }
55
+ else {
56
+ const msg = `RequestResponseHelper: Response did not include a message id`;
57
+ this.#debug(msg);
58
+ reject(msg);
59
+ }
60
+ });
61
+ };
62
+ #SetupListener = () => {
63
+ //this.#port.onmessage = async (msg: MessageEvent) => {
64
+ this.#port.on('message', (msg) => {
65
+ const publishMessagePayload = msg.data;
66
+ if (publishMessagePayload.payload.messageId) {
67
+ const messageId = publishMessagePayload.payload.messageId;
68
+ if (messageId && messageId !== '') {
69
+ if (this.#requestResponseMessages[messageId]) {
70
+ const requestResponseMessage = this.#requestResponseMessages[messageId];
71
+ requestResponseMessage.publishMessagePayloadResponse = { ...publishMessagePayload };
72
+ requestResponseMessage.cb();
73
+ }
74
+ else {
75
+ throw new Error(`RequestResponseHelper: Could not find Request/Response message with id: [${messageId}]`);
76
+ }
77
+ }
78
+ }
79
+ });
80
+ };
81
+ }
82
+ exports.RequestResponseHelper = RequestResponseHelper;
83
+ //# sourceMappingURL=requestResponseHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestResponseHelper.js","sourceRoot":"","sources":["../../src/testertesting/requestResponseHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TelemetryProcessor = void 0;
4
+ const stsobservability_1 = require("@nsshunt/stsobservability");
5
+ class TelemetryProcessor {
6
+ ProcessTelemetry = (publishInstrumentController, telemetry) => {
7
+ let update = false;
8
+ if (telemetry.message) {
9
+ telemetry.message.forEach((message) => {
10
+ publishInstrumentController.LogEx(message);
11
+ });
12
+ update = true;
13
+ }
14
+ if (telemetry.requestCount) {
15
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.REQUEST_COUNT_GAUGE, {
16
+ val: telemetry.requestCount
17
+ });
18
+ update = true;
19
+ }
20
+ if (telemetry.errorCount) {
21
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.ERROR_COUNT_GAUGE, {
22
+ val: telemetry.errorCount
23
+ });
24
+ update = true;
25
+ }
26
+ if (telemetry.retryCount) {
27
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.RETRY_COUNT_GAUGE, {
28
+ val: telemetry.retryCount
29
+ });
30
+ update = true;
31
+ }
32
+ if (telemetry.authenticationCount) {
33
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.AUTHENTICATION_COUNT_GAUGE, {
34
+ val: telemetry.authenticationCount
35
+ });
36
+ update = true;
37
+ }
38
+ if (telemetry.authenticationErrorCount) {
39
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.AUTHENTICATION_ERROR_COUNT_GAUGE, {
40
+ val: telemetry.authenticationCount
41
+ });
42
+ update = true;
43
+ }
44
+ if (telemetry.authenticationRetryCount) {
45
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.AUTHENTICATION_RETRY_COUNT_GAUGE, {
46
+ val: telemetry.authenticationCount
47
+ });
48
+ update = true;
49
+ }
50
+ if (telemetry.coreCount) {
51
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.CORE_COUNT_GAUGE, {
52
+ val: telemetry.coreCount
53
+ });
54
+ update = true;
55
+ }
56
+ if (telemetry.timer) {
57
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.TIMER_GAUGE, {
58
+ val: telemetry.timer
59
+ });
60
+ update = true;
61
+ }
62
+ if (telemetry.activeRequestCount) {
63
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.ACTIVE_REQUEST_GAUGE, {
64
+ val: telemetry.activeRequestCount
65
+ });
66
+ update = true;
67
+ }
68
+ if (telemetry.velocity) {
69
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.VELOCITY_GAUGE, {
70
+ Inc: telemetry.velocity
71
+ });
72
+ update = true;
73
+ }
74
+ if (telemetry.duration) {
75
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.DURATION_GAUGE, {
76
+ val: telemetry.duration
77
+ });
78
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.DURATION_HISTOGRAM_GAUGE, {
79
+ val: telemetry.duration
80
+ });
81
+ update = true;
82
+ }
83
+ if (telemetry.latency) {
84
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.LATENCY_GAUGE, {
85
+ val: telemetry.latency
86
+ });
87
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.LATENCY_HISTOGRAM_GAUGE, {
88
+ val: telemetry.latency
89
+ });
90
+ update = true;
91
+ }
92
+ if (telemetry.childCount) {
93
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.CHILD_COUNT, {
94
+ val: telemetry.childCount
95
+ });
96
+ update = true;
97
+ }
98
+ if (telemetry.rx) {
99
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.NETWORK_RX_GAUGE, {
100
+ Inc: telemetry.rx
101
+ });
102
+ update = true;
103
+ }
104
+ if (telemetry.tx) {
105
+ publishInstrumentController.UpdateInstrument(stsobservability_1.Gauge.NETWORK_TX_GAUGE, {
106
+ Inc: telemetry.tx
107
+ });
108
+ update = true;
109
+ }
110
+ return update;
111
+ };
112
+ }
113
+ exports.TelemetryProcessor = TelemetryProcessor;
114
+ //# sourceMappingURL=telemetryProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryProcessor.js","sourceRoot":"","sources":["../../src/testertesting/telemetryProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WorkerInstance = void 0;
7
+ const commonTypes_1 = require("./commonTypes");
8
+ const requestResponseHelper_1 = require("./requestResponseHelper");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ // Force chalk level
11
+ chalk_1.default.level = 3;
12
+ class WorkerInstance {
13
+ #collectorCollectorPort = null;
14
+ #requestResponseHelper = null;
15
+ #runners = {};
16
+ #options = null;
17
+ #debug = (message) => {
18
+ console.log(chalk_1.default.green(`pid: [${process.pid}] WorkerInstance::${message}`));
19
+ };
20
+ constructor() {
21
+ this.#debug(`constructor`);
22
+ }
23
+ GetRandomInt = (max) => {
24
+ this.#debug(`GetRandomInt`);
25
+ return Math.floor(Math.random() * Math.floor(max));
26
+ };
27
+ StartWork = async (runner) => {
28
+ this.#debug(`StartWork`);
29
+ return;
30
+ };
31
+ PostTelemetry = (runner) => {
32
+ //debug(`WorkerInstance::PostTelemetry`)
33
+ if (this.#collectorCollectorPort) {
34
+ const message = {
35
+ command: commonTypes_1.eIWMessageCommands.InstrumentTelemetry,
36
+ payload: {
37
+ runner
38
+ }
39
+ };
40
+ this.#collectorCollectorPort.postMessage(message);
41
+ }
42
+ };
43
+ get RequestResponseHelper() {
44
+ return this.#requestResponseHelper;
45
+ }
46
+ get CollectorCollectorPort() {
47
+ return this.#collectorCollectorPort;
48
+ }
49
+ get Options() {
50
+ return this.#options;
51
+ }
52
+ #SetMessagePort = (workerMessagePort) => {
53
+ this.#debug(`SetMessagePort`);
54
+ this.#collectorCollectorPort = workerMessagePort.port;
55
+ // NodeJS version
56
+ this.#collectorCollectorPort.on('message', (data) => {
57
+ this.#debug(`collectorCollectorPort onmessage: ${data.data}`);
58
+ });
59
+ // Browser Version
60
+ /*
61
+ this.#collectorCollectorPort.onmessage = function(data: MessageEvent) {
62
+ console.log(`collectorCollectorPort onmessage: ${data.data}`);
63
+ }
64
+ */
65
+ this.#requestResponseHelper = new requestResponseHelper_1.RequestResponseHelper(this.#collectorCollectorPort);
66
+ const response = {
67
+ command: commonTypes_1.eIWMessageCommands.MessagePortResponse,
68
+ payload: {}
69
+ };
70
+ this.#collectorCollectorPort.postMessage(response);
71
+ };
72
+ StartRunner = async (runner) => {
73
+ this.#debug(`StartRunner`);
74
+ this.#debug(`StartTests: [${JSON.stringify(runner)}]`);
75
+ runner.state = commonTypes_1.IRunnerState.running;
76
+ this.StartWork(runner);
77
+ };
78
+ #AddAsyncRunner = (testRunnerTelemetryPayload) => {
79
+ this.#debug(`AddAsyncRunner`);
80
+ const { runner } = testRunnerTelemetryPayload;
81
+ this.#runners[runner.id] = runner;
82
+ return runner;
83
+ //this.StartRunner(runner);
84
+ };
85
+ #StartRunner = (testRunnerTelemetryPayload) => {
86
+ this.#debug(`StartRunner`);
87
+ const { runner } = testRunnerTelemetryPayload;
88
+ this.StartRunner(runner);
89
+ return runner;
90
+ };
91
+ #StopRunners = (testRunnerTelemetryPayload) => {
92
+ this.#debug(`StopRunners`);
93
+ if (testRunnerTelemetryPayload === null) {
94
+ for (const [, testRunner] of Object.entries(this.#runners)) {
95
+ testRunner.state = commonTypes_1.IRunnerState.stopped;
96
+ }
97
+ }
98
+ else {
99
+ const runner = this.#runners[testRunnerTelemetryPayload.runner.id];
100
+ if (runner) {
101
+ runner.state = commonTypes_1.IRunnerState.stopped;
102
+ }
103
+ }
104
+ };
105
+ // ProcessMessage = async(data: MessageEvent) => { // Browser version
106
+ ProcessMessage = async (data) => {
107
+ this.#debug(`ProcessMessage: data: [${JSON.stringify(data)}]`);
108
+ try {
109
+ // const payloadMessage: IIWMessagePayload = data.data as IIWMessagePayload; // browser version
110
+ const payloadMessage = data;
111
+ switch (payloadMessage.command) {
112
+ case commonTypes_1.eIWMessageCommands.MessagePort:
113
+ this.#debug(`ProcessMessage::MessagePort`);
114
+ this.#SetMessagePort(payloadMessage.payload);
115
+ this.#options = payloadMessage.payload.options;
116
+ this.#debug(`ProcessMessage::#options: [${JSON.stringify(this.#options)}]`);
117
+ break;
118
+ case commonTypes_1.eIWMessageCommands.AddAsyncRunner:
119
+ this.#debug(`ProcessMessage::AddAsyncRunner`);
120
+ this.#AddAsyncRunner(payloadMessage.payload);
121
+ break;
122
+ case commonTypes_1.eIWMessageCommands.StopAllAsyncRunners:
123
+ this.#debug(`ProcessMessage::StopAllAsyncRunners`);
124
+ this.#StopRunners(payloadMessage.payload);
125
+ break;
126
+ case commonTypes_1.eIWMessageCommands.StartRunner:
127
+ this.#debug(`ProcessMessage::StartRunner`);
128
+ this.#StartRunner(payloadMessage.payload);
129
+ break;
130
+ default:
131
+ this.#debug(`ProcessMessage::default`);
132
+ this.#debug(`Invalid payloadMessage.command: [${payloadMessage.command}] - Ignoring`);
133
+ }
134
+ }
135
+ catch (error) {
136
+ console.log(error);
137
+ }
138
+ };
139
+ }
140
+ exports.WorkerInstance = WorkerInstance;
141
+ //# sourceMappingURL=workerInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerInstance.js","sourceRoot":"","sources":["../../src/testertesting/workerInstance.ts"],"names":[],"mappings":"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"}