@nsshunt/stsappframework 3.0.19 → 3.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonTypes.js +16 -1
- package/dist/commonTypes.js.map +1 -1
- package/dist/influxdb/influxDBManagerAgent.js +13 -8
- package/dist/influxdb/influxDBManagerAgent.js.map +1 -1
- package/dist/influxdb/influxDBManagerService.js +13 -8
- package/dist/influxdb/influxDBManagerService.js.map +1 -1
- package/dist/instrumentationsubscriber.js +239 -0
- package/dist/instrumentationsubscriber.js.map +1 -0
- package/dist/kafka/kafkaconsumer.js.map +1 -1
- package/package.json +1 -1
- package/src/commonTypes.ts +52 -0
- package/src/influxdb/influxDBManagerAgent.ts +17 -18
- package/src/influxdb/influxDBManagerService.ts +17 -17
- package/src/instrumentationsubscriber.ts +248 -0
- package/src/kafka/kafkaconsumer.ts +2 -1
- package/types/commonTypes.d.ts +40 -0
- package/types/commonTypes.d.ts.map +1 -1
- package/types/influxdb/influxDBManagerAgent.d.ts +5 -17
- package/types/influxdb/influxDBManagerAgent.d.ts.map +1 -1
- package/types/influxdb/influxDBManagerService.d.ts +5 -17
- package/types/influxdb/influxDBManagerService.d.ts.map +1 -1
- package/types/instrumentationsubscriber.d.ts +14 -0
- package/types/instrumentationsubscriber.d.ts.map +1 -0
- package/types/kafka/kafkaconsumer.d.ts +2 -1
- package/types/kafka/kafkaconsumer.d.ts.map +1 -1
package/dist/commonTypes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STSEvent = exports.STSRoom = exports.STSNamespace = exports.IPCMessageCommand = void 0;
|
|
3
|
+
exports.SubscriptionTopic = exports.STSEvent = exports.STSRoom = exports.STSNamespace = exports.IPCMessageCommand = void 0;
|
|
4
4
|
var IPCMessageCommand;
|
|
5
5
|
(function (IPCMessageCommand) {
|
|
6
6
|
IPCMessageCommand["AddWorker"] = "AddWorker";
|
|
@@ -43,4 +43,19 @@ var STSEvent;
|
|
|
43
43
|
// Standard socket events
|
|
44
44
|
STSEvent["connect"] = "connect";
|
|
45
45
|
})(STSEvent || (exports.STSEvent = STSEvent = {}));
|
|
46
|
+
var SubscriptionTopic;
|
|
47
|
+
(function (SubscriptionTopic) {
|
|
48
|
+
// Services
|
|
49
|
+
SubscriptionTopic["AllServicesCombined"] = "AllServicesCombined";
|
|
50
|
+
SubscriptionTopic["Services"] = "Services";
|
|
51
|
+
SubscriptionTopic["ServiceInstances"] = "ServiceInstances";
|
|
52
|
+
SubscriptionTopic["ServiceInstance"] = "ServiceInstance";
|
|
53
|
+
// User Agents
|
|
54
|
+
SubscriptionTopic["AllAgentsCombined"] = "AllAgentsCombined";
|
|
55
|
+
SubscriptionTopic["Agents"] = "Agents";
|
|
56
|
+
SubscriptionTopic["AgentWorkers"] = "AgentWorkers";
|
|
57
|
+
SubscriptionTopic["AgentWorker"] = "AgentWorker";
|
|
58
|
+
// Logging (both service and agent)
|
|
59
|
+
SubscriptionTopic["LogProcessing"] = "LogProcessing";
|
|
60
|
+
})(SubscriptionTopic || (exports.SubscriptionTopic = SubscriptionTopic = {}));
|
|
46
61
|
//# sourceMappingURL=commonTypes.js.map
|
package/dist/commonTypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":";;;AAUA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;AACjC,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAkGD,IAAY,YAGX;AAHD,WAAY,YAAY;IACvB,yCAAyB,CAAA;IACzB,yCAAyB,CAAA;AAC1B,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,OAQX;AARD,WAAY,OAAO;IAClB,mBAAmB;IACnB,0DAA+C,CAAA;IAC/C,kFAAuE,CAAA;IAEvE,mBAAmB;IACnB,0CAA+B,CAAA;IAC/B,kDAAuC,CAAA;AACxC,CAAC,EARW,OAAO,uBAAP,OAAO,QAQlB;AAED,IAAY,QAyBX;AAzBD,WAAY,QAAQ;IACnB,oBAAoB;IACpB,mDAAuC,CAAA;IACvC,yDAA6C,CAAA;IAC7C,6DAAiD,CAAA;IAEjD,2EAA+D,CAAA;IAC/D,yEAA6D,CAAA;IAE7D,mBAAmB;IACnB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,mCAAuB,CAAA;IACvB,yCAA6B,CAAA;IAC7B,iFAAiF;IACjF,0EAA0E;IAC1E,2DAA+C,CAAA;IAC/C,6DAAiD,CAAA;IACjD,8EAA8E;IAE9E,wCAA4B,CAAA;IAE5B,yBAAyB;IACzB,+BAAmB,CAAA;AACpB,CAAC,EAzBW,QAAQ,wBAAR,QAAQ,QAyBnB;AA4ED,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IACzB,WAAW;IACX,gEAA2C,CAAA;IAC3C,0CAAqB,CAAA;IACrB,0DAAqC,CAAA;IACrC,wDAAmC,CAAA;IAEnC,cAAc;IACd,4DAAuC,CAAA;IACvC,sCAAiB,CAAA;IACjB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAE3B,mCAAmC;IACnC,oDAA+B,CAAA;AACnC,CAAC,EAfW,iBAAiB,iCAAjB,iBAAiB,QAe5B"}
|
|
@@ -5,6 +5,7 @@ exports.InfluxDBManagerAgent = void 0;
|
|
|
5
5
|
const influxdb_client_1 = require("@influxdata/influxdb-client");
|
|
6
6
|
const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
|
|
7
7
|
const influxDBManagerBase_1 = require("./influxDBManagerBase");
|
|
8
|
+
const commonTypes_1 = require("./../commonTypes");
|
|
8
9
|
const _logPrefix = 'InfluxDBManagerService:';
|
|
9
10
|
class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
10
11
|
constructor(options, queryApi, writeClient) {
|
|
@@ -113,59 +114,63 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
113
114
|
// Metric queries -------------------------------------------------------------------------------------------------
|
|
114
115
|
// Root level metrics
|
|
115
116
|
async GetInfluxDBResultsRootAgent() {
|
|
117
|
+
let retVal = null;
|
|
116
118
|
try {
|
|
117
|
-
|
|
119
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
118
120
|
this.#GetSTSCountGenericAgent('agent', '', 'group(columns: ["_field"])'),
|
|
119
121
|
this.#GetSTSQuantileGenericAgent(`agent`, '', 'group(columns: ["_field"])'),
|
|
120
122
|
this.#GetSTSHistoGenericService('agent', '', 'group(columns: ["_field"])')
|
|
121
123
|
], []);
|
|
122
|
-
return { SubscriptionType: "ID_Agent_Root", data: combinedResults };
|
|
123
124
|
}
|
|
124
125
|
catch (error) {
|
|
125
126
|
console.error(`${_logPrefix}GetInfluxDBResultsRootAgent: Error: [${error}]`.red);
|
|
126
127
|
}
|
|
128
|
+
return { topic: commonTypes_1.SubscriptionTopic.AllAgentsCombined, data: retVal };
|
|
127
129
|
}
|
|
128
130
|
// Service level metrics
|
|
129
131
|
async GetInfluxDBResultsAgent() {
|
|
132
|
+
let retVal = null;
|
|
130
133
|
try {
|
|
131
|
-
|
|
134
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
132
135
|
this.#GetSTSCountGenericAgent('agent', '', 'group(columns: ["agentName", "_field"])'),
|
|
133
136
|
this.#GetSTSQuantileGenericAgent(`agent`, '', 'group(columns: ["agentName", "_field"])'),
|
|
134
137
|
this.#GetSTSHistoGenericService('agent', '', 'group(columns: ["agentName", "_field"])')
|
|
135
138
|
], ['agentName']);
|
|
136
|
-
return { SubscriptionType: "ID_Agent_Agents", data: combinedResults };
|
|
137
139
|
}
|
|
138
140
|
catch (error) {
|
|
139
141
|
console.error(`${_logPrefix}GetInfluxDBResultsAgent: Error: [${error}]`.red);
|
|
140
142
|
}
|
|
143
|
+
return { topic: commonTypes_1.SubscriptionTopic.Agents, data: retVal };
|
|
141
144
|
}
|
|
142
145
|
// Service instance metrics for a particular service type
|
|
143
146
|
async GetInfluxDBResultsAgentThreads(agentName) {
|
|
147
|
+
let retVal = null;
|
|
144
148
|
try {
|
|
145
|
-
|
|
149
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
146
150
|
this.#GetSTSCountGenericAgent('agent', `and r["agentName"] == "${agentName}"`, `group(columns: ["agentName", "threadId", "_field"])`),
|
|
147
151
|
this.#GetSTSQuantileGenericAgent(`agent`, `and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])'),
|
|
148
152
|
this.#GetSTSHistoGenericService('agent', `and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])')
|
|
149
153
|
], ['agentName', 'threadId']);
|
|
150
|
-
return { SubscriptionType: `ID_Agent_Agent_Threads_${agentName}`, data: combinedResults };
|
|
151
154
|
}
|
|
152
155
|
catch (error) {
|
|
153
156
|
console.error(`${_logPrefix}GetInfluxDBResultsAgentThreads: Error: [${error}]`.red);
|
|
154
157
|
}
|
|
158
|
+
return { topic: commonTypes_1.SubscriptionTopic.AgentWorkers, key: agentName, data: retVal };
|
|
155
159
|
}
|
|
156
160
|
// Service instance thread metrics for a particular service instance
|
|
157
161
|
async GetInfluxDBResultsAgentThread(agentName, threadId) {
|
|
162
|
+
let retVal = null;
|
|
158
163
|
try {
|
|
159
|
-
|
|
164
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
160
165
|
this.#GetSTSCountGenericAgent('agent', `and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, `group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])`),
|
|
161
166
|
this.#GetSTSQuantileGenericAgent(`agent`, `and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])'),
|
|
162
167
|
this.#GetSTSHistoGenericService('agent', `and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])')
|
|
163
168
|
], ['agentName', 'threadId', 'asyncRunnerId']);
|
|
164
|
-
return { SubscriptionType: `ID_Agent_Agent_Thread_${agentName}_${threadId}`, data: combinedResults };
|
|
165
169
|
}
|
|
166
170
|
catch (error) {
|
|
167
171
|
console.error(`${_logPrefix}GetInfluxDBResultsAgentThread: Error: [${error}]`.red);
|
|
168
172
|
}
|
|
173
|
+
return { topic: commonTypes_1.SubscriptionTopic.AgentWorker, key: agentName, subkey: threadId, data: retVal };
|
|
169
174
|
}
|
|
170
175
|
// Agent context payload
|
|
171
176
|
// {"nid":"somehost@e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent|MainProcess|0","id":"somehost@e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent|MainProcess|0","hostName":"somehost"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerAgent.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":";;;AAAA,wFAAwF,CAAE,UAAU;AACpG,iEAAuE;AAEvE,oEAAuE;AAEvE,+DAA2D;
|
|
1
|
+
{"version":3,"file":"influxDBManagerAgent.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ exports.InfluxDBManagerService = void 0;
|
|
|
5
5
|
const influxdb_client_1 = require("@influxdata/influxdb-client");
|
|
6
6
|
const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
|
|
7
7
|
const influxDBManagerBase_1 = require("./influxDBManagerBase");
|
|
8
|
+
const commonTypes_1 = require("./../commonTypes");
|
|
8
9
|
const _logPrefix = 'InfluxDBManagerService:';
|
|
9
10
|
class InfluxDBManagerService extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
10
11
|
constructor(options, queryApi, writeClient) {
|
|
@@ -128,59 +129,63 @@ class InfluxDBManagerService extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
128
129
|
// Metric queries -------------------------------------------------------------------------------------------------
|
|
129
130
|
// Root level metrics
|
|
130
131
|
async GetInfluxDBResultsRootService() {
|
|
132
|
+
let retVal = null;
|
|
131
133
|
try {
|
|
132
|
-
|
|
134
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
133
135
|
this.#GetSTSCountGenericService('', 'group(columns: ["_field"])'),
|
|
134
136
|
this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["_field"])'),
|
|
135
137
|
this.#GetSTSHistoGenericService('service', '', 'group(columns: ["_field"])')
|
|
136
138
|
], []);
|
|
137
|
-
return { SubscriptionType: "ID_", data: combinedResults };
|
|
138
139
|
}
|
|
139
140
|
catch (error) {
|
|
140
141
|
console.error(`${_logPrefix}GetInfluxDBResultsRoot: Error: [${error}]`.red);
|
|
141
142
|
}
|
|
143
|
+
return { topic: commonTypes_1.SubscriptionTopic.AllServicesCombined, data: retVal };
|
|
142
144
|
}
|
|
143
145
|
// Service level metrics
|
|
144
146
|
async GetInfluxDBResultsService() {
|
|
147
|
+
let retVal = null;
|
|
145
148
|
try {
|
|
146
|
-
|
|
149
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
147
150
|
this.#GetSTSCountGenericService('', 'group(columns: ["serviceId", "_field"])'),
|
|
148
151
|
this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["serviceId", "_field"])'),
|
|
149
152
|
this.#GetSTSHistoGenericService('service', '', 'group(columns: ["serviceId", "_field"])')
|
|
150
153
|
], ['serviceId']);
|
|
151
|
-
return { SubscriptionType: "ID_Service", data: combinedResults };
|
|
152
154
|
}
|
|
153
155
|
catch (error) {
|
|
154
156
|
console.error(`${_logPrefix}GetInfluxDBResultsService: Error: [${error}]`.red);
|
|
155
157
|
}
|
|
158
|
+
return { topic: commonTypes_1.SubscriptionTopic.Services, data: retVal };
|
|
156
159
|
}
|
|
157
160
|
// Service instance metrics for a particular service type
|
|
158
161
|
async GetInfluxDBResultsServiceInstances(serviceId) {
|
|
162
|
+
let retVal = null;
|
|
159
163
|
try {
|
|
160
|
-
|
|
164
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
161
165
|
this.#GetSTSCountGenericService(`and r["serviceId"] == "${serviceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "_field"])`),
|
|
162
166
|
this.#GetSTSQuantileGenericService(`service`, `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])'),
|
|
163
167
|
this.#GetSTSHistoGenericService('service', `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])')
|
|
164
168
|
], ['serviceId', 'serviceInstanceId']);
|
|
165
|
-
return { SubscriptionType: `ID_ServiceInstances_${serviceId}`, data: combinedResults };
|
|
166
169
|
}
|
|
167
170
|
catch (error) {
|
|
168
171
|
console.error(`${_logPrefix}GetInfluxDBResultsServiceInstances: Error: [${error}]`.red);
|
|
169
172
|
}
|
|
173
|
+
return { topic: commonTypes_1.SubscriptionTopic.ServiceInstances, key: serviceId, data: retVal };
|
|
170
174
|
}
|
|
171
175
|
// Service instance thread metrics for a particular service instance
|
|
172
176
|
async GetInfluxDBResultsServiceInstance(serviceInstanceId) {
|
|
177
|
+
let retVal = null;
|
|
173
178
|
try {
|
|
174
|
-
|
|
179
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
175
180
|
this.#GetSTSCountGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])`),
|
|
176
181
|
this.#GetSTSQuantileGenericService(`service`, `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])'),
|
|
177
182
|
this.#GetSTSHistoGenericService('service', `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])')
|
|
178
183
|
], ['serviceId', 'serviceInstanceId', 'serviceInstanceProcessId']);
|
|
179
|
-
return { SubscriptionType: `ID_ServiceInstance_${serviceInstanceId}`, data: combinedResults };
|
|
180
184
|
}
|
|
181
185
|
catch (error) {
|
|
182
186
|
console.error(`${_logPrefix}GetInfluxDBResultsServiceInstance: Error: [${error}]`.red);
|
|
183
187
|
}
|
|
188
|
+
return { topic: commonTypes_1.SubscriptionTopic.ServiceInstance, key: serviceInstanceId, data: retVal };
|
|
184
189
|
}
|
|
185
190
|
// Write data points ----------------------------------------------------------------------------------------------
|
|
186
191
|
// Agent context payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerService.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":";;;AAAA,wFAAwF,CAAE,UAAU;AACpG,iEAAuE;AAEvE,oEAAuE;AAEvE,+DAA2D;
|
|
1
|
+
{"version":3,"file":"influxDBManagerService.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InstrumentationSubscriber = void 0;
|
|
4
|
+
const commonTypes_1 = require("./commonTypes");
|
|
5
|
+
const kafkamanager_1 = require("./kafka/kafkamanager");
|
|
6
|
+
const influxDBManager_1 = require("./influxdb/influxDBManager");
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
8
|
+
const stsconfig_1 = require("@nsshunt/stsconfig");
|
|
9
|
+
const stsutils_1 = require("@nsshunt/stsutils");
|
|
10
|
+
const goptions = (0, stsconfig_1.$Options)();
|
|
11
|
+
class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
12
|
+
#subscriptions = {};
|
|
13
|
+
#influxDBManager;
|
|
14
|
+
#interval = null;
|
|
15
|
+
#km;
|
|
16
|
+
#KAFKA_PREFIX = '__STS__';
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super(options);
|
|
19
|
+
this.#influxDBManager = new influxDBManager_1.InfluxDBManager();
|
|
20
|
+
const kmc = {
|
|
21
|
+
clientId: goptions.kafka_clientId,
|
|
22
|
+
brokers: goptions.kafka_brokers.split(','),
|
|
23
|
+
keepAlive: goptions.kafka_keep_alive,
|
|
24
|
+
adminTimeout: goptions.kafka_admin_timeout,
|
|
25
|
+
connectionTimeout: goptions.kafka_connection_timeout,
|
|
26
|
+
logLevel: goptions.kafka_log_level,
|
|
27
|
+
useSSL: goptions.kafka_use_ssl,
|
|
28
|
+
requestTimeout: goptions.kafka_request_timeout
|
|
29
|
+
};
|
|
30
|
+
if (goptions.kafka_use_ssl) {
|
|
31
|
+
kmc.ssl = {
|
|
32
|
+
rejectUnauthorized: goptions.kafka_ssl_rejectUnauthorized,
|
|
33
|
+
cafile: goptions.kafka_ssl_cafile,
|
|
34
|
+
certfileFile: goptions.kafka_ssl_certfile,
|
|
35
|
+
keyfile: goptions.kafka_ssl_keyfile
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
this.#km = new kafkamanager_1.KafkaManager(kmc);
|
|
39
|
+
}
|
|
40
|
+
async #UnSubscribeKafka(subscription) {
|
|
41
|
+
const unsubscribeKafka = async () => {
|
|
42
|
+
const kafka = subscription.kafka;
|
|
43
|
+
if (kafka) {
|
|
44
|
+
// Un-Subscribe from this kafka topic
|
|
45
|
+
console.log(`InstrumentationSubscriber:#UnSubscribeKafka(): Unsubscribe from Kafka topc: [${kafka.kafkaTopic}] Starting`.yellow);
|
|
46
|
+
await kafka.kafkaConsumer?.Stop();
|
|
47
|
+
await kafka.kafkaConsumer?.Disconnect();
|
|
48
|
+
console.log(`InstrumentationSubscriber:#UnSubscribeKafka(): Unsubscribe from Kafka topc: [${kafka.kafkaTopic}] Completed.`.yellow);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log(`InstrumentationSubscriber:#UnSubscribeKafka(): Kafka details do not eixsting for this topc: [${subscription.topic}].`.magenta);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
return unsubscribeKafka();
|
|
55
|
+
}
|
|
56
|
+
async #SubscribeKafka(subscription) {
|
|
57
|
+
const kafkaSubscribe = async () => {
|
|
58
|
+
if (subscription.key) {
|
|
59
|
+
const kafkaSafeKey = `${this.#KAFKA_PREFIX}_${subscription.key}`.replace(/@/g, '_');
|
|
60
|
+
const kafkaGroupId = (0, uuid_1.v4)();
|
|
61
|
+
subscription.kafka = {
|
|
62
|
+
kafkaTopic: kafkaSafeKey,
|
|
63
|
+
kafkaGroupId: kafkaGroupId,
|
|
64
|
+
kafkaConsumer: this.#km.CreateConsumer(kafkaGroupId)
|
|
65
|
+
};
|
|
66
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Subscribe to Kafka topc: [${subscription.kafka.kafkaTopic}] Starting`.yellow);
|
|
67
|
+
const kafka = subscription.kafka;
|
|
68
|
+
await kafka.kafkaConsumer.Connect();
|
|
69
|
+
await kafka.kafkaConsumer.Subscribe([kafka.kafkaTopic], false);
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
71
|
+
await kafka.kafkaConsumer.StartConsumingMessages((topic, key, partition, value, headers) => {
|
|
72
|
+
try {
|
|
73
|
+
if (key != "" && value != "") {
|
|
74
|
+
if (topic.localeCompare(key) === 0) {
|
|
75
|
+
subscription.cb({
|
|
76
|
+
topic: commonTypes_1.SubscriptionTopic.LogProcessing,
|
|
77
|
+
key: subscription.key,
|
|
78
|
+
data: {
|
|
79
|
+
kafkaTopic: kafka.kafkaTopic,
|
|
80
|
+
kafkaGroupId: kafka.kafkaGroupId,
|
|
81
|
+
partition,
|
|
82
|
+
topic,
|
|
83
|
+
key,
|
|
84
|
+
value
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Invalid message format from Kafka data, topic: [${topic}] and key: [${key}] do not match`.red);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Invalid message format from Kafka data, topic: [${topic}], key: [${key}], value: [${value}]`.red);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Error: [${error}]`.red);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Subscribe to Kafka topc: [${kafka.kafkaTopic}] Completed`.yellow);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Could not subscribe to Kafka topc, missing key for topic: [${subscription.topic}]`.magenta);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
return kafkaSubscribe();
|
|
107
|
+
}
|
|
108
|
+
async #OutputSubscription(subscription) {
|
|
109
|
+
// Service subscriptions
|
|
110
|
+
const { topic, key, subkey } = subscription;
|
|
111
|
+
switch (topic) {
|
|
112
|
+
// Services -------------------------------------------------------------------------------------------
|
|
113
|
+
case commonTypes_1.SubscriptionTopic.AllServicesCombined:
|
|
114
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsRootService();
|
|
115
|
+
case commonTypes_1.SubscriptionTopic.Services:
|
|
116
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsService();
|
|
117
|
+
case commonTypes_1.SubscriptionTopic.ServiceInstances:
|
|
118
|
+
if (key) { // key = service_id
|
|
119
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsServiceInstances(key);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw new Error(`#OutputSubscription: key not provided for subscription: [${topic}]`);
|
|
123
|
+
}
|
|
124
|
+
case commonTypes_1.SubscriptionTopic.ServiceInstance:
|
|
125
|
+
if (key) { // key = service instance id
|
|
126
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsServiceInstance(key);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
throw new Error(`#OutputSubscription: key not provided for subscription: [${topic}]`);
|
|
130
|
+
}
|
|
131
|
+
// User Agents -------------------------------------------------------------------------------------------
|
|
132
|
+
case commonTypes_1.SubscriptionTopic.AllAgentsCombined:
|
|
133
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsRootAgent();
|
|
134
|
+
case commonTypes_1.SubscriptionTopic.Agents:
|
|
135
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsAgent();
|
|
136
|
+
case commonTypes_1.SubscriptionTopic.AgentWorkers:
|
|
137
|
+
if (key) { // key = agent instance id
|
|
138
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsAgentThreads(key);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
throw new Error(`#OutputSubscription: key not provided for subscription: [${topic}]`);
|
|
142
|
+
}
|
|
143
|
+
case commonTypes_1.SubscriptionTopic.AgentWorker:
|
|
144
|
+
if (key && subkey) { // key = agent instance id, subkey = agent instance worker id
|
|
145
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsAgentThread(key, subkey);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
throw new Error(`#OutputSubscription: key and/or subkey not provided for subscription: [${topic}]`);
|
|
149
|
+
}
|
|
150
|
+
// Logging (both service and agent) -----------------------------------------------------------------------
|
|
151
|
+
case commonTypes_1.SubscriptionTopic.LogProcessing:
|
|
152
|
+
// Kafka processing will be handled by a dedicated kafka run consumer
|
|
153
|
+
return { topic, data: null };
|
|
154
|
+
default:
|
|
155
|
+
return { topic, data: null };
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
#ExecuteSubscriptions = async () => {
|
|
159
|
+
const promArray = [];
|
|
160
|
+
const indexArray = [];
|
|
161
|
+
for (const [, subscription] of Object.entries(this.#subscriptions)) {
|
|
162
|
+
promArray.push(this.#OutputSubscription(subscription));
|
|
163
|
+
indexArray.push(subscription);
|
|
164
|
+
}
|
|
165
|
+
const retVal = await Promise.all(promArray);
|
|
166
|
+
try {
|
|
167
|
+
for (let i = 0; i < retVal.length; i++) {
|
|
168
|
+
indexArray[i].cb(retVal[i]);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
console.log(`${error} -- ${JSON.stringify(retVal)}`.red);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
Subscribe(subscriptions) {
|
|
176
|
+
if (this.#interval) {
|
|
177
|
+
clearInterval(this.#interval);
|
|
178
|
+
}
|
|
179
|
+
for (let i = 0; i < subscriptions.length; i++) {
|
|
180
|
+
if (this.#subscriptions[subscriptions[i].topic]) {
|
|
181
|
+
// Subscription already exists - ignoring
|
|
182
|
+
console.log(`InstrumentationSubscriber.Subscribe(): Subscription already exists - ignoring.`.magenta);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
this.#subscriptions[subscriptions[i].topic] = subscriptions[i];
|
|
186
|
+
console.log(`InstrumentationSubscriber.Subscribe(): topicKey: [${subscriptions[i].topic}] successfully subscribed.`.grey);
|
|
187
|
+
if (subscriptions[i].topic.localeCompare(commonTypes_1.SubscriptionTopic.LogProcessing) === 0) {
|
|
188
|
+
this.#SubscribeKafka(subscriptions[i]);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (!this.#interval) {
|
|
193
|
+
// Output subscription immediately and then iterate ...
|
|
194
|
+
this.#ExecuteSubscriptions();
|
|
195
|
+
let interval = 1000; // default
|
|
196
|
+
if (this.options) {
|
|
197
|
+
interval = this.options.SubscriptionInterval;
|
|
198
|
+
}
|
|
199
|
+
this.#interval = setInterval(() => {
|
|
200
|
+
this.#ExecuteSubscriptions();
|
|
201
|
+
}, interval);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
UnSubscribe(subscriptions) {
|
|
205
|
+
for (let i = 0; i < subscriptions.length; i++) {
|
|
206
|
+
if (subscriptions[i].topic.localeCompare(commonTypes_1.SubscriptionTopic.LogProcessing) === 0) {
|
|
207
|
+
this.#UnSubscribeKafka(subscriptions[i]);
|
|
208
|
+
}
|
|
209
|
+
delete this.#subscriptions[subscriptions[i].topic];
|
|
210
|
+
}
|
|
211
|
+
if (Object.keys(this.#subscriptions).length === 0) {
|
|
212
|
+
if (this.#interval) {
|
|
213
|
+
clearInterval(this.#interval);
|
|
214
|
+
this.#interval = null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
#UnSubscribeAll() {
|
|
219
|
+
if (this.#interval) {
|
|
220
|
+
clearInterval(this.#interval);
|
|
221
|
+
this.#interval = null;
|
|
222
|
+
}
|
|
223
|
+
for (const [, subscription] of Object.entries(this.#subscriptions)) {
|
|
224
|
+
if (subscription.topic.localeCompare(commonTypes_1.SubscriptionTopic.LogProcessing) === 0) {
|
|
225
|
+
this.#UnSubscribeKafka(subscription);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
this.#subscriptions = {};
|
|
229
|
+
}
|
|
230
|
+
async Start() {
|
|
231
|
+
return this.#influxDBManager.Start();
|
|
232
|
+
}
|
|
233
|
+
async Stop() {
|
|
234
|
+
this.#UnSubscribeAll();
|
|
235
|
+
return this.#influxDBManager.Terminate();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.InstrumentationSubscriber = InstrumentationSubscriber;
|
|
239
|
+
//# sourceMappingURL=instrumentationsubscriber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentationsubscriber.js","sourceRoot":"","sources":["../src/instrumentationsubscriber.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafkaconsumer.js","sourceRoot":"","sources":["../../src/kafka/kafkaconsumer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"kafkaconsumer.js","sourceRoot":"","sources":["../../src/kafka/kafkaconsumer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/commonTypes.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { PublishInstrumentControllerV2, InstrumentDefinitions } from '@nsshunt/s
|
|
|
6
6
|
import { InstrumentBaseTelemetry, Gauge, InstrumentBase } from '@nsshunt/stsinstrumentation'
|
|
7
7
|
import { PGAccessLayer } from '@nsshunt/stsdatamanagement'
|
|
8
8
|
import { STSDefaultClientToServerEvents, STSDefaultServerToClientEvents } from '@nsshunt/stssocketio-client'
|
|
9
|
+
import { Consumer, IHeaders } from 'kafkajs'
|
|
9
10
|
|
|
10
11
|
export enum IPCMessageCommand {
|
|
11
12
|
AddWorker = 'AddWorker',
|
|
@@ -223,3 +224,54 @@ export interface InstrumentPayload {
|
|
|
223
224
|
context: ServiceProcessContext
|
|
224
225
|
instruments: Record<string, InstrumentBase>
|
|
225
226
|
}
|
|
227
|
+
|
|
228
|
+
export enum SubscriptionTopic {
|
|
229
|
+
// Services
|
|
230
|
+
AllServicesCombined = 'AllServicesCombined',
|
|
231
|
+
Services = 'Services',
|
|
232
|
+
ServiceInstances = 'ServiceInstances',
|
|
233
|
+
ServiceInstance = 'ServiceInstance',
|
|
234
|
+
|
|
235
|
+
// User Agents
|
|
236
|
+
AllAgentsCombined = 'AllAgentsCombined',
|
|
237
|
+
Agents = 'Agents',
|
|
238
|
+
AgentWorkers = 'AgentWorkers',
|
|
239
|
+
AgentWorker = 'AgentWorker',
|
|
240
|
+
|
|
241
|
+
// Logging (both service and agent)
|
|
242
|
+
LogProcessing = 'LogProcessing'
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export interface IKafkaConsumer {
|
|
246
|
+
get consumer(): Consumer
|
|
247
|
+
get id(): string
|
|
248
|
+
Connect(): Promise<void>
|
|
249
|
+
Disconnect(): Promise<void>
|
|
250
|
+
Subscribe: (topics: string[], fromBeginning: boolean) => Promise<void>
|
|
251
|
+
Stop: () => Promise<void>
|
|
252
|
+
StartConsumingMessages: (cb: (topic: string, key: string, partition: number, value: string, headers: IHeaders | undefined) => void) => Promise<void>
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export interface ISubscriptionPayload {
|
|
256
|
+
topic: SubscriptionTopic
|
|
257
|
+
key?: string
|
|
258
|
+
subkey?: string
|
|
259
|
+
data: any
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export interface IKafkaSubscription {
|
|
263
|
+
kafkaTopic: string
|
|
264
|
+
kafkaGroupId: string
|
|
265
|
+
kafkaConsumer: IKafkaConsumer
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export interface ISubscription {
|
|
269
|
+
topic: SubscriptionTopic
|
|
270
|
+
key?: string
|
|
271
|
+
subkey?: string
|
|
272
|
+
kafka?: IKafkaSubscription
|
|
273
|
+
cb: (payload: ISubscriptionPayload) => void
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export type ISubscriptions = ISubscription[]
|
|
277
|
+
|