@nsshunt/stsappframework 3.3.183 → 3.3.186

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 (61) hide show
  1. package/README.md +300 -319
  2. package/dist/commonTypes.js +11 -11
  3. package/dist/commonTypes.js.map +1 -1
  4. package/dist/logger/stsTransportLoggerSocket.js +6 -0
  5. package/dist/logger/stsTransportLoggerSocket.js.map +1 -1
  6. package/dist/process/appConfig.js +103 -0
  7. package/dist/process/appConfig.js.map +1 -0
  8. package/dist/process/masterprocessbase.js +1 -55
  9. package/dist/process/masterprocessbase.js.map +1 -1
  10. package/dist/process/plugins/plugintypes.js +2 -0
  11. package/dist/process/plugins/plugintypes.js.map +1 -0
  12. package/dist/process/plugins/stsconfigplugin.js +16 -0
  13. package/dist/process/plugins/stsconfigplugin.js.map +1 -0
  14. package/dist/process/plugins/stsloggerplugin.js +26 -0
  15. package/dist/process/plugins/stsloggerplugin.js.map +1 -0
  16. package/dist/process/plugins/stsmetricsplugin.js +89 -0
  17. package/dist/process/plugins/stsmetricsplugin.js.map +1 -0
  18. package/dist/process/plugins/ststestplugin.js +26 -0
  19. package/dist/process/plugins/ststestplugin.js.map +1 -0
  20. package/dist/process/processbase.js +0 -3
  21. package/dist/process/processbase.js.map +1 -1
  22. package/dist/process/server.js +4 -0
  23. package/dist/process/server.js.map +1 -0
  24. package/dist/process/serverprocessbase.js +9 -6
  25. package/dist/process/serverprocessbase.js.map +1 -1
  26. package/dist/process/singleprocessbase.js +1 -14
  27. package/dist/process/singleprocessbase.js.map +1 -1
  28. package/dist/process/stsapp.js +48 -0
  29. package/dist/process/stsapp.js.map +1 -0
  30. package/package.json +13 -13
  31. package/types/commonTypes.d.ts +1 -2
  32. package/types/commonTypes.d.ts.map +1 -1
  33. package/types/logger/stsTransportLoggerSocket.d.ts +1 -0
  34. package/types/logger/stsTransportLoggerSocket.d.ts.map +1 -1
  35. package/types/process/appConfig.d.ts +3 -0
  36. package/types/process/appConfig.d.ts.map +1 -0
  37. package/types/process/masterprocessbase.d.ts +0 -2
  38. package/types/process/masterprocessbase.d.ts.map +1 -1
  39. package/types/process/plugins/plugintypes.d.ts +7 -0
  40. package/types/process/plugins/plugintypes.d.ts.map +1 -0
  41. package/types/process/plugins/stsconfigplugin.d.ts +10 -0
  42. package/types/process/plugins/stsconfigplugin.d.ts.map +1 -0
  43. package/types/process/plugins/stsloggerplugin.d.ts +14 -0
  44. package/types/process/plugins/stsloggerplugin.d.ts.map +1 -0
  45. package/types/process/plugins/stsmetricsplugin.d.ts +19 -0
  46. package/types/process/plugins/stsmetricsplugin.d.ts.map +1 -0
  47. package/types/process/plugins/ststestplugin.d.ts +10 -0
  48. package/types/process/plugins/ststestplugin.d.ts.map +1 -0
  49. package/types/process/processbase.d.ts +0 -2
  50. package/types/process/processbase.d.ts.map +1 -1
  51. package/types/process/server.d.ts +5 -0
  52. package/types/process/server.d.ts.map +1 -0
  53. package/types/process/serverprocessbase.d.ts.map +1 -1
  54. package/types/process/singleprocessbase.d.ts +0 -2
  55. package/types/process/singleprocessbase.d.ts.map +1 -1
  56. package/types/process/stsapp.d.ts +12 -0
  57. package/types/process/stsapp.d.ts.map +1 -0
  58. package/dist/validation/errors.js +0 -7
  59. package/dist/validation/errors.js.map +0 -1
  60. package/types/validation/errors.d.ts +0 -7
  61. package/types/validation/errors.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # stsappframework
