@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
|
@@ -5,7 +5,7 @@ import { Gauge, InstrumentVelocity } from '@nsshunt/stsinstrumentation'
|
|
|
5
5
|
|
|
6
6
|
import { InfluxDBManagerBase } from './influxDBManagerBase'
|
|
7
7
|
|
|
8
|
-
import { IInfluxDBManagerOptions, InstrumentPayload } from './../commonTypes'
|
|
8
|
+
import { IInfluxDBManagerOptions, InstrumentPayload, ISubscriptionPayload, SubscriptionTopic } from './../commonTypes'
|
|
9
9
|
|
|
10
10
|
const _logPrefix = 'InfluxDBManagerService:'
|
|
11
11
|
|
|
@@ -122,64 +122,63 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
122
122
|
|
|
123
123
|
// Metric queries -------------------------------------------------------------------------------------------------
|
|
124
124
|
// Root level metrics
|
|
125
|
-
async GetInfluxDBResultsRootAgent() {
|
|
125
|
+
async GetInfluxDBResultsRootAgent(): Promise<ISubscriptionPayload> {
|
|
126
|
+
let retVal = null;
|
|
126
127
|
try {
|
|
127
|
-
|
|
128
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
128
129
|
this.#GetSTSCountGenericAgent('agent', '', 'group(columns: ["_field"])'),
|
|
129
130
|
this.#GetSTSQuantileGenericAgent(`agent`, '', 'group(columns: ["_field"])'),
|
|
130
131
|
this.#GetSTSHistoGenericService('agent', '', 'group(columns: ["_field"])')],
|
|
131
132
|
[ ])
|
|
132
|
-
|
|
133
|
-
return { SubscriptionType: "ID_Agent_Root", data: combinedResults };
|
|
134
133
|
} catch (error) {
|
|
135
134
|
console.error(`${_logPrefix}GetInfluxDBResultsRootAgent: Error: [${error}]`.red);
|
|
136
135
|
}
|
|
136
|
+
return { topic: SubscriptionTopic.AllAgentsCombined, data: retVal };
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
// Service level metrics
|
|
140
|
-
async GetInfluxDBResultsAgent() {
|
|
140
|
+
async GetInfluxDBResultsAgent(): Promise<ISubscriptionPayload> {
|
|
141
|
+
let retVal = null;
|
|
141
142
|
try {
|
|
142
|
-
|
|
143
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
143
144
|
this.#GetSTSCountGenericAgent('agent', '', 'group(columns: ["agentName", "_field"])'),
|
|
144
145
|
this.#GetSTSQuantileGenericAgent(`agent`, '', 'group(columns: ["agentName", "_field"])'),
|
|
145
146
|
this.#GetSTSHistoGenericService('agent', '', 'group(columns: ["agentName", "_field"])')],
|
|
146
147
|
['agentName'])
|
|
147
|
-
|
|
148
|
-
return { SubscriptionType: "ID_Agent_Agents", data: combinedResults};
|
|
149
148
|
} catch (error) {
|
|
150
149
|
console.error(`${_logPrefix}GetInfluxDBResultsAgent: Error: [${error}]`.red);
|
|
151
150
|
}
|
|
151
|
+
return { topic: SubscriptionTopic.Agents, data: retVal };
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
// Service instance metrics for a particular service type
|
|
155
|
-
async GetInfluxDBResultsAgentThreads(agentName: string) {
|
|
155
|
+
async GetInfluxDBResultsAgentThreads(agentName: string): Promise<ISubscriptionPayload> {
|
|
156
|
+
let retVal = null;
|
|
156
157
|
try {
|
|
157
|
-
|
|
158
|
-
const combinedResults = await this.ProcessInfluxDBResults([
|
|
158
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
159
159
|
this.#GetSTSCountGenericAgent('agent', `and r["agentName"] == "${agentName}"`, `group(columns: ["agentName", "threadId", "_field"])`),
|
|
160
160
|
this.#GetSTSQuantileGenericAgent(`agent`, `and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])'),
|
|
161
161
|
this.#GetSTSHistoGenericService('agent', `and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])')],
|
|
162
162
|
['agentName', 'threadId'])
|
|
163
|
-
|
|
164
|
-
return { SubscriptionType: `ID_Agent_Agent_Threads_${agentName}`, data: combinedResults};
|
|
165
163
|
} catch (error) {
|
|
166
164
|
console.error(`${_logPrefix}GetInfluxDBResultsAgentThreads: Error: [${error}]`.red);
|
|
167
165
|
}
|
|
166
|
+
return { topic: SubscriptionTopic.AgentWorkers, key: agentName, data: retVal };
|
|
168
167
|
}
|
|
169
168
|
|
|
170
169
|
// Service instance thread metrics for a particular service instance
|
|
171
|
-
async GetInfluxDBResultsAgentThread(agentName: string, threadId: string) {
|
|
170
|
+
async GetInfluxDBResultsAgentThread(agentName: string, threadId: string): Promise<ISubscriptionPayload> {
|
|
171
|
+
let retVal = null;
|
|
172
172
|
try {
|
|
173
|
-
|
|
173
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
174
174
|
this.#GetSTSCountGenericAgent('agent', `and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, `group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])`),
|
|
175
175
|
this.#GetSTSQuantileGenericAgent(`agent`, `and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])'),
|
|
176
176
|
this.#GetSTSHistoGenericService('agent', `and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])')],
|
|
177
177
|
['agentName', 'threadId', 'asyncRunnerId'])
|
|
178
|
-
|
|
179
|
-
return { SubscriptionType: `ID_Agent_Agent_Thread_${agentName}_${threadId}`, data: combinedResults};
|
|
180
178
|
} catch (error) {
|
|
181
179
|
console.error(`${_logPrefix}GetInfluxDBResultsAgentThread: Error: [${error}]`.red);
|
|
182
180
|
}
|
|
181
|
+
return { topic: SubscriptionTopic.AgentWorker, key: agentName, subkey: threadId, data: retVal };
|
|
183
182
|
}
|
|
184
183
|
|
|
185
184
|
// Agent context payload
|
|
@@ -5,7 +5,7 @@ import { Gauge, InstrumentVelocity } from '@nsshunt/stsinstrumentation'
|
|
|
5
5
|
|
|
6
6
|
import { InfluxDBManagerBase } from './influxDBManagerBase'
|
|
7
7
|
|
|
8
|
-
import { IInfluxDBManagerOptions, InstrumentPayload } from './../commonTypes'
|
|
8
|
+
import { IInfluxDBManagerOptions, InstrumentPayload, ISubscriptionPayload, SubscriptionTopic } from './../commonTypes'
|
|
9
9
|
|
|
10
10
|
const _logPrefix = 'InfluxDBManagerService:'
|
|
11
11
|
|
|
@@ -137,63 +137,63 @@ export class InfluxDBManagerService extends InfluxDBManagerBase
|
|
|
137
137
|
|
|
138
138
|
// Metric queries -------------------------------------------------------------------------------------------------
|
|
139
139
|
// Root level metrics
|
|
140
|
-
async GetInfluxDBResultsRootService() {
|
|
140
|
+
async GetInfluxDBResultsRootService(): Promise<ISubscriptionPayload> {
|
|
141
|
+
let retVal = null;
|
|
141
142
|
try {
|
|
142
|
-
|
|
143
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
143
144
|
this.#GetSTSCountGenericService('', 'group(columns: ["_field"])'),
|
|
144
145
|
this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["_field"])'),
|
|
145
146
|
this.#GetSTSHistoGenericService('service', '', 'group(columns: ["_field"])')],
|
|
146
147
|
[ ])
|
|
147
|
-
|
|
148
|
-
return { SubscriptionType: "ID_", data: combinedResults };
|
|
149
148
|
} catch (error) {
|
|
150
149
|
console.error(`${_logPrefix}GetInfluxDBResultsRoot: Error: [${error}]`.red);
|
|
151
150
|
}
|
|
151
|
+
return { topic: SubscriptionTopic.AllServicesCombined, data: retVal };
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
// Service level metrics
|
|
155
|
-
async GetInfluxDBResultsService() {
|
|
155
|
+
async GetInfluxDBResultsService(): Promise<ISubscriptionPayload> {
|
|
156
|
+
let retVal = null;
|
|
156
157
|
try {
|
|
157
|
-
|
|
158
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
158
159
|
this.#GetSTSCountGenericService('', 'group(columns: ["serviceId", "_field"])'),
|
|
159
160
|
this.#GetSTSQuantileGenericService(`service`, '', 'group(columns: ["serviceId", "_field"])'),
|
|
160
161
|
this.#GetSTSHistoGenericService('service', '', 'group(columns: ["serviceId", "_field"])')],
|
|
161
162
|
['serviceId'])
|
|
162
|
-
|
|
163
|
-
return { SubscriptionType: "ID_Service", data: combinedResults};
|
|
164
163
|
} catch (error) {
|
|
165
164
|
console.error(`${_logPrefix}GetInfluxDBResultsService: Error: [${error}]`.red);
|
|
166
165
|
}
|
|
166
|
+
return { topic: SubscriptionTopic.Services, data: retVal };
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
// Service instance metrics for a particular service type
|
|
170
|
-
async GetInfluxDBResultsServiceInstances(serviceId: string) {
|
|
170
|
+
async GetInfluxDBResultsServiceInstances(serviceId: string): Promise<ISubscriptionPayload> {
|
|
171
|
+
let retVal = null;
|
|
171
172
|
try {
|
|
172
|
-
|
|
173
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
173
174
|
this.#GetSTSCountGenericService(`and r["serviceId"] == "${serviceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "_field"])`),
|
|
174
175
|
this.#GetSTSQuantileGenericService(`service`, `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])'),
|
|
175
176
|
this.#GetSTSHistoGenericService('service', `and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])')],
|
|
176
177
|
['serviceId', 'serviceInstanceId'])
|
|
177
|
-
|
|
178
|
-
return { SubscriptionType: `ID_ServiceInstances_${serviceId}`, data: combinedResults};
|
|
179
178
|
} catch (error) {
|
|
180
179
|
console.error(`${_logPrefix}GetInfluxDBResultsServiceInstances: Error: [${error}]`.red);
|
|
181
180
|
}
|
|
181
|
+
return { topic: SubscriptionTopic.ServiceInstances, key: serviceId, data: retVal };
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
// Service instance thread metrics for a particular service instance
|
|
185
|
-
async GetInfluxDBResultsServiceInstance(serviceInstanceId: string) {
|
|
185
|
+
async GetInfluxDBResultsServiceInstance(serviceInstanceId: string): Promise<ISubscriptionPayload> {
|
|
186
|
+
let retVal = null;
|
|
186
187
|
try {
|
|
187
|
-
|
|
188
|
+
retVal = await this.ProcessInfluxDBResults([
|
|
188
189
|
this.#GetSTSCountGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])`),
|
|
189
190
|
this.#GetSTSQuantileGenericService(`service`, `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])'),
|
|
190
191
|
this.#GetSTSHistoGenericService('service', `and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])')],
|
|
191
192
|
['serviceId', 'serviceInstanceId', 'serviceInstanceProcessId'])
|
|
192
|
-
|
|
193
|
-
return { SubscriptionType: `ID_ServiceInstance_${serviceInstanceId}`, data: combinedResults};
|
|
194
193
|
} catch (error) {
|
|
195
194
|
console.error(`${_logPrefix}GetInfluxDBResultsServiceInstance: Error: [${error}]`.red);
|
|
196
195
|
}
|
|
196
|
+
return { topic: SubscriptionTopic.ServiceInstance, key: serviceInstanceId, data: retVal };
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
// Write data points ----------------------------------------------------------------------------------------------
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { ISubscriptions, ISubscription, ISubscriptionPayload, SubscriptionTopic } from './commonTypes'
|
|
2
|
+
import { KafkaManager, IKafkaManagerConfig } from './kafka/kafkamanager'
|
|
3
|
+
import { InfluxDBManager } from './influxdb/influxDBManager'
|
|
4
|
+
|
|
5
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
+
|
|
7
|
+
import { $Options } from '@nsshunt/stsconfig'
|
|
8
|
+
import { STSOptionsBase } from '@nsshunt/stsutils';
|
|
9
|
+
const goptions = $Options()
|
|
10
|
+
|
|
11
|
+
export interface IInstrumentationSubscriberOptions {
|
|
12
|
+
SubscriptionInterval: number
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export class InstrumentationSubscriber extends STSOptionsBase {
|
|
16
|
+
#subscriptions: Record<string, ISubscription> = { };
|
|
17
|
+
#influxDBManager: InfluxDBManager;
|
|
18
|
+
#interval: NodeJS.Timer | null = null;
|
|
19
|
+
#km: KafkaManager;
|
|
20
|
+
#KAFKA_PREFIX: string = '__STS__';
|
|
21
|
+
|
|
22
|
+
constructor(options: IInstrumentationSubscriberOptions) {
|
|
23
|
+
super(options);
|
|
24
|
+
|
|
25
|
+
this.#influxDBManager = new InfluxDBManager();
|
|
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
|
+
this.#km = new KafkaManager(kmc);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async #UnSubscribeKafka(subscription: ISubscription): Promise<void> {
|
|
49
|
+
const unsubscribeKafka = async () => {
|
|
50
|
+
const kafka = subscription.kafka;
|
|
51
|
+
if (kafka) {
|
|
52
|
+
// Un-Subscribe from this kafka topic
|
|
53
|
+
console.log(`InstrumentationSubscriber:#UnSubscribeKafka(): Unsubscribe from Kafka topc: [${kafka.kafkaTopic}] Starting`.yellow)
|
|
54
|
+
await kafka.kafkaConsumer?.Stop();
|
|
55
|
+
await kafka.kafkaConsumer?.Disconnect();
|
|
56
|
+
console.log(`InstrumentationSubscriber:#UnSubscribeKafka(): Unsubscribe from Kafka topc: [${kafka.kafkaTopic}] Completed.`.yellow)
|
|
57
|
+
} else {
|
|
58
|
+
console.log(`InstrumentationSubscriber:#UnSubscribeKafka(): Kafka details do not eixsting for this topc: [${subscription.topic}].`.magenta)
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return unsubscribeKafka();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async #SubscribeKafka(subscription: ISubscription): Promise<void> {
|
|
65
|
+
const kafkaSubscribe = async () => {
|
|
66
|
+
if (subscription.key) {
|
|
67
|
+
const kafkaSafeKey = `${this.#KAFKA_PREFIX}_${subscription.key}`.replace(/@/g, '_');
|
|
68
|
+
const kafkaGroupId = uuidv4();
|
|
69
|
+
subscription.kafka = {
|
|
70
|
+
kafkaTopic: kafkaSafeKey,
|
|
71
|
+
kafkaGroupId: kafkaGroupId,
|
|
72
|
+
kafkaConsumer: this.#km.CreateConsumer(kafkaGroupId)
|
|
73
|
+
};
|
|
74
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Subscribe to Kafka topc: [${subscription.kafka.kafkaTopic}] Starting`.yellow)
|
|
75
|
+
|
|
76
|
+
const kafka = subscription.kafka;
|
|
77
|
+
await kafka.kafkaConsumer.Connect();
|
|
78
|
+
await kafka.kafkaConsumer.Subscribe([kafka.kafkaTopic], false );
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
80
|
+
await kafka.kafkaConsumer.StartConsumingMessages((topic, key, partition, value, headers) => {
|
|
81
|
+
try {
|
|
82
|
+
if (key != "" && value != "") {
|
|
83
|
+
if (topic.localeCompare(key) === 0) {
|
|
84
|
+
subscription.cb({
|
|
85
|
+
topic: SubscriptionTopic.LogProcessing,
|
|
86
|
+
key: subscription.key, // Original requested topic (may be kafka un-safe)
|
|
87
|
+
data: {
|
|
88
|
+
kafkaTopic: kafka.kafkaTopic, // Safe kafka topic key with prefix. kafkaTopic, topic and key should be same value
|
|
89
|
+
kafkaGroupId: kafka.kafkaGroupId,
|
|
90
|
+
partition,
|
|
91
|
+
topic, // kafkaTopic, topic and key should be same value
|
|
92
|
+
key, // kafkaTopic, topic and key should be same value
|
|
93
|
+
value
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
} else {
|
|
97
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Invalid message format from Kafka data, topic: [${topic}] and key: [${key}] do not match`.red);
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Invalid message format from Kafka data, topic: [${topic}], key: [${key}], value: [${value}]`.red);
|
|
101
|
+
}
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Error: [${error}]`.red);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Subscribe to Kafka topc: [${kafka.kafkaTopic}] Completed`.yellow)
|
|
107
|
+
} else {
|
|
108
|
+
console.log(`InstrumentationSubscriber:#SubscribeKafka(): Could not subscribe to Kafka topc, missing key for topic: [${subscription.topic}]`.magenta);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return kafkaSubscribe();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
async #OutputSubscription(subscription: ISubscription): Promise<ISubscriptionPayload> {
|
|
115
|
+
// Service subscriptions
|
|
116
|
+
const { topic, key, subkey } = subscription;
|
|
117
|
+
switch (topic) {
|
|
118
|
+
// Services -------------------------------------------------------------------------------------------
|
|
119
|
+
case SubscriptionTopic.AllServicesCombined :
|
|
120
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsRootService();
|
|
121
|
+
case SubscriptionTopic.Services :
|
|
122
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsService();
|
|
123
|
+
case SubscriptionTopic.ServiceInstances :
|
|
124
|
+
if (key) { // key = service_id
|
|
125
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsServiceInstances(key);
|
|
126
|
+
} else {
|
|
127
|
+
throw new Error(`#OutputSubscription: key not provided for subscription: [${topic}]`);
|
|
128
|
+
}
|
|
129
|
+
case SubscriptionTopic.ServiceInstance :
|
|
130
|
+
if (key) { // key = service instance id
|
|
131
|
+
return this.#influxDBManager.serviceManager.GetInfluxDBResultsServiceInstance(key);
|
|
132
|
+
} else {
|
|
133
|
+
throw new Error(`#OutputSubscription: key not provided for subscription: [${topic}]`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// User Agents -------------------------------------------------------------------------------------------
|
|
137
|
+
case SubscriptionTopic.AllAgentsCombined :
|
|
138
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsRootAgent();
|
|
139
|
+
case SubscriptionTopic.Agents :
|
|
140
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsAgent();
|
|
141
|
+
case SubscriptionTopic.AgentWorkers :
|
|
142
|
+
if (key) { // key = agent instance id
|
|
143
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsAgentThreads(key);
|
|
144
|
+
} else {
|
|
145
|
+
throw new Error(`#OutputSubscription: key not provided for subscription: [${topic}]`);
|
|
146
|
+
}
|
|
147
|
+
case SubscriptionTopic.AgentWorker :
|
|
148
|
+
if (key && subkey) { // key = agent instance id, subkey = agent instance worker id
|
|
149
|
+
return this.#influxDBManager.agentManager.GetInfluxDBResultsAgentThread(key, subkey);
|
|
150
|
+
} else {
|
|
151
|
+
throw new Error(`#OutputSubscription: key and/or subkey not provided for subscription: [${topic}]`);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Logging (both service and agent) -----------------------------------------------------------------------
|
|
155
|
+
case SubscriptionTopic.LogProcessing :
|
|
156
|
+
// Kafka processing will be handled by a dedicated kafka run consumer
|
|
157
|
+
return { topic, data: null };
|
|
158
|
+
default :
|
|
159
|
+
return { topic, data: null };
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
#ExecuteSubscriptions = async () => {
|
|
164
|
+
const promArray: Promise<ISubscriptionPayload>[] = [ ];
|
|
165
|
+
const indexArray: ISubscriptions = [ ];
|
|
166
|
+
|
|
167
|
+
for (const [, subscription] of Object.entries(this.#subscriptions)) {
|
|
168
|
+
promArray.push(this.#OutputSubscription(subscription));
|
|
169
|
+
indexArray.push(subscription);
|
|
170
|
+
}
|
|
171
|
+
const retVal = await Promise.all(promArray);
|
|
172
|
+
try {
|
|
173
|
+
for (let i=0; i < retVal.length; i++) {
|
|
174
|
+
indexArray[i].cb(retVal[i]);
|
|
175
|
+
}
|
|
176
|
+
} catch (error) {
|
|
177
|
+
console.log(`${error} -- ${JSON.stringify(retVal)}`.red);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
Subscribe(subscriptions: ISubscriptions) {
|
|
182
|
+
if (this.#interval) {
|
|
183
|
+
clearInterval(this.#interval);
|
|
184
|
+
}
|
|
185
|
+
for (let i=0; i < subscriptions.length; i++) {
|
|
186
|
+
if (this.#subscriptions[subscriptions[i].topic]) {
|
|
187
|
+
// Subscription already exists - ignoring
|
|
188
|
+
console.log(`InstrumentationSubscriber.Subscribe(): Subscription already exists - ignoring.`.magenta);
|
|
189
|
+
} else {
|
|
190
|
+
this.#subscriptions[subscriptions[i].topic] = subscriptions[i];
|
|
191
|
+
console.log(`InstrumentationSubscriber.Subscribe(): topicKey: [${subscriptions[i].topic}] successfully subscribed.`.grey);
|
|
192
|
+
if (subscriptions[i].topic.localeCompare(SubscriptionTopic.LogProcessing) === 0) {
|
|
193
|
+
this.#SubscribeKafka(subscriptions[i]);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (!this.#interval) {
|
|
199
|
+
// Output subscription immediately and then iterate ...
|
|
200
|
+
this.#ExecuteSubscriptions();
|
|
201
|
+
let interval = 1000; // default
|
|
202
|
+
if (this.options) {
|
|
203
|
+
interval = this.options.SubscriptionInterval
|
|
204
|
+
}
|
|
205
|
+
this.#interval = setInterval(() => {
|
|
206
|
+
this.#ExecuteSubscriptions();
|
|
207
|
+
}, interval);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
UnSubscribe(subscriptions: ISubscriptions) {
|
|
212
|
+
for (let i=0; i < subscriptions.length; i++) {
|
|
213
|
+
if (subscriptions[i].topic.localeCompare(SubscriptionTopic.LogProcessing) === 0) {
|
|
214
|
+
this.#UnSubscribeKafka(subscriptions[i]);
|
|
215
|
+
}
|
|
216
|
+
delete this.#subscriptions[subscriptions[i].topic];
|
|
217
|
+
}
|
|
218
|
+
if (Object.keys(this.#subscriptions).length === 0) {
|
|
219
|
+
if (this.#interval) {
|
|
220
|
+
clearInterval(this.#interval);
|
|
221
|
+
this.#interval = null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
#UnSubscribeAll() {
|
|
227
|
+
if (this.#interval) {
|
|
228
|
+
clearInterval(this.#interval);
|
|
229
|
+
this.#interval = null;
|
|
230
|
+
}
|
|
231
|
+
for (const [, subscription] of Object.entries(this.#subscriptions)) {
|
|
232
|
+
if (subscription.topic.localeCompare(SubscriptionTopic.LogProcessing) === 0) {
|
|
233
|
+
this.#UnSubscribeKafka(subscription);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
this.#subscriptions = { };
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
async Start() {
|
|
241
|
+
return this.#influxDBManager.Start();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
async Stop() {
|
|
245
|
+
this.#UnSubscribeAll();
|
|
246
|
+
return this.#influxDBManager.Terminate();
|
|
247
|
+
}
|
|
248
|
+
}
|
package/types/commonTypes.d.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
|
export declare enum IPCMessageCommand {
|
|
10
11
|
AddWorker = "AddWorker",
|
|
11
12
|
DeleteWorker = "DeleteWorker"
|
|
@@ -162,4 +163,43 @@ export interface InstrumentPayload {
|
|
|
162
163
|
context: ServiceProcessContext;
|
|
163
164
|
instruments: Record<string, InstrumentBase>;
|
|
164
165
|
}
|
|
166
|
+
export declare enum SubscriptionTopic {
|
|
167
|
+
AllServicesCombined = "AllServicesCombined",
|
|
168
|
+
Services = "Services",
|
|
169
|
+
ServiceInstances = "ServiceInstances",
|
|
170
|
+
ServiceInstance = "ServiceInstance",
|
|
171
|
+
AllAgentsCombined = "AllAgentsCombined",
|
|
172
|
+
Agents = "Agents",
|
|
173
|
+
AgentWorkers = "AgentWorkers",
|
|
174
|
+
AgentWorker = "AgentWorker",
|
|
175
|
+
LogProcessing = "LogProcessing"
|
|
176
|
+
}
|
|
177
|
+
export interface IKafkaConsumer {
|
|
178
|
+
get consumer(): Consumer;
|
|
179
|
+
get id(): string;
|
|
180
|
+
Connect(): Promise<void>;
|
|
181
|
+
Disconnect(): Promise<void>;
|
|
182
|
+
Subscribe: (topics: string[], fromBeginning: boolean) => Promise<void>;
|
|
183
|
+
Stop: () => Promise<void>;
|
|
184
|
+
StartConsumingMessages: (cb: (topic: string, key: string, partition: number, value: string, headers: IHeaders | undefined) => void) => Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
export interface ISubscriptionPayload {
|
|
187
|
+
topic: SubscriptionTopic;
|
|
188
|
+
key?: string;
|
|
189
|
+
subkey?: string;
|
|
190
|
+
data: any;
|
|
191
|
+
}
|
|
192
|
+
export interface IKafkaSubscription {
|
|
193
|
+
kafkaTopic: string;
|
|
194
|
+
kafkaGroupId: string;
|
|
195
|
+
kafkaConsumer: IKafkaConsumer;
|
|
196
|
+
}
|
|
197
|
+
export interface ISubscription {
|
|
198
|
+
topic: SubscriptionTopic;
|
|
199
|
+
key?: string;
|
|
200
|
+
subkey?: string;
|
|
201
|
+
kafka?: IKafkaSubscription;
|
|
202
|
+
cb: (payload: ISubscriptionPayload) => void;
|
|
203
|
+
}
|
|
204
|
+
export type ISubscriptions = ISubscription[];
|
|
165
205
|
//# sourceMappingURL=commonTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
import { WriteApi, QueryApi } from '@influxdata/influxdb-client';
|
|
2
2
|
import { InfluxDBManagerBase } from './influxDBManagerBase';
|
|
3
|
-
import { IInfluxDBManagerOptions, InstrumentPayload } from './../commonTypes';
|
|
3
|
+
import { IInfluxDBManagerOptions, InstrumentPayload, ISubscriptionPayload } from './../commonTypes';
|
|
4
4
|
export declare class InfluxDBManagerAgent extends InfluxDBManagerBase {
|
|
5
5
|
#private;
|
|
6
6
|
constructor(options: IInfluxDBManagerOptions, queryApi: QueryApi, writeClient: WriteApi);
|
|
7
7
|
get modelType(): string;
|
|
8
|
-
GetInfluxDBResultsRootAgent(): Promise<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
GetInfluxDBResultsAgent(): Promise<{
|
|
13
|
-
SubscriptionType: string;
|
|
14
|
-
data: any;
|
|
15
|
-
} | undefined>;
|
|
16
|
-
GetInfluxDBResultsAgentThreads(agentName: string): Promise<{
|
|
17
|
-
SubscriptionType: string;
|
|
18
|
-
data: any;
|
|
19
|
-
} | undefined>;
|
|
20
|
-
GetInfluxDBResultsAgentThread(agentName: string, threadId: string): Promise<{
|
|
21
|
-
SubscriptionType: string;
|
|
22
|
-
data: any;
|
|
23
|
-
} | undefined>;
|
|
8
|
+
GetInfluxDBResultsRootAgent(): Promise<ISubscriptionPayload>;
|
|
9
|
+
GetInfluxDBResultsAgent(): Promise<ISubscriptionPayload>;
|
|
10
|
+
GetInfluxDBResultsAgentThreads(agentName: string): Promise<ISubscriptionPayload>;
|
|
11
|
+
GetInfluxDBResultsAgentThread(agentName: string, threadId: string): Promise<ISubscriptionPayload>;
|
|
24
12
|
OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean>;
|
|
25
13
|
}
|
|
26
14
|
//# sourceMappingURL=influxDBManagerAgent.d.ts.map
|
|
@@ -1 +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;AAIvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
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;AAIvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAAqB,MAAM,kBAAkB,CAAA;AAItH,qBAAa,oBAAqB,SAAQ,mBAAmB;;gBAE7C,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAIvF,IAAa,SAAS,IAAI,MAAM,CAE/B;IAyGK,2BAA2B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe5D,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAexD,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAehF,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiBjG,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsC/E"}
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
import { WriteApi, QueryApi } from '@influxdata/influxdb-client';
|
|
2
2
|
import { InfluxDBManagerBase } from './influxDBManagerBase';
|
|
3
|
-
import { IInfluxDBManagerOptions, InstrumentPayload } from './../commonTypes';
|
|
3
|
+
import { IInfluxDBManagerOptions, InstrumentPayload, ISubscriptionPayload } from './../commonTypes';
|
|
4
4
|
export declare class InfluxDBManagerService extends InfluxDBManagerBase {
|
|
5
5
|
#private;
|
|
6
6
|
constructor(options: IInfluxDBManagerOptions, queryApi: QueryApi, writeClient: WriteApi);
|
|
7
7
|
get modelType(): string;
|
|
8
|
-
GetInfluxDBResultsRootService(): Promise<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
GetInfluxDBResultsService(): Promise<{
|
|
13
|
-
SubscriptionType: string;
|
|
14
|
-
data: any;
|
|
15
|
-
} | undefined>;
|
|
16
|
-
GetInfluxDBResultsServiceInstances(serviceId: string): Promise<{
|
|
17
|
-
SubscriptionType: string;
|
|
18
|
-
data: any;
|
|
19
|
-
} | undefined>;
|
|
20
|
-
GetInfluxDBResultsServiceInstance(serviceInstanceId: string): Promise<{
|
|
21
|
-
SubscriptionType: string;
|
|
22
|
-
data: any;
|
|
23
|
-
} | undefined>;
|
|
8
|
+
GetInfluxDBResultsRootService(): Promise<ISubscriptionPayload>;
|
|
9
|
+
GetInfluxDBResultsService(): Promise<ISubscriptionPayload>;
|
|
10
|
+
GetInfluxDBResultsServiceInstances(serviceId: string): Promise<ISubscriptionPayload>;
|
|
11
|
+
GetInfluxDBResultsServiceInstance(serviceInstanceId: string): Promise<ISubscriptionPayload>;
|
|
24
12
|
OutputInfluxDB(instrumentPayload: InstrumentPayload): Promise<boolean>;
|
|
25
13
|
}
|
|
26
14
|
//# sourceMappingURL=influxDBManagerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerService.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAIvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"influxDBManagerService.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAIvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAAqB,MAAM,kBAAkB,CAAA;AAItH,qBAAa,sBAAuB,SAAQ,mBAAmB;;gBAE/C,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAIvF,IAAa,SAAS,IAAI,MAAM,CAE/B;IAwHK,6BAA6B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe9D,yBAAyB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe1D,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAepF,iCAAiC,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiB3F,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsD/E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ISubscriptions } from './commonTypes';
|
|
2
|
+
import { STSOptionsBase } from '@nsshunt/stsutils';
|
|
3
|
+
export interface IInstrumentationSubscriberOptions {
|
|
4
|
+
SubscriptionInterval: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class InstrumentationSubscriber extends STSOptionsBase {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(options: IInstrumentationSubscriberOptions);
|
|
9
|
+
Subscribe(subscriptions: ISubscriptions): void;
|
|
10
|
+
UnSubscribe(subscriptions: ISubscriptions): void;
|
|
11
|
+
Start(): Promise<void>;
|
|
12
|
+
Stop(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=instrumentationsubscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentationsubscriber.d.ts","sourceRoot":"","sources":["../src/instrumentationsubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0D,MAAM,eAAe,CAAA;AAOtG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,WAAW,iCAAiC;IAC9C,oBAAoB,EAAE,MAAM,CAAA;CAC/B;AAED,qBAAa,yBAA0B,SAAQ,cAAc;;gBAO7C,OAAO,EAAE,iCAAiC;IA+JtD,SAAS,CAAC,aAAa,EAAE,cAAc;IA8BvC,WAAW,CAAC,aAAa,EAAE,cAAc;IA6BnC,KAAK;IAIL,IAAI;CAIb"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Kafka, Consumer, IHeaders } from 'kafkajs';
|
|
2
|
-
|
|
2
|
+
import { IKafkaConsumer } from './../commonTypes';
|
|
3
|
+
export declare class KafkaConsumer implements IKafkaConsumer {
|
|
3
4
|
#private;
|
|
4
5
|
constructor(kafka: Kafka, id: string, groupId: string);
|
|
5
6
|
get consumer(): Consumer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafkaconsumer.d.ts","sourceRoot":"","sources":["../../src/kafka/kafkaconsumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"kafkaconsumer.d.ts","sourceRoot":"","sources":["../../src/kafka/kafkaconsumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,qBAAa,aAAc,YAAW,cAAc;;gBAOpC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAOrD,IAAI,QAAQ,aAEX;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,SAAS,WAAiB,MAAM,EAAE,iBAAiB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAMzE;IAED,IAAI,QAAY,QAAQ,IAAI,CAAC,CAI5B;IAED,sBAAsB,eAAsB,MAAM,OAAO,MAAM,aAAa,MAAM,SAAS,MAAM,WAAW,QAAQ,GAAG,SAAS,KAAK,IAAI,KAAG,QAAQ,IAAI,CAAC,CA2BxJ;CACJ"}
|