@nsshunt/stsappframework 2.19.282 → 2.19.284

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 (34) hide show
  1. package/dist/index.js +5 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/influxdb/influxDBManager.js +334 -0
  4. package/dist/influxdb/influxDBManager.js.map +1 -0
  5. package/dist/influxdb/influxDBManagerAgent.js +211 -0
  6. package/dist/influxdb/influxDBManagerAgent.js.map +1 -0
  7. package/dist/influxdb/influxDBManagerBase.js +97 -0
  8. package/dist/influxdb/influxDBManagerBase.js.map +1 -0
  9. package/dist/influxdb/influxDBManagerService.js +240 -0
  10. package/dist/influxdb/influxDBManagerService.js.map +1 -0
  11. package/dist/kafka/IMKafkaManager.js +103 -0
  12. package/dist/kafka/IMKafkaManager.js.map +1 -0
  13. package/package.json +2 -1
  14. package/src/commonTypes.ts +15 -0
  15. package/src/index.ts +5 -0
  16. package/src/influxdb/influxDBManager.ts +359 -0
  17. package/src/influxdb/influxDBManagerAgent.ts +227 -0
  18. package/src/influxdb/influxDBManagerBase.ts +119 -0
  19. package/src/influxdb/influxDBManagerService.ts +257 -0
  20. package/src/kafka/IMKafkaManager.ts +119 -0
  21. package/types/commonTypes.d.ts +14 -0
  22. package/types/commonTypes.d.ts.map +1 -1
  23. package/types/index.d.ts +5 -0
  24. package/types/index.d.ts.map +1 -1
  25. package/types/influxdb/influxDBManager.d.ts +18 -0
  26. package/types/influxdb/influxDBManager.d.ts.map +1 -0
  27. package/types/influxdb/influxDBManagerAgent.d.ts +27 -0
  28. package/types/influxdb/influxDBManagerAgent.d.ts.map +1 -0
  29. package/types/influxdb/influxDBManagerBase.d.ts +19 -0
  30. package/types/influxdb/influxDBManagerBase.d.ts.map +1 -0
  31. package/types/influxdb/influxDBManagerService.d.ts +27 -0
  32. package/types/influxdb/influxDBManagerService.d.ts.map +1 -0
  33. package/types/kafka/IMKafkaManager.d.ts +11 -0
  34. package/types/kafka/IMKafkaManager.d.ts.map +1 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfluxDBManagerBase = void 0;