2
2
 
3
+ const readonly app = createSTSApp();
4
+
5
+ // Example for the master process
6
+
7
+ ```
8
+ app
9
+ .use(configManager, configManagerOptions)
10
+ .use(clusterManager, clusterManagementOptions)
11
+ .use(metrics, metricsOptions)
12
+ .use(logger, loggerOptions)
13
+ .Start()
14
+ ```
15
+
16
+ // Example for the worker process
17
+
18
+ ```
19
+ app
20
+ .use(configManager, configManagerOptions)
21
+ .use(metrics, metricsOptions)
22
+ .use(logger, loggerOptions)
23
+ .use(server, serverOptions)
24
+ .use(socketIoserver, socketIoserverOptions)
25
+ .use(latencyController, latencyControllerOptions)
26
+ .use(promtheusProvider, promtheusProviderOptions)
27
+ .use(appController01, appController01Options)
28
+ .use(appController02, appController02Options)
29
+ .Start()
30
+ ```
31
+
32
+ // Example for a single process
33
+
34
+ ```
35
+ app
36
+ .use(configManager, configManagerOptions)
37
+ .use(metrics, metricsOptions)
38
+ .use(logger, loggerOptions)
39
+ .use(server, serverOptions)
40
+ .Start()
41
+ ```
42
+
43
+ ```
44
+ export const STSInstrumentControllerPluginKey: InjectionKey<PublishInstrumentController> =
45
+ Symbol("STSInstrumentControllerPlugin");
46
+
47
+ export const STSInstrumentControllerPlugin = {
48
+ install: (app: App, options: IPublishInstrumentControllerOptions): void => {
49
+ app.provide(
50
+ STSInstrumentControllerPluginKey,
51
+ new PublishInstrumentController(options)
52
+ );
53
+ },
54
+ };
55
+ ```
56
+
3
57
  TODO
4
58
 
5
59
  Candidate options for @decorators
@@ -12,46 +66,42 @@ ipc message manager
12
66
  master logger
13
67
  instrumentation
14
68
 
15
-
16
69
  the DI container will hold
17
- database
18
- redis
19
- agent manager
20
- master logger
21
- instrumentation
22
- publish instrument controller
23
- ipc message manager
24
-
70
+ database
71
+ redis
72
+ agent manager
73
+ master logger
74
+ instrumentation
75
+ publish instrument controller
76
+ ipc message manager
25
77
 
26
78
  these (processbase)
27
- #options: ProcessOptions;
28
- #instrumentController: PublishInstrumentController | null = null;
29
- #systemInformationInterval: NodeJS.Timeout | null = null;
30
- //@@#socketIoServerHelper: ISocketIoServerHelper<STSDefaultClientToServerEvents, STSDefaultServerToClientEvents> | null = null;
31
- #accessLayer: IDBAccessLayer | null = null;
32
- #instrumentControllerAgentManager: IAgentManager;
79
+ #options: ProcessOptions;
80
+ #instrumentController: PublishInstrumentController | null = null;
81
+ #systemInformationInterval: NodeJS.Timeout | null = null;
82
+ //@@#socketIoServerHelper: ISocketIoServerHelper<STSDefaultClientToServerEvents, STSDefaultServerToClientEvents> | null = null;
83
+ #accessLayer: IDBAccessLayer | null = null;
84
+ #instrumentControllerAgentManager: IAgentManager;
33
85
 
34
86
  serverprocessbase
