@nsshunt/stsappframework 2.19.282 → 2.19.283

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,119 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ import { InfluxDB, Point, WriteApi, QueryApi, flux } from '@influxdata/influxdb-client'
3
+ import { Agent } from 'http'
4
+
5
+ import { InstrumentPayload } from '@nsshunt/stsmodels'
6
+ import { Gauge, InstrumentVelocity } from '@nsshunt/stsinstrumentation'
7
+
8
+ import { IInfluxDBManagerOptions } from './../commonTypes'
9
+
10
+ import { $Options } from '@nsshunt/stsconfig'
11
+ import { JSONObject } from '@nsshunt/stsutils'
12
+
13
+ const goptions = $Options()
14
+
15
+ const _logPrefix = 'InfluxDBManager:'
16
+
17
+ export class InfluxDBManagerBase
18
+ {
19
+ #queryApi: QueryApi;
20
+ #writeClient: WriteApi;
21
+ #shuttingDown: boolean = false;
22
+ #options: IInfluxDBManagerOptions;
23
+
24
+ constructor(options: IInfluxDBManagerOptions, queryApi: QueryApi, writeClient: WriteApi) {
25
+ this.#queryApi = queryApi;
26
+ this.#writeClient = writeClient;
27
+ this.#options = options;
28
+ }
29
+
30
+ get options() {
31
+ return this.#options;
32
+ }
33
+ get queryApi() {
34
+ return this.#queryApi;
35
+ }
36
+
37
+ get writeClient() {
38
+ return this.#writeClient;
39
+ }
40
+
41
+ get shuttingDown() {
42
+ return this.#shuttingDown;
43
+ }
44
+ set shuttingDown(val: boolean) {
45
+ this.#shuttingDown = val;
46
+ }
47
+
48
+ get modelType(): string {
49
+ throw new Error('modelType(): Must override in sub-class')
50
+ }
51
+
52
+ // Helpers --------------------------------------------------------------------------------------------------------
53
+ async ProcessInfluxDBResults(promArray: Promise<any>[], fields: string[]) {
54
+ try {
55
+ const promRetVal: any[] = await Promise.all(promArray).catch(error => {
56
+ console.error(error)
57
+ }) as any[];
58
+
59
+ const stscount: any[] = promRetVal[0];
60
+ const stsquantile: any[] = promRetVal[1];
61
+ const stshisto: any[] = promRetVal[2];
62
+
63
+ const combinedResults: any = { };
64
+
65
+ stscount.forEach((countRecord) => {
66
+ const values: any[] = fields.map(field => countRecord[field])
67
+ const { _field, _value } = countRecord;
68
+ this.CreateNestedObject(combinedResults, values)[_field] = _value;
69
+ });
70
+
71
+ stsquantile.forEach((stsquantileRecord) => {
72
+ const values: any[] = fields.map(field => stsquantileRecord[field])
73
+ const { _field, quantile, _value} = stsquantileRecord;
74
+ const useField = _field + '_quantile'
75
+ this.CreateNestedObject(combinedResults, [...values, useField])[quantile] = _value;
76
+ });
77
+
78
+ stshisto.forEach((stshistoRecord) => {
79
+ const values: any[] = fields.map(field => stshistoRecord[field])
80
+ const { _field, le, _value} = stshistoRecord;
81
+ const useField = _field + '_histo'
82
+ this.CreateNestedObject(combinedResults, [...values, useField])[le] = _value;
83
+ });
84
+
85
+ return combinedResults;
86
+ } catch (error) {
87
+ console.error(`${_logPrefix}ProcessInfluxDBResults: Error: [${error}]`.red);
88
+ }
89
+ }
90
+
91
+ CreateGlobalCountModel = (stscount: any[]) => {
92
+ try {
93
+ const results: any = { };
94
+ stscount.forEach((o: any) => {
95
+ results[o._field] = o._value;
96
+ });
97
+ return results;
98
+ } catch (error) {
99
+ console.error(`${_logPrefix}#CreateGlobalCountModel: Error: [${error}]`.red);
100
+ }
101
+ }
102
+
103
+ CreateNestedObject(combinedResults: JSONObject, keyList: string[]): JSONObject {
104
+ let workingObject = combinedResults;
105
+ keyList.forEach((key) => {
106
+ if (!workingObject[key]) {
107
+ workingObject[key] = { };
108
+ }
109
+ workingObject = workingObject[key];
110
+ });
111
+ return workingObject;
112
+ }
113
+
114
+ // Agent context payload
115
+ // {"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"}
116
+ async OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean> {
117
+ throw new Error('Must override in sub-class');
118
+ }
119
+ }
@@ -0,0 +1,257 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ import { Point, WriteApi, QueryApi } from '@influxdata/influxdb-client'
3
+
4
+ import { InstrumentPayload } from '@nsshunt/stsmodels'
5
+ import { Gauge, InstrumentVelocity } from '@nsshunt/stsinstrumentation'
6
+
7
+ import { InfluxDBManagerBase } from './influxDBManagerBase'
8
+
9
+ import { IInfluxDBManagerOptions } from './../commonTypes'
10
+
11
+ const _logPrefix = 'InfluxDBManagerService:'
12
+
13
+ export class InfluxDBManagerService extends InfluxDBManagerBase
14
+ {
15
+ constructor(options: IInfluxDBManagerOptions, queryApi: QueryApi, writeClient: WriteApi) {
16
+ super(options, queryApi, writeClient);
17
+ }
18
+
19
+ override get modelType(): string {
20
+ return 'service'
21
+ }
22
+
23
+ // Queries --------------------------------------------------------------------------------------------------------
24
+
25
+ // Counter metrics
26
+ #GetSTSCountGenericService = async (filterClause: string, groupClause: string, showOutput: boolean = false): Promise<any> => {
27
+ try {
28
+ const query = `dostscountex = (q, d) =>
29
+ from(bucket: "${this.options.bucket}")
30
+ |> range(start: d)
31
+ |> filter(fn: (r) => r["_measurement"] == "all" and r["modelType"] == "service" ${filterClause})
32
+ |> filter(fn: (r) => r["_field"] == q)
33
+ |> last()
34
+ |> ${groupClause}
35
+ |> sum()
36
+
37
+ dogetmemory = () =>
38
+ from(bucket: "${this.options.bucket}")
39
+ |> range(start: -5s)
40
+ |> filter(fn: (r) => r["_measurement"] == "all" and r["modelType"] == "service" ${filterClause})
41
+ |> filter(fn: (r) => r["_field"] == "memory")
42
+ |> last()
43
+
44
+ dostscount = (d) =>
45
+ union(tables: [
46
+ dostscountex(q: "requestCount", d: d),
47
+ dostscountex(q: "errorCount", d: d),
48
+ dostscountex(q: "retryCount", d: d),
49
+ dostscountex(q: "authenticationCount", d: d),
50
+ dostscountex(q: "activeRequestCount", d: d),
51
+ dostscountex(q: "connectionCount", d: d),
52
+ dostscountex(q: "connectionPoolCount", d: d),
53
+ dostscountex(q: "connectionIdleCount", d: d),
54
+ dostscountex(q: "connectionWaitingCount", d: d),
55
+ dostscountex(q: "coreCount", d: d),
56
+ dostscountex(q: "cpu", d: d),
57
+ dostscountex(q: "systemcpu", d: d),
58
+ dostscountex(q: "velocity", d: d),
59
+ dostscountex(q: "timer", d: d),
60
+ dostscountex(q: "duration", d: d),
61
+ dostscountex(q: "latency", d: d),
62
+ dogetmemory()
63
+ ])
64
+ dostscount(d: -5s)`;
65
+
66
+ if (showOutput) {
67
+ console.log(query);
68
+ }
69
+
70
+ return this.queryApi.collectRows(query)
71
+ } catch (error) {
72
+ console.error(`${_logPrefix}#GetSTSCountGeneric: Error: [${error}]`.red);
73
+ }
74
+ }
75
+
76
+ // Histo metrics
77
+ #GetSTSHistoGenericService = async (modelType: string, filterClause: string, groupClause: string): Promise<any> => {
78
+ try {
79
+ const query = `import "math"
80
+
81
+ dostshistoex = (q, d) =>
82
+ from(bucket: "${this.options.bucket}")
83
+ |> range(start: d)
84
+ |> filter(fn: (r) => r["_measurement"] == "all")
85
+ |> filter(fn: (r) => r["_field"] == q and r["modelType"] == "${modelType}" ${filterClause})
86
+ |> ${groupClause}
87
+ |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
88
+ |> difference()
89
+
90
+ dostshisto = (d) =>
91
+ union(tables: [
92
+ dostshistoex(q: "latency", d: d),
93
+ dostshistoex(q: "duration", d: d)
94
+ ])
95
+
96
+ dostshisto(d: -10m)`;
97
+ return this.queryApi.collectRows(query)
98
+ } catch (error) {
99
+ console.error(`${_logPrefix}#GetSTSHistoGeneric: Error: [${error}]`.red);
100
+ }
101
+ }
102
+
103
+ // Quantile metrics
104
+ #GetSTSQuantileGenericService = async (modelType: string, filterClause: string, groupClause: string): Promise<any> => {
105
+ try {
106
+ const query = `dostsquantileex = (q, d, i, f) =>
107
+ from(bucket: "${this.options.bucket}")
108
+ |> range(start: d)
109
+ |> filter(fn: (r) => r["_measurement"] == "all")
110
+ |> filter(fn: (r) => r["_field"] == f and r["modelType"] == "${modelType}" ${filterClause})
111
+ |> ${groupClause}
112
+ |> aggregateWindow(every: i, fn: max, createEmpty: false)
113
+ |> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
114
+ |> set(key: "quantile", value: string(v:q))
115
+ |> group(columns: ["LatencyType","quantile"])
116
+
117
+ dostsquantile = (d, i, f) =>
118
+ union(tables: [
119
+ dostsquantileex(q: 0.5, d: d, i: i, f: f),
120
+ dostsquantileex(q: 0.8, d: d, i: i, f: f),
121
+ dostsquantileex(q: 0.9, d: d, i: i, f: f),
122
+ dostsquantileex(q: 0.95, d: d, i: i, f: f),
123
+ dostsquantileex(q: 0.99, d: d, i: i, f: f)
124
+ ])
125
+
126
+ union(tables: [
127
+ dostsquantile(d: -10m, i: 5s, f: "latency"),
128
+ dostsquantile(d: -10m, i: 5s, f: "duration")
129
+ dostsquantile(d: -10m, i: 5s, f: "cpu")
130
+ dostsquantile(d: -10m, i: 5s, f: "systemcpu")
131
+ ])`;
132
+
133
+ return this.queryApi.collectRows(query)
134
+ } catch (error) {
135
+ console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
136
+ }
137
+ }
138
+
139
+ // Metric queries -------------------------------------------------------------------------------------------------
140
+ // Root level metrics
141
+ async GetInfluxDBResultsRootService() {
142
+ try {
143
+ const combinedResults = await this.ProcessInfluxDBResults([
144
+ this.#GetSTSCountGenericService('', 'group(columns: ["_field"])'),
145
+ this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["_field"])'),
146
+ this.#GetSTSHistoGenericService('service', '', 'group(columns: ["_field"])')],
147
+ [ ])
148
+
149
+ return { SubscriptionType: "ID_", data: combinedResults };
150
+ } catch (error) {
151
+ console.error(`${_logPrefix}GetInfluxDBResultsRoot: Error: [${error}]`.red);
152
+ }
153
+ }
154
+
155
+ // Service level metrics
156
+ async GetInfluxDBResultsService() {
157
+ try {
158
+ const combinedResults = await this.ProcessInfluxDBResults([
159
+ this.#GetSTSCountGenericService('', 'group(columns: ["serviceId", "_field"])'),
160
+ this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["serviceId", "_field"])'),
161
+ this.#GetSTSHistoGenericService('service', '', 'group(columns: ["serviceId", "_field"])')],
162
+ ['serviceId'])
163
+
164
+ return { SubscriptionType: "ID_Service", data: combinedResults};
165
+ } catch (error) {
166
+ console.error(`${_logPrefix}GetInfluxDBResultsService: Error: [${error}]`.red);
167
+ }
168
+ }
169
+
170
+ // Service instance metrics for a particular service type
171
+ async GetInfluxDBResultsServiceInstances(serviceId: string) {
172
+ try {
173
+ const combinedResults = await this.ProcessInfluxDBResults([
174
+ this.#GetSTSCountGenericService(`and r["serviceId"] == "${serviceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "_field"])`),
175
+ this.#GetSTSQuantileGenericService(`service`, `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])'),
176
+ this.#GetSTSHistoGenericService('service', `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])')],
177
+ ['serviceId', 'serviceInstanceId'])
178
+
179
+ return { SubscriptionType: `ID_ServiceInstances_${serviceId}`, data: combinedResults};
180
+ } catch (error) {
181
+ console.error(`${_logPrefix}GetInfluxDBResultsServiceInstances: Error: [${error}]`.red);
182
+ }
183
+ }
184
+
185
+ // Service instance thread metrics for a particular service instance
186
+ async GetInfluxDBResultsServiceInstance(serviceInstanceId: string) {
187
+ try {
188
+ const combinedResults = await this.ProcessInfluxDBResults([
189
+ this.#GetSTSCountGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])`),
190
+ this.#GetSTSQuantileGenericService(`service`, `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])'),
191
+ this.#GetSTSHistoGenericService('service', `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])')],
192
+ ['serviceId', 'serviceInstanceId', 'serviceInstanceProcessId'])
193
+
194
+ return { SubscriptionType: `ID_ServiceInstance_${serviceInstanceId}`, data: combinedResults};
195
+ } catch (error) {
196
+ console.error(`${_logPrefix}GetInfluxDBResultsServiceInstance: Error: [${error}]`.red);
197
+ }
198
+ }
199
+
200
+ // Write data points ----------------------------------------------------------------------------------------------
201
+ // Agent context payload
202
+ // {"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"}
203
+ async OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean> {
204
+ try {
205
+ if (this.shuttingDown) {
206
+ return false;
207
+ }
208
+
209
+ const { serviceId, serviceInstanceId, hostName, serviceInstanceProcessId,
210
+ pid, ppid, isMaster, isWorker, serviceName, serviceVersion } = instrumentPayload.context;
211
+
212
+ let systemcpu = 0.0;
213
+ if (instrumentPayload.instruments[Gauge.CPU_SYSTEM_LOAD_GAUGE]) {
214
+ systemcpu = (instrumentPayload.instruments[Gauge.CPU_SYSTEM_LOAD_GAUGE].val as number);
215
+ }
216
+
217
+ const point = new Point('all')
218
+ // Context settings
219
+ .tag('serviceId', serviceId as string)
220
+ .tag('serviceName', serviceName as string)
221
+ .tag('serviceVersion', serviceVersion as string)
222
+ .tag('serviceInstanceId', serviceInstanceId as string)
223
+ .tag('serviceInstanceProcessId', serviceInstanceProcessId as string)
224
+ .tag('hostName', hostName as string)
225
+ .tag('pid', (pid as number).toString())
226
+ .tag('ppid', (ppid as number).toString())
227
+ .tag('isMaster', (isMaster as boolean).toString())
228
+ .tag('isWorker', (isWorker as boolean).toString())
229
+ .tag('modelType', 'service')
230
+ // Data fields
231
+ .intField('requestCount', instrumentPayload.instruments[Gauge.REQUEST_COUNT_GAUGE].val)
232
+ .intField('errorCount', instrumentPayload.instruments[Gauge.ERROR_COUNT_GAUGE].val)
233
+ .intField('retryCount', instrumentPayload.instruments[Gauge.RETRY_COUNT_GAUGE].val)
234
+ .intField('authenticationCount', instrumentPayload.instruments[Gauge.AUTHENTICATION_COUNT_GAUGE].val)
235
+ .floatField('velocity', (instrumentPayload.instruments[Gauge.VELOCITY_GAUGE] as InstrumentVelocity).va)
236
+ .floatField('cpu', instrumentPayload.instruments[Gauge.CPU_LOAD_GAUGE].val)
237
+ .intField('activeRequestCount', instrumentPayload.instruments[Gauge.ACTIVE_REQUEST_GAUGE].val)
238
+ .intField('connectionCount', instrumentPayload.instruments[Gauge.CONNECTION_COUNT_GAUGE].val)
239
+ .intField('connectionPoolCount', instrumentPayload.instruments[Gauge.CONNECTION_POOL_TOTAL_GAUGE].val)
240
+ .intField('connectionIdleCount', instrumentPayload.instruments[Gauge.CONNECTION_POOL_IDLE_GAUGE].val)
241
+ .intField('connectionWaitingCount', instrumentPayload.instruments[Gauge.CONNECTION_POOL_WAITING_GAUGE].val)
242
+ .intField('coreCount', instrumentPayload.instruments[Gauge.CORE_COUNT_GAUGE].val)
243
+ .floatField('timer', instrumentPayload.instruments[Gauge.TIMER_GAUGE].val)
244
+ .floatField('duration', instrumentPayload.instruments[Gauge.DURATION_GAUGE].val)
245
+ .floatField('latency', instrumentPayload.instruments[Gauge.LATENCY_GAUGE].val)
246
+ .floatField('systemcpu', systemcpu)
247
+ .stringField('memory', JSON.stringify(instrumentPayload.instruments[Gauge.OBJECT_GAUGE].val))
248
+
249
+ this.writeClient.writePoint(point);
250
+ return true;
251
+ } catch (error: any) {
252
+ console.error(`${_logPrefix}OutputInfluxDB: Could not write data point: [${error}]`.red);
253
+ console.error(`${JSON.stringify(instrumentPayload.context)}`.red);
254
+ return false;
255
+ }
256
+ }
257
+ }
@@ -0,0 +1,119 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ import { InstrumentPayload } from '@nsshunt/stsmodels'
3
+ import { Gauge } from '@nsshunt/stsinstrumentation'
4
+
5
+ import { KafkaManager, IKafkaManagerConfig } from './kafkamanager'
6
+ import { KafkaProducer } from './kafkaproducer'
7
+
8
+ import { JSONObject } from '@nsshunt/stsutils'
9
+
10
+ import { $Options } from '@nsshunt/stsconfig'
11
+ const goptions = $Options()
12
+
13
+ const _logPrefix = 'IMKafkaManager.'
14
+
15
+ // Manage the publication of InstrumentPayload to Kafka
16
+ export class IMKafkaManager {
17
+ #shuttingDown: boolean = false;
18
+ #producer: KafkaProducer | null = null;
19
+
20
+ #km: KafkaManager;
21
+ #topics: JSONObject = { }
22
+
23
+ constructor()
24
+ {
25
+ //super(options);
26
+
27
+ const kmc: IKafkaManagerConfig = {
28
+ clientId: goptions.kafka_clientId,
29
+ brokers: goptions.kafka_brokers.split(','),
30
+ keepAlive: goptions.kafka_keep_alive,
31
+ adminTimeout: goptions.kafka_admin_timeout,
32
+ connectionTimeout: goptions.kafka_connection_timeout,
33
+ logLevel: goptions.kafka_log_level,
34
+ useSSL: goptions.kafka_use_ssl,
35
+ requestTimeout: goptions.kafka_request_timeout
36
+ }
37
+ if (goptions.kafka_use_ssl) {
38
+ kmc.ssl = {
39
+ rejectUnauthorized: goptions.kafka_ssl_rejectUnauthorized,
40
+ cafile: goptions.kafka_ssl_cafile,
41
+ certfileFile: goptions.kafka_ssl_certfile,
42
+ keyfile: goptions.kafka_ssl_keyfile
43
+ }
44
+ }
45
+
46
+ this.#km = new KafkaManager(kmc);
47
+ }
48
+
49
+ get km(): KafkaManager {
50
+ return this.#km;
51
+ }
52
+
53
+ Start = async (): Promise<void> => {
54
+ this.#producer = this.#km.CreateProducer();
55
+ await this.#producer.Connect()
56
+ }
57
+
58
+ Terminate = async (): Promise<void> => {
59
+ try {
60
+ if (this.#shuttingDown) {
61
+ console.log(`IMKafkaManager:Terminate: Terminate already called. Ignoring.`.yellow);
62
+ } else {
63
+ this.#shuttingDown = true;
64
+ console.log(`ProducerDisconnect`.yellow);
65
+ if (this.#producer) {
66
+ await this.#producer.Disconnect();
67
+ }
68
+ }
69
+ } catch (error) {
70
+ console.error(`${_logPrefix}#Terminate: Error: [${error}]`.red);
71
+ }
72
+ }
73
+
74
+ async OutputLogs(instrumentPayload: InstrumentPayload): Promise<boolean> {
75
+ try {
76
+ if (this.#shuttingDown) {
77
+ return false;
78
+ }
79
+
80
+ let topic: string = '';
81
+
82
+ if (instrumentPayload.context.agentName) {
83
+ const { agentName, threadId, asyncRunnerId } = instrumentPayload.context;
84
+
85
+ topic = `${agentName}_${threadId}_${asyncRunnerId}`.replace(/@/g, '_');
86
+ topic = topic.replace(/\|/g, '_')
87
+ } else {
88
+ const { serviceInstanceId, serviceInstanceProcessId } = instrumentPayload.context;
89
+ topic = (serviceInstanceId + '_' + serviceInstanceProcessId).replace(/@/g, '_');
90
+ }
91
+
92
+ if (!this.#topics[topic]) {
93
+ console.log(`Setting up kafka topic: [${topic}]`.red);
94
+ await this.#km.CreateTopic(topic, 1);
95
+ this.#topics[topic] = true;
96
+ }
97
+
98
+ if (instrumentPayload.instruments[Gauge.LOGGER]) {
99
+ const loggerMessages = [ ...instrumentPayload.instruments[Gauge.LOGGER].val as string[] ]
100
+ if (loggerMessages.length > 0) {
101
+
102
+ const messages: JSONObject[] = [ ];
103
+ loggerMessages.forEach((m) => {
104
+ messages.push({key: topic, value: m})
105
+ });
106
+
107
+ // Don't wait for these to return ...
108
+ if (this.#producer) {
109
+ this.#producer.SendMessages(topic, messages as any);
110
+ }
111
+ }
112
+ }
113
+ return true;
114
+ } catch (error: any) {
115
+ console.error(`${_logPrefix}OutputLogs: Could not output log data to kafka: [${error}]`.red);
116
+ return false;
117
+ }
118
+ }
119
+ }
@@ -127,4 +127,18 @@ export interface ISocketIoServerHelper<ClientToServerEvents extends STSDefaultCl
127
127
  DisconnectSockets: () => void;
128
128
  SetupEvent(event: ClientToServerEvents, eventCb: ServerEventCb): ISocketIoServerHelper<ClientToServerEvents, ServerToClientEvents>;
129
129
  }
