@nsshunt/stsappframework 3.0.47 → 3.0.49
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/influxdb/influxDBManagerAgent.js +94 -21
- package/dist/influxdb/influxDBManagerAgent.js.map +1 -1
- package/dist/influxdb/influxDBManagerBase.js.map +1 -1
- package/dist/influxdb/influxDBManagerService.js +67 -21
- package/dist/influxdb/influxDBManagerService.js.map +1 -1
- package/package.json +1 -1
- package/src/influxdb/influxDBManagerAgent.ts +98 -22
- package/src/influxdb/influxDBManagerBase.ts +2 -0
- package/src/influxdb/influxDBManagerService.ts +70 -22
- package/types/influxdb/influxDBManagerAgent.d.ts.map +1 -1
- package/types/influxdb/influxDBManagerBase.d.ts.map +1 -1
- package/types/influxdb/influxDBManagerService.d.ts.map +1 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InfluxDBManagerAgent = void 0;
|
|
4
4
|
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
5
|
+
// https://www.influxdata.com/blog/tldr-influxdb-tech-tips-multiple-aggregations-yield-flux/
|
|
6
|
+
// https://www.influxdata.com/blog/top-5-hurdles-for-intermediate-flux-users-and-resources-for-optimizing-flux/
|
|
5
7
|
const influxdb_client_1 = require("@influxdata/influxdb-client");
|
|
6
8
|
const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
|
|
7
9
|
const influxDBManagerBase_1 = require("./influxDBManagerBase");
|
|
@@ -15,12 +17,39 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
15
17
|
}
|
|
16
18
|
// Queries --------------------------------------------------------------------------------------------------------
|
|
17
19
|
// Counter metrics
|
|
18
|
-
#GetSTSCountGenericAgent = async (
|
|
20
|
+
#GetSTSCountGenericAgent = async (filterClause, groupClause, showOutput = false) => {
|
|
21
|
+
try {
|
|
22
|
+
const query = `from(bucket: "${this.options.bucket}")
|
|
23
|
+
|> range(start: -5s)
|
|
24
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" and (r["_field"] == "requestCount"
|
|
25
|
+
or r["_field"] == "errorCount"
|
|
26
|
+
or r["_field"] == "retryCount"
|
|
27
|
+
or r["_field"] == "authenticationCount"
|
|
28
|
+
or r["_field"] == "velocity"
|
|
29
|
+
or r["_field"] == "coreCount"
|
|
30
|
+
or r["_field"] == "timer"
|
|
31
|
+
or r["_field"] == "duration"
|
|
32
|
+
or r["_field"] == "latency"
|
|
33
|
+
or r["_field"] == "activeRequestCount"
|
|
34
|
+
or r["_field"] == "childCount") ${filterClause})
|
|
35
|
+
|> last()
|
|
36
|
+
|> ${groupClause}
|
|
37
|
+
|> sum()`;
|
|
38
|
+
if (showOutput) {
|
|
39
|
+
console.log(query);
|
|
40
|
+
}
|
|
41
|
+
return this.queryApi.collectRows(query);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error(`${_logPrefix}#GetSTSCountGeneric: Error: [${error}]`.red);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
#GetSTSCountGenericAgentOld = async (filterClause, groupClause, showOutput = false) => {
|
|
19
48
|
try {
|
|
20
49
|
const query = `dostscountex = (q, d) =>
|
|
21
50
|
from(bucket: "${this.options.bucket}")
|
|
22
51
|
|> range(start: d)
|
|
23
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
52
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" ${filterClause})
|
|
24
53
|
|> filter(fn: (r) => r["_field"] == q)
|
|
25
54
|
|> last()
|
|
26
55
|
|> ${groupClause}
|
|
@@ -51,15 +80,31 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
51
80
|
}
|
|
52
81
|
};
|
|
53
82
|
// Histo metrics
|
|
54
|
-
#GetSTSHistoGenericService = async (
|
|
83
|
+
#GetSTSHistoGenericService = async (filterClause, groupClause) => {
|
|
84
|
+
try {
|
|
85
|
+
const query = `import "math"
|
|
86
|
+
from(bucket: "${this.options.bucket}")
|
|
87
|
+
|> range(start: -10m)
|
|
88
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" and (r["_field"] =="latency"
|
|
89
|
+
or r["_field"] =="duration") ${filterClause})
|
|
90
|
+
|> ${groupClause}
|
|
91
|
+
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
92
|
+
|> difference()`;
|
|
93
|
+
return this.queryApi.collectRows(query);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error(`${_logPrefix}#GetSTSHistoGeneric: Error: [${error}]`.red);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
#GetSTSHistoGenericServiceOld = async (filterClause, groupClause) => {
|
|
55
100
|
try {
|
|
56
101
|
const query = `import "math"
|
|
57
102
|
|
|
58
103
|
dostshistoex = (q, d) =>
|
|
59
104
|
from(bucket: "${this.options.bucket}")
|
|
60
105
|
|> range(start: d)
|
|
61
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
62
|
-
|> filter(fn: (r) => r["_field"] == q
|
|
106
|
+
|> filter(fn: (r) => r["_measurement"] == "agent")
|
|
107
|
+
|> filter(fn: (r) => r["_field"] == q ${filterClause})
|
|
63
108
|
|> ${groupClause}
|
|
64
109
|
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
65
110
|
|> difference()
|
|
@@ -78,13 +123,41 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
78
123
|
}
|
|
79
124
|
};
|
|
80
125
|
// Quantile metrics
|
|
81
|
-
#GetSTSQuantileGenericAgent = async (
|
|
126
|
+
#GetSTSQuantileGenericAgent = async (filterClause, groupClause) => {
|
|
127
|
+
try {
|
|
128
|
+
const query = `data = from(bucket: "${this.options.bucket}")
|
|
129
|
+
|> range(start: -10m)
|
|
130
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" and (r["_field"] == "latency"
|
|
131
|
+
or r["_field"] == "duration") ${filterClause})
|
|
132
|
+
|> ${groupClause}
|
|
133
|
+
|> aggregateWindow(every: 5s, fn: max, createEmpty: false)
|
|
134
|
+
|
|
135
|
+
dostsquantileex = (q) =>
|
|
136
|
+
data
|
|
137
|
+
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
138
|
+
|> set(key: "quantile", value: string(v:q))
|
|
139
|
+
|> group(columns: ["quantile"])
|
|
140
|
+
|
|
141
|
+
union(tables: [
|
|
142
|
+
dostsquantileex(q: 0.5),
|
|
143
|
+
dostsquantileex(q: 0.8),
|
|
144
|
+
dostsquantileex(q: 0.9),
|
|
145
|
+
dostsquantileex(q: 0.95),
|
|
146
|
+
dostsquantileex(q: 0.99)
|
|
147
|
+
])`;
|
|
148
|
+
return this.queryApi.collectRows(query);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
#GetSTSQuantileGenericAgentOld = async (filterClause, groupClause) => {
|
|
82
155
|
try {
|
|
83
156
|
const query = `dostsquantileex = (q, d, i, f) =>
|
|
84
157
|
from(bucket: "${this.options.bucket}")
|
|
85
158
|
|> range(start: d)
|
|
86
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
87
|
-
|> filter(fn: (r) => r["_field"] == f
|
|
159
|
+
|> filter(fn: (r) => r["_measurement"] == "agent")
|
|
160
|
+
|> filter(fn: (r) => r["_field"] == f ${filterClause})
|
|
88
161
|
|> ${groupClause}
|
|
89
162
|
|> aggregateWindow(every: i, fn: max, createEmpty: false)
|
|
90
163
|
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
@@ -116,9 +189,9 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
116
189
|
let retVal = null;
|
|
117
190
|
try {
|
|
118
191
|
retVal = await this.ProcessInfluxDBResults([
|
|
119
|
-
this.#GetSTSCountGenericAgent('
|
|
120
|
-
this.#GetSTSQuantileGenericAgent(
|
|
121
|
-
this.#GetSTSHistoGenericService('
|
|
192
|
+
this.#GetSTSCountGenericAgent('', 'group(columns: ["_field"])'),
|
|
193
|
+
this.#GetSTSQuantileGenericAgent('', 'group(columns: ["_field"])'),
|
|
194
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["_field"])')
|
|
122
195
|
], []);
|
|
123
196
|
}
|
|
124
197
|
catch (error) {
|
|
@@ -134,9 +207,9 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
134
207
|
let retVal = null;
|
|
135
208
|
try {
|
|
136
209
|
retVal = await this.ProcessInfluxDBResults([
|
|
137
|
-
this.#GetSTSCountGenericAgent('
|
|
138
|
-
this.#GetSTSQuantileGenericAgent(
|
|
139
|
-
this.#GetSTSHistoGenericService('
|
|
210
|
+
this.#GetSTSCountGenericAgent('', 'group(columns: ["agentName", "_field"])'),
|
|
211
|
+
this.#GetSTSQuantileGenericAgent('', 'group(columns: ["agentName", "_field"])'),
|
|
212
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["agentName", "_field"])')
|
|
140
213
|
], ['agentName']);
|
|
141
214
|
}
|
|
142
215
|
catch (error) {
|
|
@@ -153,9 +226,9 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
153
226
|
try {
|
|
154
227
|
const agentName = subscriptionKey.key;
|
|
155
228
|
retVal = await this.ProcessInfluxDBResults([
|
|
156
|
-
this.#GetSTSCountGenericAgent(
|
|
157
|
-
this.#GetSTSQuantileGenericAgent(`
|
|
158
|
-
this.#GetSTSHistoGenericService(
|
|
229
|
+
this.#GetSTSCountGenericAgent(`and r["agentName"] == "${agentName}"`, `group(columns: ["agentName", "threadId", "_field"])`),
|
|
230
|
+
this.#GetSTSQuantileGenericAgent(`and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])'),
|
|
231
|
+
this.#GetSTSHistoGenericService(`and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])')
|
|
159
232
|
], ['agentName', 'threadId']);
|
|
160
233
|
}
|
|
161
234
|
catch (error) {
|
|
@@ -173,9 +246,9 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
173
246
|
const agentName = subscriptionKey.key;
|
|
174
247
|
const threadId = subscriptionKey.subkey;
|
|
175
248
|
retVal = await this.ProcessInfluxDBResults([
|
|
176
|
-
this.#GetSTSCountGenericAgent(
|
|
177
|
-
this.#GetSTSQuantileGenericAgent(`
|
|
178
|
-
this.#GetSTSHistoGenericService(
|
|
249
|
+
this.#GetSTSCountGenericAgent(`and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, `group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])`),
|
|
250
|
+
this.#GetSTSQuantileGenericAgent(`and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])'),
|
|
251
|
+
this.#GetSTSHistoGenericService(`and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])')
|
|
179
252
|
], ['agentName', 'threadId', 'asyncRunnerId']);
|
|
180
253
|
}
|
|
181
254
|
catch (error) {
|
|
@@ -197,13 +270,13 @@ class InfluxDBManagerAgent extends influxDBManagerBase_1.InfluxDBManagerBase {
|
|
|
197
270
|
systemcpu = instrumentPayload.instruments[stsinstrumentation_1.Gauge.CPU_SYSTEM_LOAD_GAUGE].val;
|
|
198
271
|
}
|
|
199
272
|
const point = new influxdb_client_1.Point('all')
|
|
273
|
+
.measurement('agent')
|
|
200
274
|
// Context settings
|
|
201
275
|
.tag('id', id) // Must be unique (uuid)
|
|
202
276
|
.tag('hostName', hostName) // Must be unique (uuid)
|
|
203
277
|
.tag('agentName', agentName) // Must be unique (uuid)
|
|
204
278
|
.tag('threadId', threadId) // Must be unique (uuid)
|
|
205
279
|
.tag('asyncRunnerId', asyncRunnerId)
|
|
206
|
-
.tag('modelType', 'agent')
|
|
207
280
|
// Data fields
|
|
208
281
|
.intField('requestCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.REQUEST_COUNT_GAUGE].val) // q
|
|
209
282
|
.intField('errorCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.ERROR_COUNT_GAUGE].val) // j
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerAgent.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":";;;AAAA,wFAAwF,CAAE,UAAU;AACpG,iEAAuE;AAEvE,oEAAuE;AAEvE,+DAA2D;AAK3D,MAAM,UAAU,GAAG,yBAAyB,CAAA;AAE5C,MAAa,oBAAqB,SAAQ,yCAAmB;IAEzD,YAAY,OAAgC,EAAE,QAAkB,EAAE,WAAqB;QACnF,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,IAAa,SAAS;QAClB,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,mHAAmH;IAEnH,kBAAkB;IAClB,wBAAwB,GAAG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"influxDBManagerAgent.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerBase.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerBase.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"influxDBManagerBase.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InfluxDBManagerService = void 0;
|
|
4
4
|
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
5
|
+
// https://www.influxdata.com/blog/tldr-influxdb-tech-tips-multiple-aggregations-yield-flux/
|
|
6
|
+
// https://www.influxdata.com/blog/top-5-hurdles-for-intermediate-flux-users-and-resources-for-optimizing-flux/
|
|
5
7
|
const influxdb_client_1 = require("@influxdata/influxdb-client");
|
|
6
8
|
const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
|
|
7
9
|
const influxDBManagerBase_1 = require("./influxDBManagerBase");
|
|
@@ -33,7 +35,7 @@ data
|
|
|
33
35
|
try {
|
|
34
36
|
const query = `data = from(bucket: "${this.options.bucket}")
|
|
35
37
|
|> range(start: -5s)
|
|
36
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
38
|
+
|> filter(fn: (r) => r["_measurement"] == "service" ${filterClause})
|
|
37
39
|
|
|
38
40
|
r1 = data
|
|
39
41
|
|> filter(fn: (r) => r["_field"] == "requestCount"
|
|
@@ -76,7 +78,7 @@ data
|
|
|
76
78
|
const query = `dostscountex = (q, d) =>
|
|
77
79
|
from(bucket: "${this.options.bucket}")
|
|
78
80
|
|> range(start: d)
|
|
79
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
81
|
+
|> filter(fn: (r) => r["_measurement"] == "service" ${filterClause})
|
|
80
82
|
|> filter(fn: (r) => r["_field"] == q)
|
|
81
83
|
|> last()
|
|
82
84
|
|> ${groupClause}
|
|
@@ -85,7 +87,7 @@ data
|
|
|
85
87
|
dogetmemory = () =>
|
|
86
88
|
from(bucket: "${this.options.bucket}")
|
|
87
89
|
|> range(start: -5s)
|
|
88
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
90
|
+
|> filter(fn: (r) => r["_measurement"] == "service" ${filterClause})
|
|
89
91
|
|> filter(fn: (r) => r["_field"] == "memory")
|
|
90
92
|
|> last()
|
|
91
93
|
|
|
@@ -120,15 +122,31 @@ data
|
|
|
120
122
|
}
|
|
121
123
|
};
|
|
122
124
|
// Histo metrics
|
|
123
|
-
#GetSTSHistoGenericService = async (
|
|
125
|
+
#GetSTSHistoGenericService = async (filterClause, groupClause) => {
|
|
126
|
+
try {
|
|
127
|
+
const query = `import "math"
|
|
128
|
+
from(bucket: "TestBucket01")
|
|
129
|
+
|> range(start: -10m)
|
|
130
|
+
|> filter(fn: (r) => r["_measurement"] == "service" and (r["_field"] =="latency" or
|
|
131
|
+
r["_field"] =="duration") ${filterClause})
|
|
132
|
+
|> ${groupClause}
|
|
133
|
+
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
134
|
+
|> difference()`;
|
|
135
|
+
return this.queryApi.collectRows(query);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
console.error(`${_logPrefix}#GetSTSHistoGeneric: Error: [${error}]`.red);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
#GetSTSHistoGenericServiceOld = async (filterClause, groupClause) => {
|
|
124
142
|
try {
|
|
125
143
|
const query = `import "math"
|
|
126
144
|
|
|
127
145
|
dostshistoex = (q, d) =>
|
|
128
146
|
from(bucket: "${this.options.bucket}")
|
|
129
147
|
|> range(start: d)
|
|
130
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
131
|
-
|> filter(fn: (r) => r["_field"] == q
|
|
148
|
+
|> filter(fn: (r) => r["_measurement"] == "service")
|
|
149
|
+
|> filter(fn: (r) => r["_field"] == q ${filterClause})
|
|
132
150
|
|> ${groupClause}
|
|
133
151
|
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
134
152
|
|> difference()
|
|
@@ -147,13 +165,43 @@ data
|
|
|
147
165
|
}
|
|
148
166
|
};
|
|
149
167
|
// Quantile metrics
|
|
150
|
-
#GetSTSQuantileGenericService = async (
|
|
168
|
+
#GetSTSQuantileGenericService = async (filterClause, groupClause) => {
|
|
169
|
+
try {
|
|
170
|
+
const query = `data = from(bucket: "${this.options.bucket}")
|
|
171
|
+
|> range(start: -10m)
|
|
172
|
+
|> filter(fn: (r) => r["_measurement"] == "service" and (r["_field"] == "latency" or
|
|
173
|
+
r["_field"] == "duration" or
|
|
174
|
+
r["_field"] == "cpu" or
|
|
175
|
+
r["_field"] == "systemcpu") ${filterClause})
|
|
176
|
+
|> ${groupClause}
|
|
177
|
+
|> aggregateWindow(every: 5s, fn: max, createEmpty: false)
|
|
178
|
+
|
|
179
|
+
dostsquantileex = (q) =>
|
|
180
|
+
data
|
|
181
|
+
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
182
|
+
|> set(key: "quantile", value: string(v:q))
|
|
183
|
+
|> group(columns: ["quantile"])
|
|
184
|
+
|
|
185
|
+
union(tables: [
|
|
186
|
+
dostsquantileex(q: 0.5),
|
|
187
|
+
dostsquantileex(q: 0.8),
|
|
188
|
+
dostsquantileex(q: 0.9),
|
|
189
|
+
dostsquantileex(q: 0.95),
|
|
190
|
+
dostsquantileex(q: 0.99)
|
|
191
|
+
])`;
|
|
192
|
+
return this.queryApi.collectRows(query);
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
#GetSTSQuantileGenericServiceOld = async (filterClause, groupClause) => {
|
|
151
199
|
try {
|
|
152
200
|
const query = `dostsquantileex = (q, d, i, f) =>
|
|
153
201
|
from(bucket: "${this.options.bucket}")
|
|
154
202
|
|> range(start: d)
|
|
155
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
156
|
-
|> filter(fn: (r) => r["_field"] == f
|
|
203
|
+
|> filter(fn: (r) => r["_measurement"] == "service")
|
|
204
|
+
|> filter(fn: (r) => r["_field"] == f ${filterClause})
|
|
157
205
|
|> ${groupClause}
|
|
158
206
|
|> aggregateWindow(every: i, fn: max, createEmpty: false)
|
|
159
207
|
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
@@ -188,8 +236,8 @@ data
|
|
|
188
236
|
try {
|
|
189
237
|
retVal = await this.ProcessInfluxDBResults([
|
|
190
238
|
this.#GetSTSCountGenericService('', 'group(columns: ["_field"])'),
|
|
191
|
-
this.#GetSTSQuantileGenericService(
|
|
192
|
-
this.#GetSTSHistoGenericService('
|
|
239
|
+
this.#GetSTSQuantileGenericService('', 'group(columns: ["_field"])'),
|
|
240
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["_field"])')
|
|
193
241
|
], []);
|
|
194
242
|
}
|
|
195
243
|
catch (error) {
|
|
@@ -206,8 +254,8 @@ data
|
|
|
206
254
|
try {
|
|
207
255
|
retVal = await this.ProcessInfluxDBResults([
|
|
208
256
|
this.#GetSTSCountGenericService('', 'group(columns: ["serviceId", "_field"])'),
|
|
209
|
-
this.#GetSTSQuantileGenericService(
|
|
210
|
-
this.#GetSTSHistoGenericService('
|
|
257
|
+
this.#GetSTSQuantileGenericService('', 'group(columns: ["serviceId", "_field"])'),
|
|
258
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["serviceId", "_field"])')
|
|
211
259
|
], ['serviceId']);
|
|
212
260
|
}
|
|
213
261
|
catch (error) {
|
|
@@ -225,8 +273,8 @@ data
|
|
|
225
273
|
const serviceId = subscriptionKey.key;
|
|
226
274
|
retVal = await this.ProcessInfluxDBResults([
|
|
227
275
|
this.#GetSTSCountGenericService(`and r["serviceId"] == "${serviceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "_field"])`),
|
|
228
|
-
this.#GetSTSQuantileGenericService(`
|
|
229
|
-
this.#GetSTSHistoGenericService(
|
|
276
|
+
this.#GetSTSQuantileGenericService(`and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])'),
|
|
277
|
+
this.#GetSTSHistoGenericService(`and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])')
|
|
230
278
|
], ['serviceId', 'serviceInstanceId']);
|
|
231
279
|
}
|
|
232
280
|
catch (error) {
|
|
@@ -244,8 +292,8 @@ data
|
|
|
244
292
|
const serviceInstanceId = subscriptionKey.key;
|
|
245
293
|
retVal = await this.ProcessInfluxDBResults([
|
|
246
294
|
this.#GetSTSCountGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])`),
|
|
247
|
-
this.#GetSTSQuantileGenericService(`
|
|
248
|
-
this.#GetSTSHistoGenericService(
|
|
295
|
+
this.#GetSTSQuantileGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])'),
|
|
296
|
+
this.#GetSTSHistoGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])')
|
|
249
297
|
], ['serviceId', 'serviceInstanceId', 'serviceInstanceProcessId']);
|
|
250
298
|
}
|
|
251
299
|
catch (error) {
|
|
@@ -264,12 +312,13 @@ data
|
|
|
264
312
|
if (this.shuttingDown) {
|
|
265
313
|
return false;
|
|
266
314
|
}
|
|
267
|
-
const { serviceId, serviceInstanceId, hostName, serviceInstanceProcessId, pid, ppid,
|
|
315
|
+
const { serviceId, serviceInstanceId, hostName, serviceInstanceProcessId, pid, ppid, serviceName, serviceVersion } = instrumentPayload.context;
|
|
268
316
|
let systemcpu = 0.0;
|
|
269
317
|
if (instrumentPayload.instruments[stsinstrumentation_1.Gauge.CPU_SYSTEM_LOAD_GAUGE]) {
|
|
270
318
|
systemcpu = instrumentPayload.instruments[stsinstrumentation_1.Gauge.CPU_SYSTEM_LOAD_GAUGE].val;
|
|
271
319
|
}
|
|
272
320
|
const point = new influxdb_client_1.Point('all')
|
|
321
|
+
.measurement('service')
|
|
273
322
|
// Context settings
|
|
274
323
|
.tag('serviceId', serviceId)
|
|
275
324
|
.tag('serviceName', serviceName)
|
|
@@ -279,9 +328,6 @@ data
|
|
|
279
328
|
.tag('hostName', hostName)
|
|
280
329
|
.tag('pid', pid.toString())
|
|
281
330
|
.tag('ppid', ppid.toString())
|
|
282
|
-
.tag('isMaster', isMaster.toString())
|
|
283
|
-
.tag('isWorker', isWorker.toString())
|
|
284
|
-
.tag('modelType', 'service')
|
|
285
331
|
// Data fields
|
|
286
332
|
.intField('requestCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.REQUEST_COUNT_GAUGE].val)
|
|
287
333
|
.intField('errorCount', instrumentPayload.instruments[stsinstrumentation_1.Gauge.ERROR_COUNT_GAUGE].val)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerService.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":";;;AAAA,wFAAwF,CAAE,UAAU;AACpG,iEAAuE;AAEvE,oEAAuE;AAEvE,+DAA2D;AAK3D,MAAM,UAAU,GAAG,yBAAyB,CAAA;AAE5C,MAAa,sBAAuB,SAAQ,yCAAmB;IAE3D,YAAY,OAAgC,EAAE,QAAkB,EAAE,WAAqB;QACnF,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,IAAa,SAAS;QAClB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,mHAAmH;IAEnH;;;;;;;;;;;;;;EAcF;IAEE,0BAA0B,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAmB,EAAE,aAAsB,KAAK,EAAgB,EAAE;QACxH,IAAI;YACA,MAAM,KAAK,GAAG,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM;;
|
|
1
|
+
{"version":3,"file":"influxDBManagerService.js","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
// https://www.influxdata.com/blog/tldr-influxdb-tech-tips-multiple-aggregations-yield-flux/
|
|
3
|
+
// https://www.influxdata.com/blog/top-5-hurdles-for-intermediate-flux-users-and-resources-for-optimizing-flux/
|
|
2
4
|
import { Point, WriteApi, QueryApi } from '@influxdata/influxdb-client'
|
|
3
5
|
|
|
4
6
|
import { Gauge, InstrumentVelocity } from '@nsshunt/stsinstrumentation'
|
|
@@ -23,12 +25,41 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
23
25
|
// Queries --------------------------------------------------------------------------------------------------------
|
|
24
26
|
|
|
25
27
|
// Counter metrics
|
|
26
|
-
#GetSTSCountGenericAgent = async (
|
|
28
|
+
#GetSTSCountGenericAgent = async (filterClause: string, groupClause: string, showOutput: boolean = false) => {
|
|
29
|
+
try {
|
|
30
|
+
const query = `from(bucket: "${this.options.bucket}")
|
|
31
|
+
|> range(start: -5s)
|
|
32
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" and (r["_field"] == "requestCount"
|
|
33
|
+
or r["_field"] == "errorCount"
|
|
34
|
+
or r["_field"] == "retryCount"
|
|
35
|
+
or r["_field"] == "authenticationCount"
|
|
36
|
+
or r["_field"] == "velocity"
|
|
37
|
+
or r["_field"] == "coreCount"
|
|
38
|
+
or r["_field"] == "timer"
|
|
39
|
+
or r["_field"] == "duration"
|
|
40
|
+
or r["_field"] == "latency"
|
|
41
|
+
or r["_field"] == "activeRequestCount"
|
|
42
|
+
or r["_field"] == "childCount") ${filterClause})
|
|
43
|
+
|> last()
|
|
44
|
+
|> ${groupClause}
|
|
45
|
+
|> sum()`;
|
|
46
|
+
|
|
47
|
+
if (showOutput) {
|
|
48
|
+
console.log(query);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return this.queryApi.collectRows(query)
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.error(`${_logPrefix}#GetSTSCountGeneric: Error: [${error}]`.red);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
#GetSTSCountGenericAgentOld = async (filterClause: string, groupClause: string, showOutput: boolean = false) => {
|
|
27
58
|
try {
|
|
28
59
|
const query = `dostscountex = (q, d) =>
|
|
29
60
|
from(bucket: "${this.options.bucket}")
|
|
30
61
|
|> range(start: d)
|
|
31
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
62
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" ${filterClause})
|
|
32
63
|
|> filter(fn: (r) => r["_field"] == q)
|
|
33
64
|
|> last()
|
|
34
65
|
|> ${groupClause}
|
|
@@ -61,15 +92,31 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
61
92
|
}
|
|
62
93
|
|
|
63
94
|
// Histo metrics
|
|
64
|
-
#GetSTSHistoGenericService = async (
|
|
95
|
+
#GetSTSHistoGenericService = async (filterClause: string, groupClause: string): Promise<any> => {
|
|
96
|
+
try {
|
|
97
|
+
const query = `import "math"
|
|
98
|
+
from(bucket: "${this.options.bucket}")
|
|
99
|
+
|> range(start: -10m)
|
|
100
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" and (r["_field"] =="latency"
|
|
101
|
+
or r["_field"] =="duration") ${filterClause})
|
|
102
|
+
|> ${groupClause}
|
|
103
|
+
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
104
|
+
|> difference()`;
|
|
105
|
+
return this.queryApi.collectRows(query)
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error(`${_logPrefix}#GetSTSHistoGeneric: Error: [${error}]`.red);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
#GetSTSHistoGenericServiceOld = async (filterClause: string, groupClause: string): Promise<any> => {
|
|
65
112
|
try {
|
|
66
113
|
const query = `import "math"
|
|
67
114
|
|
|
68
115
|
dostshistoex = (q, d) =>
|
|
69
116
|
from(bucket: "${this.options.bucket}")
|
|
70
117
|
|> range(start: d)
|
|
71
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
72
|
-
|> filter(fn: (r) => r["_field"] == q
|
|
118
|
+
|> filter(fn: (r) => r["_measurement"] == "agent")
|
|
119
|
+
|> filter(fn: (r) => r["_field"] == q ${filterClause})
|
|
73
120
|
|> ${groupClause}
|
|
74
121
|
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
75
122
|
|> difference()
|
|
@@ -88,13 +135,42 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
88
135
|
}
|
|
89
136
|
|
|
90
137
|
// Quantile metrics
|
|
91
|
-
#GetSTSQuantileGenericAgent = async (
|
|
138
|
+
#GetSTSQuantileGenericAgent = async (filterClause: string, groupClause: string) => {
|
|
139
|
+
try {
|
|
140
|
+
const query = `data = from(bucket: "${this.options.bucket}")
|
|
141
|
+
|> range(start: -10m)
|
|
142
|
+
|> filter(fn: (r) => r["_measurement"] == "agent" and (r["_field"] == "latency"
|
|
143
|
+
or r["_field"] == "duration") ${filterClause})
|
|
144
|
+
|> ${groupClause}
|
|
145
|
+
|> aggregateWindow(every: 5s, fn: max, createEmpty: false)
|
|
146
|
+
|
|
147
|
+
dostsquantileex = (q) =>
|
|
148
|
+
data
|
|
149
|
+
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
150
|
+
|> set(key: "quantile", value: string(v:q))
|
|
151
|
+
|> group(columns: ["quantile"])
|
|
152
|
+
|
|
153
|
+
union(tables: [
|
|
154
|
+
dostsquantileex(q: 0.5),
|
|
155
|
+
dostsquantileex(q: 0.8),
|
|
156
|
+
dostsquantileex(q: 0.9),
|
|
157
|
+
dostsquantileex(q: 0.95),
|
|
158
|
+
dostsquantileex(q: 0.99)
|
|
159
|
+
])`;
|
|
160
|
+
|
|
161
|
+
return this.queryApi.collectRows(query)
|
|
162
|
+
} catch (error) {
|
|
163
|
+
console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
#GetSTSQuantileGenericAgentOld = async (filterClause: string, groupClause: string) => {
|
|
92
168
|
try {
|
|
93
169
|
const query = `dostsquantileex = (q, d, i, f) =>
|
|
94
170
|
from(bucket: "${this.options.bucket}")
|
|
95
171
|
|> range(start: d)
|
|
96
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
97
|
-
|> filter(fn: (r) => r["_field"] == f
|
|
172
|
+
|> filter(fn: (r) => r["_measurement"] == "agent")
|
|
173
|
+
|> filter(fn: (r) => r["_field"] == f ${filterClause})
|
|
98
174
|
|> ${groupClause}
|
|
99
175
|
|> aggregateWindow(every: i, fn: max, createEmpty: false)
|
|
100
176
|
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
@@ -120,16 +196,16 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
120
196
|
console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
|
|
121
197
|
}
|
|
122
198
|
}
|
|
123
|
-
|
|
199
|
+
|
|
124
200
|
// Metric queries -------------------------------------------------------------------------------------------------
|
|
125
201
|
// Root level metrics
|
|
126
202
|
async GetInfluxDBResultsRootAgent(subscriptionKey: ISubscriptionKey): Promise<ISubscriptionPayload> { // ISubscriptionPayload
|
|
127
203
|
let retVal = null;
|
|
128
204
|
try {
|
|
129
205
|
retVal = await this.ProcessInfluxDBResults([
|
|
130
|
-
this.#GetSTSCountGenericAgent('
|
|
131
|
-
this.#GetSTSQuantileGenericAgent(
|
|
132
|
-
this.#GetSTSHistoGenericService('
|
|
206
|
+
this.#GetSTSCountGenericAgent('', 'group(columns: ["_field"])'),
|
|
207
|
+
this.#GetSTSQuantileGenericAgent('', 'group(columns: ["_field"])'),
|
|
208
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["_field"])')],
|
|
133
209
|
[ ])
|
|
134
210
|
} catch (error) {
|
|
135
211
|
console.error(`${_logPrefix}GetInfluxDBResultsRootAgent: Error: [${error}]`.red);
|
|
@@ -145,9 +221,9 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
145
221
|
let retVal = null;
|
|
146
222
|
try {
|
|
147
223
|
retVal = await this.ProcessInfluxDBResults([
|
|
148
|
-
this.#GetSTSCountGenericAgent('
|
|
149
|
-
this.#GetSTSQuantileGenericAgent(
|
|
150
|
-
this.#GetSTSHistoGenericService('
|
|
224
|
+
this.#GetSTSCountGenericAgent('', 'group(columns: ["agentName", "_field"])'),
|
|
225
|
+
this.#GetSTSQuantileGenericAgent('', 'group(columns: ["agentName", "_field"])'),
|
|
226
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["agentName", "_field"])')],
|
|
151
227
|
['agentName'])
|
|
152
228
|
} catch (error) {
|
|
153
229
|
console.error(`${_logPrefix}GetInfluxDBResultsAgent: Error: [${error}]`.red);
|
|
@@ -164,9 +240,9 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
164
240
|
try {
|
|
165
241
|
const agentName = subscriptionKey.key as string;
|
|
166
242
|
retVal = await this.ProcessInfluxDBResults([
|
|
167
|
-
this.#GetSTSCountGenericAgent(
|
|
168
|
-
this.#GetSTSQuantileGenericAgent(`
|
|
169
|
-
this.#GetSTSHistoGenericService(
|
|
243
|
+
this.#GetSTSCountGenericAgent(`and r["agentName"] == "${agentName}"`, `group(columns: ["agentName", "threadId", "_field"])`),
|
|
244
|
+
this.#GetSTSQuantileGenericAgent(`and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])'),
|
|
245
|
+
this.#GetSTSHistoGenericService(`and r["agentName"] == "${agentName}"`, 'group(columns: ["agentName", "threadId", "_field"])')],
|
|
170
246
|
['agentName', 'threadId'])
|
|
171
247
|
} catch (error) {
|
|
172
248
|
console.error(`${_logPrefix}GetInfluxDBResultsAgentThreads: Error: [${error}]`.red);
|
|
@@ -184,9 +260,9 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
184
260
|
const agentName = subscriptionKey.key as string;
|
|
185
261
|
const threadId = subscriptionKey.subkey as string;
|
|
186
262
|
retVal = await this.ProcessInfluxDBResults([
|
|
187
|
-
this.#GetSTSCountGenericAgent(
|
|
188
|
-
this.#GetSTSQuantileGenericAgent(`
|
|
189
|
-
this.#GetSTSHistoGenericService(
|
|
263
|
+
this.#GetSTSCountGenericAgent(`and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, `group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])`),
|
|
264
|
+
this.#GetSTSQuantileGenericAgent(`and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])'),
|
|
265
|
+
this.#GetSTSHistoGenericService(`and r["agentName"] == "${agentName}" and r["threadId"] == "${threadId}"`, 'group(columns: ["agentName", "threadId", "asyncRunnerId", "_field"])')],
|
|
190
266
|
['agentName', 'threadId', 'asyncRunnerId'])
|
|
191
267
|
} catch (error) {
|
|
192
268
|
console.error(`${_logPrefix}GetInfluxDBResultsAgentThread: Error: [${error}]`.red);
|
|
@@ -210,13 +286,13 @@ export class InfluxDBManagerAgent extends InfluxDBManagerBase
|
|
|
210
286
|
}
|
|
211
287
|
|
|
212
288
|
const point = new Point('all')
|
|
289
|
+
.measurement('agent')
|
|
213
290
|
// Context settings
|
|
214
291
|
.tag('id', id as string) // Must be unique (uuid)
|
|
215
292
|
.tag('hostName', hostName as string) // Must be unique (uuid)
|
|
216
293
|
.tag('agentName', agentName as string) // Must be unique (uuid)
|
|
217
294
|
.tag('threadId', threadId as string) // Must be unique (uuid)
|
|
218
295
|
.tag('asyncRunnerId', asyncRunnerId as string)
|
|
219
|
-
.tag('modelType', 'agent')
|
|
220
296
|
// Data fields
|
|
221
297
|
.intField('requestCount', instrumentPayload.instruments[Gauge.REQUEST_COUNT_GAUGE].val) // q
|
|
222
298
|
.intField('errorCount', instrumentPayload.instruments[Gauge.ERROR_COUNT_GAUGE].val) // j
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
// https://www.influxdata.com/blog/tldr-influxdb-tech-tips-multiple-aggregations-yield-flux/
|
|
3
|
+
// https://www.influxdata.com/blog/top-5-hurdles-for-intermediate-flux-users-and-resources-for-optimizing-flux/
|
|
2
4
|
import { WriteApi, QueryApi } from '@influxdata/influxdb-client'
|
|
3
5
|
|
|
4
6
|
import { IInfluxDBManagerOptions, InstrumentPayload } from './../commonTypes'
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
// https://www.influxdata.com/blog/tldr-influxdb-tech-tips-multiple-aggregations-yield-flux/
|
|
3
|
+
// https://www.influxdata.com/blog/top-5-hurdles-for-intermediate-flux-users-and-resources-for-optimizing-flux/
|
|
2
4
|
import { Point, WriteApi, QueryApi } from '@influxdata/influxdb-client'
|
|
3
5
|
|
|
4
6
|
import { Gauge, InstrumentVelocity } from '@nsshunt/stsinstrumentation'
|
|
@@ -42,7 +44,7 @@ data
|
|
|
42
44
|
try {
|
|
43
45
|
const query = `data = from(bucket: "${this.options.bucket}")
|
|
44
46
|
|> range(start: -5s)
|
|
45
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
47
|
+
|> filter(fn: (r) => r["_measurement"] == "service" ${filterClause})
|
|
46
48
|
|
|
47
49
|
r1 = data
|
|
48
50
|
|> filter(fn: (r) => r["_field"] == "requestCount"
|
|
@@ -87,7 +89,7 @@ data
|
|
|
87
89
|
const query = `dostscountex = (q, d) =>
|
|
88
90
|
from(bucket: "${this.options.bucket}")
|
|
89
91
|
|> range(start: d)
|
|
90
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
92
|
+
|> filter(fn: (r) => r["_measurement"] == "service" ${filterClause})
|
|
91
93
|
|> filter(fn: (r) => r["_field"] == q)
|
|
92
94
|
|> last()
|
|
93
95
|
|> ${groupClause}
|
|
@@ -96,7 +98,7 @@ data
|
|
|
96
98
|
dogetmemory = () =>
|
|
97
99
|
from(bucket: "${this.options.bucket}")
|
|
98
100
|
|> range(start: -5s)
|
|
99
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
101
|
+
|> filter(fn: (r) => r["_measurement"] == "service" ${filterClause})
|
|
100
102
|
|> filter(fn: (r) => r["_field"] == "memory")
|
|
101
103
|
|> last()
|
|
102
104
|
|
|
@@ -133,15 +135,31 @@ data
|
|
|
133
135
|
}
|
|
134
136
|
|
|
135
137
|
// Histo metrics
|
|
136
|
-
#GetSTSHistoGenericService = async (
|
|
138
|
+
#GetSTSHistoGenericService = async (filterClause: string, groupClause: string): Promise<any> => {
|
|
139
|
+
try {
|
|
140
|
+
const query = `import "math"
|
|
141
|
+
from(bucket: "TestBucket01")
|
|
142
|
+
|> range(start: -10m)
|
|
143
|
+
|> filter(fn: (r) => r["_measurement"] == "service" and (r["_field"] =="latency" or
|
|
144
|
+
r["_field"] =="duration") ${filterClause})
|
|
145
|
+
|> ${groupClause}
|
|
146
|
+
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
147
|
+
|> difference()`;
|
|
148
|
+
return this.queryApi.collectRows(query)
|
|
149
|
+
} catch (error) {
|
|
150
|
+
console.error(`${_logPrefix}#GetSTSHistoGeneric: Error: [${error}]`.red);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
#GetSTSHistoGenericServiceOld = async (filterClause: string, groupClause: string): Promise<any> => {
|
|
137
155
|
try {
|
|
138
156
|
const query = `import "math"
|
|
139
157
|
|
|
140
158
|
dostshistoex = (q, d) =>
|
|
141
159
|
from(bucket: "${this.options.bucket}")
|
|
142
160
|
|> range(start: d)
|
|
143
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
144
|
-
|> filter(fn: (r) => r["_field"] == q
|
|
161
|
+
|> filter(fn: (r) => r["_measurement"] == "service")
|
|
162
|
+
|> filter(fn: (r) => r["_field"] == q ${filterClause})
|
|
145
163
|
|> ${groupClause}
|
|
146
164
|
|> histogram(bins: [0.0, 10.0, 20.0, 50.0, 100.0, 1000.0, 50000.0, math.mInf(sign: 1) ])
|
|
147
165
|
|> difference()
|
|
@@ -159,14 +177,46 @@ data
|
|
|
159
177
|
}
|
|
160
178
|
}
|
|
161
179
|
|
|
180
|
+
|
|
162
181
|
// Quantile metrics
|
|
163
|
-
#GetSTSQuantileGenericService = async (
|
|
182
|
+
#GetSTSQuantileGenericService = async (filterClause: string, groupClause: string): Promise<any> => {
|
|
183
|
+
try {
|
|
184
|
+
const query = `data = from(bucket: "${this.options.bucket}")
|
|
185
|
+
|> range(start: -10m)
|
|
186
|
+
|> filter(fn: (r) => r["_measurement"] == "service" and (r["_field"] == "latency" or
|
|
187
|
+
r["_field"] == "duration" or
|
|
188
|
+
r["_field"] == "cpu" or
|
|
189
|
+
r["_field"] == "systemcpu") ${filterClause})
|
|
190
|
+
|> ${groupClause}
|
|
191
|
+
|> aggregateWindow(every: 5s, fn: max, createEmpty: false)
|
|
192
|
+
|
|
193
|
+
dostsquantileex = (q) =>
|
|
194
|
+
data
|
|
195
|
+
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
196
|
+
|> set(key: "quantile", value: string(v:q))
|
|
197
|
+
|> group(columns: ["quantile"])
|
|
198
|
+
|
|
199
|
+
union(tables: [
|
|
200
|
+
dostsquantileex(q: 0.5),
|
|
201
|
+
dostsquantileex(q: 0.8),
|
|
202
|
+
dostsquantileex(q: 0.9),
|
|
203
|
+
dostsquantileex(q: 0.95),
|
|
204
|
+
dostsquantileex(q: 0.99)
|
|
205
|
+
])`;
|
|
206
|
+
|
|
207
|
+
return this.queryApi.collectRows(query)
|
|
208
|
+
} catch (error) {
|
|
209
|
+
console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
#GetSTSQuantileGenericServiceOld = async (filterClause: string, groupClause: string): Promise<any> => {
|
|
164
214
|
try {
|
|
165
215
|
const query = `dostsquantileex = (q, d, i, f) =>
|
|
166
216
|
from(bucket: "${this.options.bucket}")
|
|
167
217
|
|> range(start: d)
|
|
168
|
-
|> filter(fn: (r) => r["_measurement"] == "
|
|
169
|
-
|> filter(fn: (r) => r["_field"] == f
|
|
218
|
+
|> filter(fn: (r) => r["_measurement"] == "service")
|
|
219
|
+
|> filter(fn: (r) => r["_field"] == f ${filterClause})
|
|
170
220
|
|> ${groupClause}
|
|
171
221
|
|> aggregateWindow(every: i, fn: max, createEmpty: false)
|
|
172
222
|
|> quantile(q: q, method: "estimate_tdigest", compression: 1000.0)
|
|
@@ -194,7 +244,7 @@ data
|
|
|
194
244
|
console.error(`${_logPrefix}#GetSTSQuantileGeneric: Error: [${error}]`.red);
|
|
195
245
|
}
|
|
196
246
|
}
|
|
197
|
-
|
|
247
|
+
|
|
198
248
|
// Metric queries -------------------------------------------------------------------------------------------------
|
|
199
249
|
// Root level metrics
|
|
200
250
|
async GetInfluxDBResultsRootService(subscriptionKey: ISubscriptionKey): Promise<ISubscriptionPayload> {
|
|
@@ -202,8 +252,8 @@ data
|
|
|
202
252
|
try {
|
|
203
253
|
retVal = await this.ProcessInfluxDBResults([
|
|
204
254
|
this.#GetSTSCountGenericService('', 'group(columns: ["_field"])'),
|
|
205
|
-
this.#GetSTSQuantileGenericService(
|
|
206
|
-
this.#GetSTSHistoGenericService('
|
|
255
|
+
this.#GetSTSQuantileGenericService('', 'group(columns: ["_field"])'),
|
|
256
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["_field"])')],
|
|
207
257
|
[ ])
|
|
208
258
|
} catch (error) {
|
|
209
259
|
console.error(`${_logPrefix}GetInfluxDBResultsRoot: Error: [${error}]`.red);
|
|
@@ -220,8 +270,8 @@ data
|
|
|
220
270
|
try {
|
|
221
271
|
retVal = await this.ProcessInfluxDBResults([
|
|
222
272
|
this.#GetSTSCountGenericService('', 'group(columns: ["serviceId", "_field"])'),
|
|
223
|
-
this.#GetSTSQuantileGenericService(
|
|
224
|
-
this.#GetSTSHistoGenericService('
|
|
273
|
+
this.#GetSTSQuantileGenericService('', 'group(columns: ["serviceId", "_field"])'),
|
|
274
|
+
this.#GetSTSHistoGenericService('', 'group(columns: ["serviceId", "_field"])')],
|
|
225
275
|
['serviceId'])
|
|
226
276
|
} catch (error) {
|
|
227
277
|
console.error(`${_logPrefix}GetInfluxDBResultsService: Error: [${error}]`.red);
|
|
@@ -240,8 +290,8 @@ data
|
|
|
240
290
|
const serviceId = subscriptionKey.key as string;
|
|
241
291
|
retVal = await this.ProcessInfluxDBResults([
|
|
242
292
|
this.#GetSTSCountGenericService(`and r["serviceId"] == "${serviceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "_field"])`),
|
|
243
|
-
this.#GetSTSQuantileGenericService(`
|
|
244
|
-
this.#GetSTSHistoGenericService(
|
|
293
|
+
this.#GetSTSQuantileGenericService(`and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])'),
|
|
294
|
+
this.#GetSTSHistoGenericService(`and r["serviceId"] == "${serviceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "_field"])')],
|
|
245
295
|
['serviceId', 'serviceInstanceId'])
|
|
246
296
|
} catch (error) {
|
|
247
297
|
console.error(`${_logPrefix}GetInfluxDBResultsServiceInstances: Error: [${error}]`.red);
|
|
@@ -259,8 +309,8 @@ data
|
|
|
259
309
|
const serviceInstanceId = subscriptionKey.key as string;
|
|
260
310
|
retVal = await this.ProcessInfluxDBResults([
|
|
261
311
|
this.#GetSTSCountGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, `group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])`),
|
|
262
|
-
this.#GetSTSQuantileGenericService(`
|
|
263
|
-
this.#GetSTSHistoGenericService(
|
|
312
|
+
this.#GetSTSQuantileGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])'),
|
|
313
|
+
this.#GetSTSHistoGenericService(`and r["serviceInstanceId"] == "${serviceInstanceId}"`, 'group(columns: ["serviceId", "serviceInstanceId", "serviceInstanceProcessId", "_field"])')],
|
|
264
314
|
['serviceId', 'serviceInstanceId', 'serviceInstanceProcessId'])
|
|
265
315
|
} catch (error) {
|
|
266
316
|
console.error(`${_logPrefix}GetInfluxDBResultsServiceInstance: Error: [${error}]`.red);
|
|
@@ -281,7 +331,7 @@ data
|
|
|
281
331
|
}
|
|
282
332
|
|
|
283
333
|
const { serviceId, serviceInstanceId, hostName, serviceInstanceProcessId,
|
|
284
|
-
pid, ppid,
|
|
334
|
+
pid, ppid, serviceName, serviceVersion } = instrumentPayload.context;
|
|
285
335
|
|
|
286
336
|
let systemcpu = 0.0;
|
|
287
337
|
if (instrumentPayload.instruments[Gauge.CPU_SYSTEM_LOAD_GAUGE]) {
|
|
@@ -289,6 +339,7 @@ data
|
|
|
289
339
|
}
|
|
290
340
|
|
|
291
341
|
const point = new Point('all')
|
|
342
|
+
.measurement('service')
|
|
292
343
|
// Context settings
|
|
293
344
|
.tag('serviceId', serviceId as string)
|
|
294
345
|
.tag('serviceName', serviceName as string)
|
|
@@ -298,9 +349,6 @@ data
|
|
|
298
349
|
.tag('hostName', hostName as string)
|
|
299
350
|
.tag('pid', (pid as number).toString())
|
|
300
351
|
.tag('ppid', (ppid as number).toString())
|
|
301
|
-
.tag('isMaster', (isMaster as boolean).toString())
|
|
302
|
-
.tag('isWorker', (isWorker as boolean).toString())
|
|
303
|
-
.tag('modelType', 'service')
|
|
304
352
|
// Data fields
|
|
305
353
|
.intField('requestCount', instrumentPayload.instruments[Gauge.REQUEST_COUNT_GAUGE].val)
|
|
306
354
|
.intField('errorCount', instrumentPayload.instruments[Gauge.ERROR_COUNT_GAUGE].val)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerAgent.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"influxDBManagerAgent.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerAgent.ts"],"names":[],"mappings":"AAGA,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;AAC7E,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAIpF,qBAAa,oBAAqB,SAAQ,mBAAmB;;gBAE7C,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAIvF,IAAa,SAAS,IAAI,MAAM,CAE/B;IAmLK,2BAA2B,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkB7F,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkBzF,8BAA8B,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBhG,6BAA6B,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsB/F,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsC/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerBase.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"influxDBManagerBase.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerBase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEhE,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,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;IAuCxE,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"influxDBManagerService.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"influxDBManagerService.d.ts","sourceRoot":"","sources":["../../src/influxdb/influxDBManagerService.ts"],"names":[],"mappings":"AAGA,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;AAC7E,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAIpF,qBAAa,sBAAuB,SAAQ,mBAAmB;;gBAE/C,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IAIvF,IAAa,SAAS,IAAI,MAAM,CAE/B;IAmOK,6BAA6B,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkB/F,yBAAyB,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmB3F,kCAAkC,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBpG,iCAAiC,CAAC,eAAe,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqBnG,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAoD/E"}
|