35
- #masterProcessExitTime = goptions.masterProcessExitTime;
36
- #io: Server | null = null;
37
- //#redisClient: RedisClientType | Redis | null = null;
38
- #redisClient: Redis | null = null;
39
- #httpServer: any = null;
40
- #expressServer: STSExpressServer | null = null;
41
- #sockets: net.Socket[] = [ ];
42
- #shuttingDown = false;
43
- #CORE_DOMAIN = 'stscore.stsmda.org';
87
+ #masterProcessExitTime = goptions.masterProcessExitTime;
88
+ #io: Server | null = null;
89
+ //#redisClient: RedisClientType | Redis | null = null;
90
+ #redisClient: Redis | null = null;
91
+ #httpServer: any = null;
92
+ #expressServer: STSExpressServer | null = null;
93
+ #sockets: net.Socket[] = [ ];
94
+ #shuttingDown = false;
95
+ #CORE_DOMAIN = 'stscore.stsmda.org';
44
96
 
97
+ 1. Create working RAFT (sRAFT for STS RAFT) for cluster management
45
98
 
46
-
47
- 1. Create working RAFT (sRAFT for STS RAFT) for cluster management
48
-
49
- 2. Create a REDIS STREAM service to request data from all REDIS cluster clients
99
+ 2. Create a REDIS STREAM service to request data from all REDIS cluster clients
50
100
 
51
101
  example use case: stsinstrumentmanager;
52
- get all socket.io namespaces and socket details for all workers across all instances
53
- get all redis listeners for all workers across all instances
54
- get all RAFT details for all workers across all instances
102
+ get all socket.io namespaces and socket details for all workers across all instances
103
+ get all redis listeners for all workers across all instances
104
+ get all RAFT details for all workers across all instances
55
105
 
56
106
  using STSServiceController below
57
107
  1. query STSServiceController for all stsinstrumentmanager worker instances
@@ -64,11 +114,8 @@ serverprocessbase
64
114
  6. if all responses, send responses with OK status
65
115
  7. if timeout, send responses with TIMEOUT status
66
116
 
67
-
68
-
69
-
70
117
  New Service: STSServiceController
71
- Eventually, this will need to use RAFT for a cluster configuration
118
+ Eventually, this will need to use RAFT for a cluster configuration
72
119
 
73
120
  Single instance in cluster mode
74
121
  main thread to hold all STSServiceData
@@ -83,148 +130,101 @@ New Service: STSServiceController
83
130
 
84
131
  services can query the STSServiceController to get service information for all sts services and apps
85
132
 
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
- Influx DB Notes
105
- -----------------------------
133
+ ## Influx DB Notes
106
134
 
107
135
  |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
108
136
 
109
- |> histogramQuantile(quantile: 0.99999)
110
-
137
+ |> histogramQuantile(quantile: 0.99999)
111
138
 
112
139
  option task = {name: "downsample-daily", every: 1d}
113
140
 
114
-
115
141
  option task = {name: "downsample-daily", every: 1d}
116
142
 
117
143
  from(bucket: "my-db/")
118
- |> range(start: -task.every)
119
- |> filter(fn: (r) => r._measurement == "example-measurement")
120
- |> filter(fn: (r) => r._field == "example-field")
121
- |> aggregateWindow(every: 1h, fn: mean)
122
- |> set(key: "_measurement", value: "average-example-measurement")
123
- |> to(org: "example-org", bucket: "my-db/example-rp")
124
-
125
-
126
-
144
+ |> range(start: -task.every)
145
+ |> filter(fn: (r) => r.\_measurement == "example-measurement")
146
+ |> filter(fn: (r) => r.\_field == "example-field")
147
+ |> aggregateWindow(every: 1h, fn: mean)
148
+ |> set(key: "\_measurement", value: "average-example-measurement")
149
+ |> to(org: "example-org", bucket: "my-db/example-rp")
127
150
 
128
151
  |> set(key: "_measurement", value: "sts01")
129
152
  |> to(org: "my-org", bucket: "TestBucket01")