4
+ const stsconfig_1 = require("@nsshunt/stsconfig");
5
+ const goptions = (0, stsconfig_1.$Options)();
6
+ const _logPrefix = 'InfluxDBManager:';
7
+ class InfluxDBManagerBase {
8
+ #queryApi;
9
+ #writeClient;
10
+ #shuttingDown = false;
11
+ #options;
12
+ constructor(options, queryApi, writeClient) {
13
+ this.#queryApi = queryApi;
14
+ this.#writeClient = writeClient;
15
+ this.#options = options;
16
+ }
17
+ get options() {
18
+ return this.#options;
19
+ }
20
+ get queryApi() {
21
+ return this.#queryApi;
22
+ }
23
+ get writeClient() {
24
+ return this.#writeClient;
25
+ }
26
+ get shuttingDown() {
27
+ return this.#shuttingDown;
28
+ }
29
+ set shuttingDown(val) {
30
+ this.#shuttingDown = val;
31
+ }
32
+ get modelType() {
33
+ throw new Error('modelType(): Must override in sub-class');
34
+ }
35
+ // Helpers --------------------------------------------------------------------------------------------------------
36
+ async ProcessInfluxDBResults(promArray, fields) {
37
+ try {
38
+ const promRetVal = await Promise.all(promArray).catch(error => {
39
+ console.error(error);
40
+ });
41
+ const stscount = promRetVal[0];
42
+ const stsquantile = promRetVal[1];
43
+ const stshisto = promRetVal[2];
44
+ const combinedResults = {};
45
+ stscount.forEach((countRecord) => {
46
+ const values = fields.map(field => countRecord[field]);
47
+ const { _field, _value } = countRecord;
48
+ this.CreateNestedObject(combinedResults, values)[_field] = _value;
49
+ });
50
+ stsquantile.forEach((stsquantileRecord) => {
51
+ const values = fields.map(field => stsquantileRecord[field]);
52
+ const { _field, quantile, _value } = stsquantileRecord;
53
+ const useField = _field + '_quantile';
54
+ this.CreateNestedObject(combinedResults, [...values, useField])[quantile] = _value;
55
+ });
56
+ stshisto.forEach((stshistoRecord) => {
57
+ const values = fields.map(field => stshistoRecord[field]);
58
+ const { _field, le, _value } = stshistoRecord;
59
+ const useField = _field + '_histo';
60
+ this.CreateNestedObject(combinedResults, [...values, useField])[le] = _value;
61
+ });
62
+ return combinedResults;
63
+ }
64
+ catch (error) {
65
+ console.error(`${_logPrefix}ProcessInfluxDBResults: Error: [${error}]`.red);
66
+ }
67
+ }
68
+ CreateGlobalCountModel = (stscount) => {
69
+ try {
70
+ const results = {};
71
+ stscount.forEach((o) => {
72
+ results[o._field] = o._value;
73
+ });
74
+ return results;
75
+ }
76
+ catch (error) {
77
+ console.error(`${_logPrefix}#CreateGlobalCountModel: Error: [${error}]`.red);
78
+ }
79
+ };
80
+ CreateNestedObject(combinedResults, keyList) {
81
+ let workingObject = combinedResults;
82
+ keyList.forEach((key) => {
83
+ if (!workingObject[key]) {
84
+ workingObject[key] = {};
85
+ }
86
+ workingObject = workingObject[key];
87
+ });
88
+ return workingObject;
89
+ }
90
+ // Agent context payload
91
+ // {"nid":"somehost@e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent|MainProcess|0","id":"somehost@e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent|MainProcess|0","hostName":"somehost","agentName":"e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent","threadId":"MainProcess","asyncRunnerId":"0"}
92
+ async OutputInfluxDB(instrumentPayload) {
93
+ throw new Error('Must override in sub-class');
94
+ }
95
+ }
96
+ exports.InfluxDBManagerBase = InfluxDBManagerBase;
97
+ //# sourceMappingURL=influxDBManagerBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"influxDBManagerBase.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfluxDBManagerService = void 0;
4
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
5
+ const influxdb_client_1 = require("@influxdata/influxdb-client");
6
+ const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
7
+ const influxDBManagerBase_1 = require("./influxDBManagerBase");
8
+ const _logPrefix = 'InfluxDBManagerService:';
9
+ class InfluxDBManagerService extends influxDBManagerBase_1.InfluxDBManagerBase {
10
+ constructor(options, queryApi, writeClient) {
11
+ super(options, queryApi, writeClient);
12
+ }
13
+ get modelType() {
14
+ return 'service';
15
+ }
16
+ // Queries --------------------------------------------------------------------------------------------------------
17
+ // Counter metrics
18
+ #GetSTSCountGenericService = async (filterClause, groupClause, showOutput = false) => {
19
+ try {
20
+ const query = `dostscountex = (q, d) =>
21
+ from(bucket: "${this.options.bucket}")
22
+ |> range(start: d)
23
+ |> filter(fn: (r) => r["_measurement"] == "all" and r["modelType"] == "service" ${filterClause})
24
+ |> filter(fn: (r) => r["_field"] == q)
25
+ |> last()
26
+ |> ${groupClause}
27
+ |> sum()
28
+
29
+ dogetmemory = () =>
30
+ from(bucket: "${this.options.bucket}")
31
+ |> range(start: -5s)
32
+ |> filter(fn: (r) => r["_measurement"] == "all" and r["modelType"] == "service" ${filterClause})
33
+ |> filter(fn: (r) => r["_field"] == "memory")
34
+ |> last()
35
+
36
+ dostscount = (d) =>
37
+ union(tables: [
38
+ dostscountex(q: "requestCount", d: d),
39
+ dostscountex(q: "errorCount", d: d),
40
+ dostscountex(q: "retryCount", d: d),
41
+ dostscountex(q: "authenticationCount", d: d),
42
+ dostscountex(q: "activeRequestCount", d: d),
43
+ dostscountex(q: "connectionCount", d: d),
44
+ dostscountex(q: "connectionPoolCount", d: d),
45
+ dostscountex(q: "connectionIdleCount", d: d),
46
+ dostscountex(q: "connectionWaitingCount", d: d),
47
+ dostscountex(q: "coreCount", d: d),
48
+ dostscountex(q: "cpu", d: d),
49
+ dostscountex(q: "systemcpu", d: d),
50
+ dostscountex(q: "velocity", d: d),
51
+ dostscountex(q: "timer", d: d),
52
+ dostscountex(q: "duration", d: d),
53
+ dostscountex(q: "latency", d: d),
54
+ dogetmemory()
55
+ ])
56
+ dostscount(d: -5s)`;
57
+ if (showOutput) {
58
+ console.log(query);
59
+ }
60
+ return this.queryApi.collectRows(query);
61
+ }
62
+ catch (error) {
63
+ console.error(`${_logPrefix}#GetSTSCountGeneric: Error: [${error}]`.red);
64
+ }
65
+ };
66
+ // Histo metrics
67
+ #GetSTSHistoGenericService = async (modelType, filterClause, groupClause) => {
68
+ try {
69
+ const query = `import "math"
70
+
71
+ dostshistoex = (q, d) =>
72
+ from(bucket: "${this.options.bucket}")
73
+ |> range(start: d)
74
+ |> filter(fn: (r) => r["_measurement"] == "all")
75
+ |> filter(fn: (r) => r["_field"] == q and r["modelType"] == "${modelType}" ${filterClause})
76
+ |> ${groupClause}
77
+ |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
78
+ |> difference()
79
+
80
+ dostshisto = (d) =>
81
+ union(tables: [
82
+ dostshistoex(q: "latency", d: d),
83
+ dostshistoex(q: "duration", d: d)
84
+ ])
85
+
86
+ dostshisto(d: -10m)`;
87
+ return this.queryApi.collectRows(query);
88
+ }
89
+ catch (error) {
90
+ console.error(`${_logPrefix}#GetSTSHistoGeneric: Error: [${error}]`.red);
91
+ }
92
+ };
93
+ // Quantile metrics
94
+ #GetSTSQuantileGenericService = async (modelType, filterClause, groupClause) => {
95
+ try {
96
+ const query = `dostsquantileex = (q, d, i, f) =>
97
+ from(bucket: "${this.options.bucket}")
98
+ |> range(start: d)
99
+ |> filter(fn: (r) => r["_measurement"] == "all")
100
+ |> filter(fn: (r) => r["_field"] == f and r["modelType"] == "${modelType}" ${filterClause})
101
+ |> ${groupClause}
102
+ |> aggregateWindow(every: i, fn: max, createEmpty: false)
103
+ |> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
104
+ |> set(key: "quantile", value: string(v:q))
105
+ |> group(columns: ["LatencyType","quantile"])
106
+
107
+ dostsquantile = (d, i, f) =>
108
+ union(tables: [
109
+ dostsquantileex(q: 0.5, d: d, i: i, f: f),
110
+ dostsquantileex(q: 0.8, d: d, i: i, f: f),
111
+ dostsquantileex(q: 0.9, d: d, i: i, f: f),
112
+ dostsquantileex(q: 0.95, d: d, i: i, f: f),
113
+ dostsquantileex(q: 0.99, d: d, i: i, f: f)
114
+ ])
115
+
116
+ union(tables: [
117
+ dostsquantile(d: -10m, i: 5s, f: "latency"),
118
+ dostsquantile(d: -10m, i: 5s, f: "duration")
119
+ dostsquantile(d: -10m, i: 5s, f: "cpu")
120
+ dostsquantile(d: -10m, i: 5s, f: "systemcpu")
121
+ ])`;
122
+ return this.queryApi.collectRows(query);
123
+ }
124
+ catch (error) {
125
+ console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
126
+ }
127
+ };
128
+ // Metric queries -------------------------------------------------------------------------------------------------
129
+ // Root level metrics
130
+ async GetInfluxDBResultsRootService() {
131
+ try {
132
+ const combinedResults = await this.ProcessInfluxDBResults([
133
+ this.#GetSTSCountGenericService('', 'group(columns: ["_field"])'),
134
+ this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["_field"])'),
135
+ this.#GetSTSHistoGenericService('service', '', 'group(columns: ["_field"])')
136
+ ], []);
137
+ return { SubscriptionType: "ID_", data: combinedResults };
138
+ }
139
+ catch (error) {
140
+ console.error(`${_logPrefix}GetInfluxDBResultsRoot: Error: [${error}]`.red);
141
+ }
142
+ }
143
+ // Service level metrics
144
+ async GetInfluxDBResultsService() {
145
+ try {
146
+ const combinedResults = await this.ProcessInfluxDBResults([
147
+ this.#GetSTSCountGenericService('', 'group(columns: ["serviceId", "_field"])'),
148
+ this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["serviceId", "_field"])'),
149
+ this.#GetSTSHistoGenericService('service', '', 'group(columns: ["serviceId", "_field"])')
150
+ ], ['serviceId']);
151
+ return { SubscriptionType: "ID_Service", data: combinedResults };
152
+ }
153
+ catch (error) {
154
+ console.error(`${_logPrefix}GetInfluxDBResultsService: Error: [${error}]`.red);
155
+ }
156
+ }
157
+ // Service instance metrics for a particular service type
158
+ async GetInfluxDBResultsServiceInstances(serviceId) {
159
+ try {
160
+ const combinedResults = await this.ProcessInfluxDBResults([
161
+ this.#GetSTSCountGenericService(`and r["serviceId"] == "${serviceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "_field"])`),
162
+ this.#GetSTSQuantileGenericService(`service`, `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])'),
163
+ this.#GetSTSHistoGenericService('service', `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])')
164
+ ], ['serviceId', 'serviceInstanceId']);
165
+ return { SubscriptionType: `ID_ServiceInstances_${serviceId}`, data: combinedResults };
166
+ }
167
+ catch (error) {
168
+ console.error(`${_logPrefix}GetInfluxDBResultsServiceInstances: Error: [${error}]`.red);
169
+ }
170
+ }
171
+ // Service instance thread metrics for a particular service instance
172
+ async GetInfluxDBResultsServiceInstance(serviceInstanceId) {
173
+ try {
174
+ const combinedResults = await this.ProcessInfluxDBResults([
175
+ this.#GetSTSCountGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])`),
176
+ this.#GetSTSQuantileGenericService(`service`, `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])'),
177
+ this.#GetSTSHistoGenericService('service', `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])')
178
+ ], ['serviceId', 'serviceInstanceId', 'serviceInstanceProcessId']);
179
+ return { SubscriptionType: `ID_ServiceInstance_${serviceInstanceId}`, data: combinedResults };
180
+ }
181
+ catch (error) {
182
+ console.error(`${_logPrefix}GetInfluxDBResultsServiceInstance: Error: [${error}]`.red);
183
+ }
184
+ }
185
+ // Write data points ----------------------------------------------------------------------------------------------
186
+ // Agent context payload
187
+ // {"nid":"somehost@e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent|MainProcess|0","id":"somehost@e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent|MainProcess|0","hostName":"somehost","agentName":"e58f5d75-6ff6-4e04-92a4-f2bcd722fec0-someuseragent","threadId":"MainProcess","asyncRunnerId":"0"}
188
+ async OutputInfluxDB(instrumentPayload) {
189
+ try {
190
+ if (this.shuttingDown) {
191
+ return false;
192
+ }
193
+ const { serviceId, serviceInstanceId, hostName, serviceInstanceProcessId, pid, ppid, isMaster, isWorker, serviceName, serviceVersion } = instrumentPayload.context;
194
+ let systemcpu = 0.0;
195
+ if (instrumentPayload.instruments[stsinstrumentation_1.Gauge.CPU_SYSTEM_LOAD_GAUGE]) {
196
+ systemcpu = instrumentPayload.instruments[stsinstrumentation_1.Gauge.CPU_SYSTEM_LOAD_GAUGE].val;
197
+ }
198
+ const point = new influxdb_client_1.Point('all')
199
+ // Context settings
200
+ .tag('serviceId', serviceId)
201
+ .tag('serviceName', serviceName)
202
+ .tag('serviceVersion', serviceVersion)
203
+ .tag('serviceInstanceId', serviceInstanceId)
204
+ .tag('serviceInstanceProcessId', serviceInstanceProcessId)
205
+ .tag('hostName', hostName)
206
+ .tag('pid', pid.toString())
207
+ .tag('ppid', ppid.toString())
208
+ .tag('isMaster', isMaster.toString())
209
+ .tag('isWorker', isWorker.toString())
210
+ .tag('modelType', 'service')
211
+ // Data fields
212
+ .intField('requestCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.REQUEST_COUNT_GAUGE].val)
213
+ .intField('errorCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.ERROR_COUNT_GAUGE].val)
214
+ .intField('retryCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.RETRY_COUNT_GAUGE].val)
215
+ .intField('authenticationCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.AUTHENTICATION_COUNT_GAUGE].val)
216
+ .floatField('velocity', instrumentPayload.instruments[stsinstrumentation_1.Gauge.VELOCITY_GAUGE].va)
217
+ .floatField('cpu', instrumentPayload.instruments[stsinstrumentation_1.Gauge.CPU_LOAD_GAUGE].val)
218
+ .intField('activeRequestCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.ACTIVE_REQUEST_GAUGE].val)
219
+ .intField('connectionCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.CONNECTION_COUNT_GAUGE].val)
220
+ .intField('connectionPoolCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.CONNECTION_POOL_TOTAL_GAUGE].val)
221
+ .intField('connectionIdleCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.CONNECTION_POOL_IDLE_GAUGE].val)
222
+ .intField('connectionWaitingCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.CONNECTION_POOL_WAITING_GAUGE].val)
223
+ .intField('coreCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.CORE_COUNT_GAUGE].val)
224
+ .floatField('timer', instrumentPayload.instruments[stsinstrumentation_1.Gauge.TIMER_GAUGE].val)
225
+ .floatField('duration', instrumentPayload.instruments[stsinstrumentation_1.Gauge.DURATION_GAUGE].val)
226
+ .floatField('latency', instrumentPayload.instruments[stsinstrumentation_1.Gauge.LATENCY_GAUGE].val)
227
+ .floatField('systemcpu', systemcpu)
228
+ .stringField('memory', JSON.stringify(instrumentPayload.instruments[stsinstrumentation_1.Gauge.OBJECT_GAUGE].val));
229
+ this.writeClient.writePoint(point);
230
+ return true;
231
+ }
232
+ catch (error) {
233
+ console.error(`${_logPrefix}OutputInfluxDB: Could not write data point: [${error}]`.red);
234
+ console.error(`${JSON.stringify(instrumentPayload.context)}`.red);
235
+ return false;
236
+ }
237
+ }
238
+ }
239
+ exports.InfluxDBManagerService = InfluxDBManagerService;
240
+ //# sourceMappingURL=influxDBManagerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"influxDBManagerService.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IMKafkaManager = void 0;
4
+ const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
5
+ const kafkamanager_1 = require("./kafkamanager");
6
+ const stsconfig_1 = require("@nsshunt/stsconfig");
7
+ const goptions = (0, stsconfig_1.$Options)();
8
+ const _logPrefix = 'IMKafkaManager.';
9
+ // Manage the publication of InstrumentPayload to Kafka
10
+ class IMKafkaManager {
11
+ #shuttingDown = false;
12
+ #producer = null;
13
+ #km;
14
+ #topics = {};
15
+ constructor() {
16
+ //super(options);
17
+ const kmc = {
18
+ clientId: goptions.kafka_clientId,
19
+ brokers: goptions.kafka_brokers.split(','),
20
+ keepAlive: goptions.kafka_keep_alive,
21
+ adminTimeout: goptions.kafka_admin_timeout,
22
+ connectionTimeout: goptions.kafka_connection_timeout,
23
+ logLevel: goptions.kafka_log_level,
24
+ useSSL: goptions.kafka_use_ssl,
25
+ requestTimeout: goptions.kafka_request_timeout
26
+ };
27
+ if (goptions.kafka_use_ssl) {
28
+ kmc.ssl = {
29
+ rejectUnauthorized: goptions.kafka_ssl_rejectUnauthorized,
30
+ cafile: goptions.kafka_ssl_cafile,
31
+ certfileFile: goptions.kafka_ssl_certfile,
32
+ keyfile: goptions.kafka_ssl_keyfile
33
+ };
34
+ }
35
+ this.#km = new kafkamanager_1.KafkaManager(kmc);
36
+ }
37
+ get km() {
38
+ return this.#km;
39
+ }
40
+ Start = async () => {
41
+ this.#producer = this.#km.CreateProducer();
42
+ await this.#producer.Connect();
43
+ };
44
+ Terminate = async () => {
45
+ try {
46
+ if (this.#shuttingDown) {
47
+ console.log(`IMKafkaManager:Terminate: Terminate already called. Ignoring.`.yellow);
48
+ }
49
+ else {
50
+ this.#shuttingDown = true;
51
+ console.log(`ProducerDisconnect`.yellow);
52
+ if (this.#producer) {
53
+ await this.#producer.Disconnect();
54
+ }
55
+ }
56
+ }
57
+ catch (error) {
58
+ console.error(`${_logPrefix}#Terminate: Error: [${error}]`.red);
59
+ }
60
+ };
61
+ async OutputLogs(instrumentPayload) {
62
+ try {
63
+ if (this.#shuttingDown) {
64
+ return false;
65
+ }
66
+ let topic = '';
67
+ if (instrumentPayload.context.agentName) {
68
+ const { agentName, threadId, asyncRunnerId } = instrumentPayload.context;
69
+ topic = `${agentName}_${threadId}_${asyncRunnerId}`.replace(/@/g, '_');
70
+ topic = topic.replace(/\|/g, '_');
71
+ }
72
+ else {
73
+ const { serviceInstanceId, serviceInstanceProcessId } = instrumentPayload.context;
74
+ topic = (serviceInstanceId + '_' + serviceInstanceProcessId).replace(/@/g, '_');
75
+ }
76
+ if (!this.#topics[topic]) {
77
+ console.log(`Setting up kafka topic: [${topic}]`.red);
78
+ await this.#km.CreateTopic(topic, 1);
79
+ this.#topics[topic] = true;
80
+ }
81
+ if (instrumentPayload.instruments[stsinstrumentation_1.Gauge.LOGGER]) {
82
+ const loggerMessages = [...instrumentPayload.instruments[stsinstrumentation_1.Gauge.LOGGER].val];
83
+ if (loggerMessages.length > 0) {
84
+ const messages = [];
85
+ loggerMessages.forEach((m) => {
86
+ messages.push({ key: topic, value: m });
87
+ });
88
+ // Don't wait for these to return ...
89
+ if (this.#producer) {
90
+ this.#producer.SendMessages(topic, messages);
91
+ }
92
+ }
93
+ }
94
+ return true;
95
+ }
96
+ catch (error) {
97
+ console.error(`${_logPrefix}OutputLogs: Could not output log data to kafka: [${error}]`.red);
98
+ return false;
99
+ }
100
+ }
101
+ }
102
+ exports.IMKafkaManager = IMKafkaManager;
103
+ //# sourceMappingURL=IMKafkaManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMKafkaManager.js","sourceRoot":"","sources":["../../src/kafka/IMKafkaManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "2.19.282",
3
+ "version": "2.19.284",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -46,6 +46,7 @@
46
46
  "typescript": "^5.2.2"
47
47
  },
48
48
  "dependencies": {
49
+ "@influxdata/influxdb-client": "^1.33.2",
49
50
  "@nsshunt/stsconfig": "^1.25.55",
50
51
  "@nsshunt/stsdatamanagement": "^1.17.124",
51
52
  "@nsshunt/stsinstrumentation": "^6.11.94",
@@ -179,3 +179,18 @@ export interface ISocketIoServerHelper<ClientToServerEvents extends STSDefaultCl
179
179
  DisconnectSockets: () => void
180
180
  SetupEvent(event: ClientToServerEvents, eventCb: ServerEventCb): ISocketIoServerHelper<ClientToServerEvents, ServerToClientEvents>
181
181
  }
182
+
183
+ export interface IInfluxDBManagerOptions {
184
+ token: string // API access token
185
+ url: string // end-pont for API
186
+ org: string // organisation
187
+ bucket: string // bucket to store results
188
+ agent?: {
189
+ influxDB_keepAlive: boolean
190
+ influxDB_maxSockets?: number
191
+ influxDB_maxTotalSockets?: number
192
+ influxDB_maxFreeSockets?: number
193
+ influxDB_timeout?: number
194
+ influxDB_rejectUnauthorized?: boolean
195
+ }
196
+ }
package/src/index.ts CHANGED
@@ -13,3 +13,8 @@ export * from './stslatencyroute'
13
13
  export * from './kafka/kafkamanager'
14
14
  export * from './kafka/kafkaproducer'
15
15
  export * from './kafka/kafkaconsumer'
16
+ export * from './kafka/IMKafkaManager'
17
+ export * from './influxdb/influxDBManager'
18
+ export * from './influxdb/influxDBManagerBase'
19
+ export * from './influxdb/influxDBManagerService'
20
+ export * from './influxdb/influxDBManagerAgent'