@pristine-ts/telemetry 0.0.331 → 0.0.333
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/lib/cjs/managers/tracing.manager.js +30 -6
- package/dist/lib/cjs/managers/tracing.manager.js.map +1 -1
- package/dist/lib/esm/managers/tracing.manager.js +31 -7
- package/dist/lib/esm/managers/tracing.manager.js.map +1 -1
- package/dist/types/interfaces/tracing-manager.interface.d.ts +2 -1
- package/dist/types/managers/tracing.manager.d.ts +3 -2
- package/package.json +4 -4
|
@@ -87,9 +87,10 @@ let TracingManager = class TracingManager {
|
|
|
87
87
|
* This method starts a new span.
|
|
88
88
|
* @param keyname The keyname for this new span.
|
|
89
89
|
* @param parentKeyname The keyname of the parent span.
|
|
90
|
+
* @param parentId The id of the parent span.
|
|
90
91
|
* @param context The context if there is one.
|
|
91
92
|
*/
|
|
92
|
-
startSpan(keyname, parentKeyname, context) {
|
|
93
|
+
startSpan(keyname, parentKeyname, parentId, context) {
|
|
93
94
|
var _a;
|
|
94
95
|
// Check if there's an active trace. If not, start one.
|
|
95
96
|
if (this.trace === undefined) {
|
|
@@ -109,7 +110,22 @@ let TracingManager = class TracingManager {
|
|
|
109
110
|
// Check to find the parentKeyname in our internal map of spans. If n ot, the rootSpan will be the parent since every span
|
|
110
111
|
// needs at least one parent.
|
|
111
112
|
if (parentKeyname) {
|
|
112
|
-
|
|
113
|
+
const parentSpans = this.spans[parentKeyname];
|
|
114
|
+
// If multiple spans have the same keyname we need an id to find the parent
|
|
115
|
+
if (parentSpans) {
|
|
116
|
+
if (parentSpans.length > 1) {
|
|
117
|
+
if (!parentId) {
|
|
118
|
+
this.loghandler.error("Error finding the parent span, there are multiple spans with that keyname and no id is provided.", { parentKeyname });
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
parentSpan = (_a = parentSpans.find(span => span.id === parentId)) !== null && _a !== void 0 ? _a : parentSpan;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (parentSpans.length === 1) {
|
|
125
|
+
// If only one span has the keyname we can use it
|
|
126
|
+
parentSpan = parentSpans[0];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
113
129
|
}
|
|
114
130
|
// Add the new span as a child of its parent.
|
|
115
131
|
parentSpan.addChild(span);
|
|
@@ -135,7 +151,12 @@ let TracingManager = class TracingManager {
|
|
|
135
151
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
136
152
|
span.trace = this.trace;
|
|
137
153
|
// Add it to the map of spans
|
|
138
|
-
this.spans[span.keyname]
|
|
154
|
+
if (!this.spans[span.keyname]) {
|
|
155
|
+
this.spans[span.keyname] = [span];
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.spans[span.keyname].push(span);
|
|
159
|
+
}
|
|
139
160
|
// If the tracing is deactivated, simply return the span and don't complain.
|
|
140
161
|
if (this.isActive === false) {
|
|
141
162
|
return span;
|
|
@@ -164,7 +185,10 @@ let TracingManager = class TracingManager {
|
|
|
164
185
|
if (this.spans.hasOwnProperty(keyname) === false) {
|
|
165
186
|
return;
|
|
166
187
|
}
|
|
167
|
-
this.
|
|
188
|
+
if (this.spans[keyname] && this.spans[keyname].length === 1) {
|
|
189
|
+
return this.endSpan(this.spans[keyname][0]);
|
|
190
|
+
}
|
|
191
|
+
this.loghandler.error("Error ending span by keyname since multiple spans exist with this keyname");
|
|
168
192
|
}
|
|
169
193
|
/**
|
|
170
194
|
* This methods ends the span by setting the end date and by calling the tracers.
|
|
@@ -226,7 +250,7 @@ let TracingManager = class TracingManager {
|
|
|
226
250
|
});
|
|
227
251
|
// Trace time
|
|
228
252
|
// Top 5 longest spans
|
|
229
|
-
const longestSpans = Object.values(this.spans).sort((a, b) => b.getDuration() - a.getDuration());
|
|
253
|
+
const longestSpans = Object.values(this.spans).flat(2).sort((a, b) => b.getDuration() - a.getDuration());
|
|
230
254
|
longestSpans.splice(5);
|
|
231
255
|
this.loghandler.info("Ending the trace. \n" +
|
|
232
256
|
"Trace duration: " + this.trace.getDuration() + " ms \n" +
|
|
@@ -239,7 +263,7 @@ exports.TracingManager = TracingManager;
|
|
|
239
263
|
exports.TracingManager = TracingManager = __decorate([
|
|
240
264
|
(0, common_1.moduleScoped)(telemetry_module_keyname_1.TelemetryModuleKeyname),
|
|
241
265
|
(0, common_1.tag)("TracingManagerInterface"),
|
|
242
|
-
(0, tsyringe_1.
|
|
266
|
+
(0, tsyringe_1.singleton)(),
|
|
243
267
|
(0, tsyringe_1.injectable)(),
|
|
244
268
|
__param(0, (0, tsyringe_1.injectAll)(common_1.ServiceDefinitionTagEnum.Tracer)),
|
|
245
269
|
__param(1, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { injectable,
|
|
13
|
+
import { injectable, singleton, injectAll, inject } from "tsyringe";
|
|
14
14
|
import { Trace } from "../models/trace.model";
|
|
15
15
|
import { Span } from "../models/span.model";
|
|
16
16
|
import { moduleScoped, tag, ServiceDefinitionTagEnum, TracingContext } from "@pristine-ts/common";
|
|
@@ -84,9 +84,10 @@ let TracingManager = class TracingManager {
|
|
|
84
84
|
* This method starts a new span.
|
|
85
85
|
* @param keyname The keyname for this new span.
|
|
86
86
|
* @param parentKeyname The keyname of the parent span.
|
|
87
|
+
* @param parentId The id of the parent span.
|
|
87
88
|
* @param context The context if there is one.
|
|
88
89
|
*/
|
|
89
|
-
startSpan(keyname, parentKeyname, context) {
|
|
90
|
+
startSpan(keyname, parentKeyname, parentId, context) {
|
|
90
91
|
var _a;
|
|
91
92
|
// Check if there's an active trace. If not, start one.
|
|
92
93
|
if (this.trace === undefined) {
|
|
@@ -106,7 +107,22 @@ let TracingManager = class TracingManager {
|
|
|
106
107
|
// Check to find the parentKeyname in our internal map of spans. If n ot, the rootSpan will be the parent since every span
|
|
107
108
|
// needs at least one parent.
|
|
108
109
|
if (parentKeyname) {
|
|
109
|
-
|
|
110
|
+
const parentSpans = this.spans[parentKeyname];
|
|
111
|
+
// If multiple spans have the same keyname we need an id to find the parent
|
|
112
|
+
if (parentSpans) {
|
|
113
|
+
if (parentSpans.length > 1) {
|
|
114
|
+
if (!parentId) {
|
|
115
|
+
this.loghandler.error("Error finding the parent span, there are multiple spans with that keyname and no id is provided.", { parentKeyname });
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
parentSpan = (_a = parentSpans.find(span => span.id === parentId)) !== null && _a !== void 0 ? _a : parentSpan;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else if (parentSpans.length === 1) {
|
|
122
|
+
// If only one span has the keyname we can use it
|
|
123
|
+
parentSpan = parentSpans[0];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
110
126
|
}
|
|
111
127
|
// Add the new span as a child of its parent.
|
|
112
128
|
parentSpan.addChild(span);
|
|
@@ -132,7 +148,12 @@ let TracingManager = class TracingManager {
|
|
|
132
148
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
133
149
|
span.trace = this.trace;
|
|
134
150
|
// Add it to the map of spans
|
|
135
|
-
this.spans[span.keyname]
|
|
151
|
+
if (!this.spans[span.keyname]) {
|
|
152
|
+
this.spans[span.keyname] = [span];
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
this.spans[span.keyname].push(span);
|
|
156
|
+
}
|
|
136
157
|
// If the tracing is deactivated, simply return the span and don't complain.
|
|
137
158
|
if (this.isActive === false) {
|
|
138
159
|
return span;
|
|
@@ -161,7 +182,10 @@ let TracingManager = class TracingManager {
|
|
|
161
182
|
if (this.spans.hasOwnProperty(keyname) === false) {
|
|
162
183
|
return;
|
|
163
184
|
}
|
|
164
|
-
this.
|
|
185
|
+
if (this.spans[keyname] && this.spans[keyname].length === 1) {
|
|
186
|
+
return this.endSpan(this.spans[keyname][0]);
|
|
187
|
+
}
|
|
188
|
+
this.loghandler.error("Error ending span by keyname since multiple spans exist with this keyname");
|
|
165
189
|
}
|
|
166
190
|
/**
|
|
167
191
|
* This methods ends the span by setting the end date and by calling the tracers.
|
|
@@ -223,7 +247,7 @@ let TracingManager = class TracingManager {
|
|
|
223
247
|
});
|
|
224
248
|
// Trace time
|
|
225
249
|
// Top 5 longest spans
|
|
226
|
-
const longestSpans = Object.values(this.spans).sort((a, b) => b.getDuration() - a.getDuration());
|
|
250
|
+
const longestSpans = Object.values(this.spans).flat(2).sort((a, b) => b.getDuration() - a.getDuration());
|
|
227
251
|
longestSpans.splice(5);
|
|
228
252
|
this.loghandler.info("Ending the trace. \n" +
|
|
229
253
|
"Trace duration: " + this.trace.getDuration() + " ms \n" +
|
|
@@ -235,7 +259,7 @@ let TracingManager = class TracingManager {
|
|
|
235
259
|
TracingManager = __decorate([
|
|
236
260
|
moduleScoped(TelemetryModuleKeyname),
|
|
237
261
|
tag("TracingManagerInterface"),
|
|
238
|
-
|
|
262
|
+
singleton(),
|
|
239
263
|
injectable(),
|
|
240
264
|
__param(0, injectAll(ServiceDefinitionTagEnum.Tracer)),
|
|
241
265
|
__param(1, inject("LogHandlerInterface")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,10 @@ export interface TracingManagerInterface {
|
|
|
25
25
|
* This method starts a new span.
|
|
26
26
|
* @param keyname The keyname for this new span.
|
|
27
27
|
* @param parentKeyname The keyname of the parent span.
|
|
28
|
+
* @param parentId The id of the parent span.
|
|
28
29
|
* @param context The context if there is one.
|
|
29
30
|
*/
|
|
30
|
-
startSpan(keyname: string, parentKeyname?: string, context?: {
|
|
31
|
+
startSpan(keyname: string, parentKeyname?: string, parentId?: string, context?: {
|
|
31
32
|
[key: string]: string;
|
|
32
33
|
}): Span;
|
|
33
34
|
/**
|
|
@@ -23,7 +23,7 @@ export declare class TracingManager implements TracingManagerInterface {
|
|
|
23
23
|
* This object contains a map of all the spans sorted by their keyname.
|
|
24
24
|
*/
|
|
25
25
|
spans: {
|
|
26
|
-
[keyname: string]: Span;
|
|
26
|
+
[keyname: string]: Span[];
|
|
27
27
|
};
|
|
28
28
|
/**
|
|
29
29
|
* The Tracing Manager provides methods to help with tracing.
|
|
@@ -50,9 +50,10 @@ export declare class TracingManager implements TracingManagerInterface {
|
|
|
50
50
|
* This method starts a new span.
|
|
51
51
|
* @param keyname The keyname for this new span.
|
|
52
52
|
* @param parentKeyname The keyname of the parent span.
|
|
53
|
+
* @param parentId The id of the parent span.
|
|
53
54
|
* @param context The context if there is one.
|
|
54
55
|
*/
|
|
55
|
-
startSpan(keyname: string, parentKeyname?: string, context?: any): Span;
|
|
56
|
+
startSpan(keyname: string, parentKeyname?: string, parentId?: string, context?: any): Span;
|
|
56
57
|
/**
|
|
57
58
|
* This methods adds an already created Span to the trace. It assumes that it its hierarchy is correct.
|
|
58
59
|
* @param span The span to add.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pristine-ts/telemetry",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.333",
|
|
4
4
|
"description": "",
|
|
5
5
|
"module": "dist/lib/esm/telemetry.module.js",
|
|
6
6
|
"main": "dist/lib/cjs/telemetry.module.js",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"test:cov": "jest --coverage"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@pristine-ts/common": "^0.0.
|
|
16
|
-
"@pristine-ts/logging": "^0.0.
|
|
15
|
+
"@pristine-ts/common": "^0.0.333",
|
|
16
|
+
"@pristine-ts/logging": "^0.0.333",
|
|
17
17
|
"uuid": "^9.0.1"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"src/*.{js,ts}"
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "2b00573f57cf7d98c8f0713f1fa4629f14071cdb"
|
|
65
65
|
}
|