130
153
 
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
- from(bucket: "TestBucket01")
141
- |> range(start: -5s)
142
- |> last()
143
- |> filter(fn: (r) => r["_measurement"] == "service")
144
- |> filter(fn: (r) => r["_field"] != "memory")
145
- |> group(columns: ["_field"])
146
- |> sum()
147
- |> map(
148
- fn: (r) => ({r with _time: now(), _measurement: "sts01"}),
149
- )
150
- |> to(org: "my-org", bucket: "TestBucket01")
151
-
152
-
153
-
154
+ from(bucket: "TestBucket01")
155
+ |> range(start: -5s)
156
+ |> last()
157
+ |> filter(fn: (r) => r["_measurement"] == "service")
158
+ |> filter(fn: (r) => r["_field"] != "memory")
159
+ |> group(columns: ["_field"])
160
+ |> sum()
161
+ |> map(
162
+ fn: (r) => ({r with \_time: now(), \_measurement: "sts01"}),
163
+ )
164
+ |> to(org: "my-org", bucket: "TestBucket01")
154
165
 
155
166
  group(columns: ["serviceId", "serviceInstanceId", "_field"])
156
167
 
157
-
158
168
  option task = {name: "task-sts-stats-sum", every: 1s}
159
169
  from(bucket: "TestBucket01")
160
- |> range(start: -5s)
161
- |> last()
162
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
163
- |> group(columns: ["_field"])
164
- |> sum()
165
- |> toFloat()
166
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum"}))
167
- |> to(org: "my-org", bucket: "TestBucket01")
170
+ |> range(start: -5s)
171
+ |> last()
172
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
173
+ |> group(columns: ["_field"])
174
+ |> sum()
175
+ |> toFloat()
176
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum"}))
177
+ |> to(org: "my-org", bucket: "TestBucket01")
168
178
 
169
179
  option task = {name: "task-sts-stats-sum-byservice", every: 1s}
170
180
  from(bucket: "TestBucket01")
171
- |> range(start: -5s)
172
- |> last()
173
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
174
- |> group(columns: ["serviceId", "_field"])
175
- |> sum()
176
- |> toFloat()
177
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum-byservice"}))
178
- |> to(org: "my-org", bucket: "TestBucket01")
181
+ |> range(start: -5s)
182
+ |> last()
183
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
184
+ |> group(columns: ["serviceId", "_field"])
185
+ |> sum()
186
+ |> toFloat()
187
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum-byservice"}))
188
+ |> to(org: "my-org", bucket: "TestBucket01")
179
189
 
180
190
  option task = {name: "task-sts-stats-sum-byserviceinstance", every: 1s}
181
191
  from(bucket: "TestBucket01")
182
- |> range(start: -5s)
183
- |> last()
184
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
185
- |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
186
- |> sum()
187
- |> toFloat()
188
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum-byserviceinstance"}))
189
- |> to(org: "my-org", bucket: "TestBucket01")
190
-
191
-
192
-
193
-
194
-
192
+ |> range(start: -5s)
193
+ |> last()
194
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
195
+ |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
196
+ |> sum()
197
+ |> toFloat()
198
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum-byserviceinstance"}))
199
+ |> to(org: "my-org", bucket: "TestBucket01")
195
200
 
196
201
  import "math"
197
- from(bucket: "TestBucket01")
198
- |> range(start: -10m)
199
- |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum-byservice" and r["serviceId"] == "STSBroker@1.0.0" and r["_field"] == "cpu")
200
- |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 250.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
201
- |> difference()
202
-
203
-
202
+ from(bucket: "TestBucket01")
203
+ |> range(start: -10m)
204
+ |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum-byservice" and r["serviceId"] == "STSBroker@1.0.0" and r["_field"] == "cpu")
205
+ |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 250.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
206
+ |> difference()
204
207
 
205
208
  import "math"
206
- from(bucket: "TestBucket01")
207
- |> range(start: -10m)
208
- |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum" and r["_field"] == "cpu")
209
- |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 250.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
210
- |> difference()
211
-
212
-
209
+ from(bucket: "TestBucket01")
210
+ |> range(start: -10m)
211
+ |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum" and r["_field"] == "cpu")
212
+ |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 250.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
213
+ |> difference()
213
214
 
215
+ /_ More accurate _/
214
216
 