130
+ export interface IInfluxDBManagerOptions {
131
+ token: string;
132
+ url: string;
133
+ org: string;
134
+ bucket: string;
135
+ agent?: {
136
+ influxDB_keepAlive: boolean;
137
+ influxDB_maxSockets?: number;
138
+ influxDB_maxTotalSockets?: number;
139
+ influxDB_maxFreeSockets?: number;
140
+ influxDB_timeout?: number;
141
+ influxDB_rejectUnauthorized?: boolean;
142
+ };
143
+ }
130
144
  //# sourceMappingURL=commonTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"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"}
package/types/index.d.ts CHANGED
@@ -13,4 +13,9 @@ 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';
16
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { InstrumentPayload } from '@nsshunt/stsmodels';
2
+ import { JSONObject } from '@nsshunt/stsutils';
3
+ import { InfluxDBManagerService } from './influxDBManagerService';
4
+ import { InfluxDBManagerAgent } from './influxDBManagerAgent';
5
+ import { IInfluxDBManagerOptions } from './../commonTypes';
6
+ export declare class InfluxDBManager {
7
+ #private;
8
+ constructor(options: IInfluxDBManagerOptions);
9
+ CreateInfluxDBManagerClient(modelType: string): void;
10
+ get serviceManager(): InfluxDBManagerService;
11
+ get agentManager(): InfluxDBManagerAgent;
12
+ Start: () => Promise<void>;
13
+ Terminate: () => Promise<void>;
14
+ CreateGlobalCountModel: (stscount: any[]) => any;
15
+ CreateNestedObject(combinedResults: JSONObject, keyList: string[]): JSONObject;
16
+ OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean>;
17
+ }
18
+ //# sourceMappingURL=influxDBManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"influxDBManager.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,OAAO,EAAE,sBAAsB,EAAC,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAqL1D,qBAAa,eAAe;;gBAiBZ,OAAO,EAAE,uBAAuB;IAkD5C,2BAA2B,CAAC,SAAS,EAAE,MAAM;IAa7C,IAAI,cAAc,IAAI,sBAAsB,CAE3C;IAED,IAAI,YAAY,IAAI,oBAAoB,CAEvC;IAED,KAAK,sBAEJ;IAED,SAAS,sBAuBR;IAQD,sBAAsB,aAAc,GAAG,EAAE,SAUxC;IAGD,kBAAkB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU;IAaxE,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAe/E"}
@@ -0,0 +1,27 @@
1
+ import { WriteApi, QueryApi } from '@influxdata/influxdb-client';
2
+ import { InstrumentPayload } from '@nsshunt/stsmodels';
3
+ import { InfluxDBManagerBase } from './influxDBManagerBase';
4
+ import { IInfluxDBManagerOptions } from './../commonTypes';
5
+ export declare class InfluxDBManagerAgent extends InfluxDBManagerBase {
6
+ #private;
7
+ constructor(options: IInfluxDBManagerOptions, queryApi: QueryApi, writeClient: WriteApi);
8
+ get modelType(): string;
9
+ GetInfluxDBResultsRootAgent(): Promise<{
10
+ SubscriptionType: string;
11
+ data: any;
12
+ } | undefined>;
13
+ GetInfluxDBResultsAgent(): Promise<{
14
+ SubscriptionType: string;
15
+ data: any;
16
+ } | undefined>;
17
+ GetInfluxDBResultsAgentThreads(agentName: string): Promise<{
18
+ SubscriptionType: string;
19
+ data: any;
20
+ } | undefined>;
21
+ GetInfluxDBResultsAgentThread(agentName: string, threadId: string): Promise<{
22
+ SubscriptionType: string;
23
+ data: any;
24
+ } | undefined>;
25
+ OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean>;
26
+ }
27
+ //# sourceMappingURL=influxDBManagerAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"influxDBManagerAgent.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAI1D,qBAAa,oBAAqB,SAAQ,mBAAmB;;gBAE7C,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAIvF,IAAa,SAAS,IAAI,MAAM,CAE/B;IAwGK,2BAA2B;;;;IAe3B,uBAAuB;;;;IAevB,8BAA8B,CAAC,SAAS,EAAE,MAAM;;;;IAkBhD,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAiBjE,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAqC/E"}
@@ -0,0 +1,19 @@
1
+ import { WriteApi, QueryApi } from '@influxdata/influxdb-client';
2
+ import { InstrumentPayload } from '@nsshunt/stsmodels';
3
+ import { IInfluxDBManagerOptions } from './../commonTypes';
4
+ import { JSONObject } from '@nsshunt/stsutils';
5
+ export declare class InfluxDBManagerBase {
6
+ #private;
7
+ constructor(options: IInfluxDBManagerOptions, queryApi: QueryApi, writeClient: WriteApi);
8
+ get options(): IInfluxDBManagerOptions;
9
+ get queryApi(): QueryApi;
10
+ get writeClient(): WriteApi;
11
+ get shuttingDown(): boolean;
12
+ set shuttingDown(val: boolean);
13
+ get modelType(): string;
14
+ ProcessInfluxDBResults(promArray: Promise<any>[], fields: string[]): Promise<any>;
15
+ CreateGlobalCountModel: (stscount: any[]) => any;
16
+ CreateNestedObject(combinedResults: JSONObject, keyList: string[]): JSONObject;
17
+ OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean>;
18
+ }
19
+ //# sourceMappingURL=influxDBManagerBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"influxDBManagerBase.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,QAAQ,EAAE,QAAQ,EAAQ,MAAM,6BAA6B,CAAA;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAM9C,qBAAa,mBAAmB;;gBAOhB,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAMvF,IAAI,OAAO,4BAEV;IACD,IAAI,QAAQ,aAEX;IAED,IAAI,WAAW,aAEd;IAED,IAAI,YAAY,IAGM,OAAO,CAD5B;IACD,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,EAE5B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAGK,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAsCxE,sBAAsB,aAAc,GAAG,EAAE,SAUxC;IAED,kBAAkB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU;IAaxE,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAG/E"}