215
- /* More accurate */
217
+ data = from(bucket: "TestBucket01")
218
+ |> range(start: -10m)
219
+ |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum-byservice" and r["serviceId"] == "STSBroker@1.0.0" and r["_field"] == "cpu")
220
+ |> aggregateWindow(every: 5s, fn: max, createEmpty: false)
216
221
 
217
- data = from(bucket: "TestBucket01")
218
- |> range(start: -10m)
219
- |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum-byservice" and r["serviceId"] == "STSBroker@1.0.0" and r["_field"] == "cpu")
220
- |> aggregateWindow(every: 5s, fn: max, createEmpty: false)
221
-
222
222
  dostsquantileex = (q) =>
223
223
  data
224
224
  |> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
225
225
  |> set(key: "quantile", value: string(v:q))
226
226
  |> group(columns: ["quantile"])
227
-
227
+
228
228
  union(tables: [
229
229
  dostsquantileex(q: 0.5),
230
230
  dostsquantileex(q: 0.8),
@@ -233,15 +233,13 @@ data = from(bucket: "TestBucket01")
233
233
  dostsquantileex(q: 0.99)
234
234
  ])
235
235
 
236
-
237
- /* Less accurate */
236
+ /_ Less accurate _/
238
237
 
239
238
  import "math"
240
- data = from(bucket: "TestBucket01")
241
- |> range(start: -10m)
242
- |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum-byservice" and r["serviceId"] == "STSBroker@1.0.0" and r["_field"] == "cpu")
243
- |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 250.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
244
-
239
+ data = from(bucket: "TestBucket01")
240
+ |> range(start: -10m)
241
+ |> filter(fn: (r) => r["_measurement"] == "sts-stats-sum-byservice" and r["serviceId"] == "STSBroker@1.0.0" and r["_field"] == "cpu")
242
+ |> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 250.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
245
243
 
246
244
  dostsquantileex = (q) =>
247
245
  data
@@ -250,238 +248,221 @@ data = from(bucket: "TestBucket01")
250
248
  |> group(columns: ["quantile"])
251
249
 
252
250
  union(tables: [
253
- dostsquantileex(q: 0.5),
254
- dostsquantileex(q: 0.8),
255
- dostsquantileex(q: 0.9),
256
- dostsquantileex(q: 0.95),
257
- dostsquantileex(q: 0.99)
251
+ dostsquantileex(q: 0.5),
252
+ dostsquantileex(q: 0.8),
253
+ dostsquantileex(q: 0.9),
254
+ dostsquantileex(q: 0.95),
255
+ dostsquantileex(q: 0.99)
258
256
  ])
259
257
 
260
-
261
-
262
-
263
-
264
-
265
- activeRequestCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
266
- 1 sts-stats-sum authenticationCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
267
- 2 sts-stats-sum connectionCount 40 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
268
- 3 sts-stats-sum connectionIdleCount 12 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
269
- 4 sts-stats-sum connectionPoolCount 12 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
270
- 5 sts-stats-sum connectionWaitingCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
271
- 6 sts-stats-sum coreCount
272
-
273
-
274
- cpu 50.91 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
275
- 8 sts-stats-sum duration 3.6900000000000004 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
276
- 9 sts-stats-sum errorCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
277
- 10 sts-stats-sum latency 22.82 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
278
- 11 sts-stats-sum requestCount 4485612 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
279
- 12 sts-stats-sum retryCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
280
- 13 sts-stats-sum systemcpu
281
-
282
- timer 72578365.22 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
283
- 15 sts-stats-sum velocity
284
-
285
-
286
-
287
-
258
+ activeRequestCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
259
+ 1 sts-stats-sum authenticationCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
260
+ 2 sts-stats-sum connectionCount 40 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
261
+ 3 sts-stats-sum connectionIdleCount 12 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
262
+ 4 sts-stats-sum connectionPoolCount 12 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
263
+ 5 sts-stats-sum connectionWaitingCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
264
+ 6 sts-stats-sum coreCount
265
+
266
+ cpu 50.91 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
267
+ 8 sts-stats-sum duration 3.6900000000000004 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
268
+ 9 sts-stats-sum errorCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
269
+ 10 sts-stats-sum latency 22.82 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
270
+ 11 sts-stats-sum requestCount 4485612 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
271
+ 12 sts-stats-sum retryCount 0 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
272
+ 13 sts-stats-sum systemcpu
273
+
274
+ timer 72578365.22 2023-11-11T06:23:52.761Z 2023-11-11T06:33:52.761Z 2023-11-11T06:33:52.000Z
275
+ 15 sts-stats-sum velocity
288
276
 
289
277
  Service OLD
290
278
 
291
- option task = {
292
- name: "sts-service-old",
293
- every: 1s,
279
+ option task = {
280
+ name: "sts-service-old",
281
+ every: 1s,
294
282
  }
295
283
 
296
284
  from(bucket: "TestBucket01")
297
- |> range(start: -5s)
298
- |> last()
299
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
300
- |> group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])
301
- |> sum()
302
- |> toFloat()
303
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum-byserviceInstanceprocessid"}))
304
- |> to(org: "my-org", bucket: "TestBucket01")
285
+ |> range(start: -5s)
286
+ |> last()
287
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
288
+ |> group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])
289
+ |> sum()
290
+ |> toFloat()
291
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum-byserviceInstanceprocessid"}))
292
+ |> to(org: "my-org", bucket: "TestBucket01")
305
293
 
306
294
  from(bucket: "TestBucket01")
307
- |> range(start: -5s)
308
- |> last()
309
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
310
- |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
311
- |> sum()
312
- |> toFloat()
313
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum-byserviceinstance"}))
314
- |> to(org: "my-org", bucket: "TestBucket01")
295
+ |> range(start: -5s)
296
+ |> last()
297
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
298
+ |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
299
+ |> sum()
300
+ |> toFloat()
301
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum-byserviceinstance"}))
302
+ |> to(org: "my-org", bucket: "TestBucket01")
315
303
 
316
304
  from(bucket: "TestBucket01")
317
- |> range(start: -5s)
318
- |> last()
319
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
320
- |> group(columns: ["serviceId", "_field"])
321
- |> sum()
322
- |> toFloat()
323
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum-byservice"}))
324
- |> to(org: "my-org", bucket: "TestBucket01")
305
+ |> range(start: -5s)
306
+ |> last()
307
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
308
+ |> group(columns: ["serviceId", "_field"])
309
+ |> sum()
310
+ |> toFloat()
311
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum-byservice"}))
312
+ |> to(org: "my-org", bucket: "TestBucket01")
325
313
 
326
314
  from(bucket: "TestBucket01")
327
- |> range(start: -5s)
328
- |> last()
329
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
330
- |> group(columns: ["_field"])
331
- |> sum()
332
- |> toFloat()
333
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-sum"}))
334
- |> to(org: "my-org", bucket: "TestBucket01")
335
-
336
-
315
+ |> range(start: -5s)
316
+ |> last()
317
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
318
+ |> group(columns: ["_field"])
319
+ |> sum()
320
+ |> toFloat()
321
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-sum"}))
322
+ |> to(org: "my-org", bucket: "TestBucket01")
337
323
 
338
324
  Service NEW
339
325
 
340
326
  Note: The duration and latency > 0.0 is a problem becuase no data is returned for detailed drill in views
341
327
 
342
-
343
328
  option task = {name: "task-sts-service-stats", every: 1s}
344
329
 
345
330
  data =
346
- from(bucket: "TestBucket01")
347
- |> range(start: -5s)
348
- |> last()
349
- |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
331
+ from(bucket: "TestBucket01")
332
+ |> range(start: -5s)
333
+ |> last()
334
+ |> filter(fn: (r) => r["_measurement"] == "service" and r["_field"] != "memory")
350
335
 
351
336
  r1 =
352
- data
353
- |> filter(
354
- fn: (r) =>
355
- r["_field"] == "requestCount" or r["_field"] == "errorCount" or r["_field"]
356
- ==
357
- "retryCount" or r["_field"] == "authenticationCount" or r["_field"]
358
- ==
359
- "activeRequestCount" or r["_field"] == "connectionCount" or r["_field"]
360
- ==
361
- "connectionPoolCount" or r["_field"] == "connectionIdleCount" or r["_field"]
362
- ==
363
- "connectionWaitingCount" or r["_field"] == "coreCount" or r["_field"] == "cpu"
364
- or
365
- r["_field"] == "systemcpu" or r["_field"] == "velocity" or r["_field"]
366
- ==
367
- "timer",
368
- )
337
+ data
338
+ |> filter(
339
+ fn: (r) =>
340
+ r["_field"] == "requestCount" or r["_field"] == "errorCount" or r["_field"]
341
+ ==
342
+ "retryCount" or r["_field"] == "authenticationCount" or r["_field"]
343
+ ==
344
+ "activeRequestCount" or r["_field"] == "connectionCount" or r["_field"]
345
+ ==
346
+ "connectionPoolCount" or r["_field"] == "connectionIdleCount" or r["_field"]
347
+ ==
348
+ "connectionWaitingCount" or r["_field"] == "coreCount" or r["_field"] == "cpu"
349
+ or
350
+ r["_field"] == "systemcpu" or r["_field"] == "velocity" or r["_field"]
351
+ ==
352
+ "timer",
353
+ )
369
354
 
370
355
  r2 =
371
- data
372
- |> filter(
373
- fn: (r) =>
374
- float(v: r["_value"]) > 0.0 and (r["_field"] == "duration" or r["_field"]
375
- ==
376
- "latency"),
377
- )
356
+ data
357
+ |> filter(
358
+ fn: (r) =>
359
+ float(v: r["_value"]) > 0.0 and (r["_field"] == "duration" or r["_field"]
360
+ ==
361
+ "latency"),
362
+ )
378
363
 
379
364
  serviceInstanceProcessSum =
380
- r1
381
- |> group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])
382
- |> sum()
383
- |> toFloat()
365
+ r1
366
+ |> group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])
367
+ |> sum()
368
+ |> toFloat()
384
369
 
385
370
  serviceInstanceProcessMean =
386
- r2
387
- |> group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])
388
- |> mean()
389
- |> toFloat()
371
+ r2
372
+ |> group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])
373
+ |> mean()
374
+ |> toFloat()
390
375
 
391
376
  union(tables: [serviceInstanceProcessSum, serviceInstanceProcessMean])
392
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-by-serviceinstanceprocess"}))
393
- |> to(org: "my-org", bucket: "TestBucket01")
377
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-by-serviceinstanceprocess"}))
378
+ |> to(org: "my-org", bucket: "TestBucket01")
394
379
 
395
380
  serviceInstanceSum =
396
- r1
397
- |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
398
- |> sum()
399
- |> toFloat()
381
+ r1
382
+ |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
383
+ |> sum()
384
+ |> toFloat()
400
385
 
401
386
  serviceInstanceMean =
402
- r2
403
- |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
404
- |> mean()
405
- |> toFloat()
387
+ r2
388
+ |> group(columns: ["serviceId", "serviceInstanceId", "_field"])
389
+ |> mean()
390
+ |> toFloat()
406
391
 
407
392
  union(tables: [serviceInstanceSum, serviceInstanceMean])
408
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-by-serviceinstance"}))
409
- |> to(org: "my-org", bucket: "TestBucket01")
393
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-by-serviceinstance"}))
394
+ |> to(org: "my-org", bucket: "TestBucket01")
410
395
 
411
396
  serviceSum =
412
- r1
413
- |> group(columns: ["serviceId", "_field"])
414
- |> sum()
415
- |> toFloat()
397
+ r1
398
+ |> group(columns: ["serviceId", "_field"])
399
+ |> sum()
400
+ |> toFloat()
416
401
 
417
402
  serviceMean =
418
- r2
419
- |> group(columns: ["serviceId", "_field"])
420
- |> mean()
421
- |> toFloat()
403
+ r2
404
+ |> group(columns: ["serviceId", "_field"])
405
+ |> mean()
406
+ |> toFloat()
422
407
 
423
408
  union(tables: [serviceSum, serviceMean])
424
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-by-service"}))
425
- |> to(org: "my-org", bucket: "TestBucket01")
409
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-by-service"}))
410
+ |> to(org: "my-org", bucket: "TestBucket01")
426
411
 
427
412
  globalServiceSum =
428
- r1
429
- |> group(columns: ["_field"])
430
- |> sum()
431
- |> toFloat()
413
+ r1
414
+ |> group(columns: ["_field"])
415
+ |> sum()
416
+ |> toFloat()
432
417
 
433
418
  globalServiceMean =
434
- r2
435
- |> group(columns: ["_field"])
436
- |> mean()
437
- |> toFloat()
419
+ r2
420
+ |> group(columns: ["_field"])
421
+ |> mean()
422
+ |> toFloat()
438
423
 
439
424
  union(tables: [globalServiceSum, globalServiceMean])
440
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-globalservice"}))
441
- |> to(org: "my-org", bucket: "TestBucket01")
442
-
443
-
444
-
445
-
425
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-globalservice"}))
426
+ |> to(org: "my-org", bucket: "TestBucket01")
446
427
 
447
428
  --- Agents
448
429
 
449
430
  option task = {name: "task-sts-agent-stats", every: 1s}
450
431
 
451
432
  data =
452
- from(bucket: "TestBucket01")
453
- |> range(start: -5s)
454
- |> last()
455
- |> filter(fn: (r) => r["_measurement"] == "agent")
433
+ from(bucket: "TestBucket01")
434
+ |> range(start: -5s)
435
+ |> last()
436
+ |> filter(fn: (r) => r["_measurement"] == "agent")
456
437
 
457
438
  byagentthreadasyncunner =
458
- data
459
- |> group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])
460
- |> sum()
461
- |> toFloat()
462
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-by-agentthreadasyncunner"}))
463
- |> to(org: "my-org", bucket: "TestBucket01")
439
+ data
440
+ |> group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])
441
+ |> sum()
442
+ |> toFloat()
443
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-by-agentthreadasyncunner"}))
444
+ |> to(org: "my-org", bucket: "TestBucket01")
464
445
 
465
446
  byagentthread =
466
- data
467
- |> group(columns: ["agentName", "threadId", "_field"])
468
- |> sum()
469
- |> toFloat()
470
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-by-agentthread"}))
471
- |> to(org: "my-org", bucket: "TestBucket01")
447
+ data
448
+ |> group(columns: ["agentName", "threadId", "_field"])
449
+ |> sum()
450
+ |> toFloat()
451
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-by-agentthread"}))
452
+ |> to(org: "my-org", bucket: "TestBucket01")
472
453
 
473
454
  byagent =
474
- data
475
- |> group(columns: ["agentName", "_field"])
476
- |> sum()
477
- |> toFloat()
478
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-by-agent"}))
479
- |> to(org: "my-org", bucket: "TestBucket01")
455
+ data
456
+ |> group(columns: ["agentName", "_field"])
457
+ |> sum()
458
+ |> toFloat()
459
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-by-agent"}))
460
+ |> to(org: "my-org", bucket: "TestBucket01")
480
461
 
481
462
  globalagent =
482
- data
483
- |> group(columns: ["_field"])
484
- |> sum()
485
- |> toFloat()
486
- |> map(fn: (r) => ({r with _time: now(), _measurement: "sts-stats-globalagent"}))
487
- |> to(org: "my-org", bucket: "TestBucket01")
463
+ data
464
+ |> group(columns: ["_field"])
465
+ |> sum()
466
+ |> toFloat()
467
+ |> map(fn: (r) => ({r with \_time: now(), \_measurement: "sts-stats-globalagent"}))
468
+ |> to(org: "my-org", bucket: "TestBucket01")