@pristine-ts/telemetry 0.0.194 → 0.0.198
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/enums/span-keyname.enum.js +3 -0
- package/dist/lib/cjs/enums/span-keyname.enum.js.map +1 -1
- package/dist/lib/cjs/managers/tracing.manager.js +26 -15
- package/dist/lib/cjs/managers/tracing.manager.js.map +1 -1
- package/dist/lib/cjs/models/span.model.js +33 -1
- package/dist/lib/cjs/models/span.model.js.map +1 -1
- package/dist/lib/cjs/models/trace.model.js +17 -0
- package/dist/lib/cjs/models/trace.model.js.map +1 -1
- package/dist/lib/cjs/telemetry.module.js +12 -3
- package/dist/lib/cjs/telemetry.module.js.map +1 -1
- package/dist/lib/cjs/tracers/basic.tracer.js +1 -0
- package/dist/lib/cjs/tracers/basic.tracer.js.map +1 -1
- package/dist/lib/esm/enums/span-keyname.enum.js +3 -0
- package/dist/lib/esm/enums/span-keyname.enum.js.map +1 -1
- package/dist/lib/esm/managers/tracing.manager.js +26 -15
- package/dist/lib/esm/managers/tracing.manager.js.map +1 -1
- package/dist/lib/esm/models/span.model.js +33 -1
- package/dist/lib/esm/models/span.model.js.map +1 -1
- package/dist/lib/esm/models/trace.model.js +17 -0
- package/dist/lib/esm/models/trace.model.js.map +1 -1
- package/dist/lib/esm/telemetry.module.js +12 -3
- package/dist/lib/esm/telemetry.module.js.map +1 -1
- package/dist/lib/esm/tracers/basic.tracer.js +1 -0
- package/dist/lib/esm/tracers/basic.tracer.js.map +1 -1
- package/dist/types/enums/span-keyname.enum.d.ts +3 -0
- package/dist/types/interfaces/tracer.interface.d.ts +15 -0
- package/dist/types/interfaces/tracing-manager.interface.d.ts +35 -0
- package/dist/types/managers/tracing.manager.d.ts +26 -15
- package/dist/types/models/span.model.d.ts +48 -1
- package/dist/types/models/trace.model.d.ts +26 -0
- package/dist/types/telemetry.module.d.ts +1 -1
- package/dist/types/tracers/basic.tracer.d.ts +1 -0
- package/package.json +4 -4
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SpanKeynameEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This enum is for the different span names that are integrated in Pristine.
|
|
6
|
+
*/
|
|
4
7
|
var SpanKeynameEnum;
|
|
5
8
|
(function (SpanKeynameEnum) {
|
|
6
9
|
SpanKeynameEnum["ChildContainerCreation"] = "child.container.creation";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/span-keyname.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAuBX;AAvBD,WAAY,eAAe;IACvB,sEAAmD,CAAA;IACnD,+EAA4D,CAAA;IAC5D,4EAAyD,CAAA;IACzD,qDAAkC,CAAA;IAClC,+DAA4C,CAAA;IAC5C,iFAA8D,CAAA;IAC9D,mFAAgE,CAAA;IAChE,kGAA+E,CAAA;IAC/E,oGAAiF,CAAA;IACjF,iDAA8B,CAAA;IAC9B,iEAA8C,CAAA;IAC9C,iEAA8C,CAAA;IAC9C,6FAA0E,CAAA;IAC1E,yDAAsC,CAAA;IACtC,+DAA4C,CAAA;IAC5C,iEAA8C,CAAA;IAC9C,mDAAgC,CAAA;IAChC,0EAAuD,CAAA;IACvD,gFAA6D,CAAA;IAC7D,gFAA6D,CAAA;IAC7D,sEAAmD,CAAA;IACnD,+CAA4B,CAAA;AAChC,CAAC,EAvBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAuB1B"}
|
|
1
|
+
{"version":3,"file":"span-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/span-keyname.enum.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,eAuBX;AAvBD,WAAY,eAAe;IACvB,sEAAmD,CAAA;IACnD,+EAA4D,CAAA;IAC5D,4EAAyD,CAAA;IACzD,qDAAkC,CAAA;IAClC,+DAA4C,CAAA;IAC5C,iFAA8D,CAAA;IAC9D,mFAAgE,CAAA;IAChE,kGAA+E,CAAA;IAC/E,oGAAiF,CAAA;IACjF,iDAA8B,CAAA;IAC9B,iEAA8C,CAAA;IAC9C,iEAA8C,CAAA;IAC9C,6FAA0E,CAAA;IAC1E,yDAAsC,CAAA;IACtC,+DAA4C,CAAA;IAC5C,iEAA8C,CAAA;IAC9C,mDAAgC,CAAA;IAChC,0EAAuD,CAAA;IACvD,gFAA6D,CAAA;IAC7D,gFAA6D,CAAA;IAC7D,sEAAmD,CAAA;IACnD,+CAA4B,CAAA;AAChC,CAAC,EAvBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAuB1B"}
|
|
@@ -19,7 +19,23 @@ const span_model_1 = require("../models/span.model");
|
|
|
19
19
|
const common_1 = require("@pristine-ts/common");
|
|
20
20
|
const span_keyname_enum_1 = require("../enums/span-keyname.enum");
|
|
21
21
|
const telemetry_module_keyname_1 = require("../telemetry.module.keyname");
|
|
22
|
+
/**
|
|
23
|
+
* The Tracing Manager provides methods to help with tracing.
|
|
24
|
+
* It is tagged and can be injected using TracingManagerInterface which facilitates mocking.
|
|
25
|
+
* It is module scoped to the TelemetryModuleKeyname.
|
|
26
|
+
*/
|
|
22
27
|
let TracingManager = class TracingManager {
|
|
28
|
+
/**
|
|
29
|
+
* The Tracing Manager provides methods to help with tracing.
|
|
30
|
+
* It is tagged and can be injected using TracingManagerInterface which facilitates mocking.
|
|
31
|
+
* It is module scoped to the TelemetryModuleKeyname.
|
|
32
|
+
* @param tracers The tracers to use. All services tagged with ServiceDefinitionTagEnum.Tracer will be injected here.
|
|
33
|
+
* @param loghandler The log handler to output logs.
|
|
34
|
+
* @param isActive Whether or not tracing is activated.
|
|
35
|
+
* @param debug Whether or not tracing is in debug mode, meaning that it should output logs with the debug severity about the trace and spans.
|
|
36
|
+
* This can be set to false to prevent having to much logs for every single span created.
|
|
37
|
+
* @param tracingContext The tracing context.
|
|
38
|
+
*/
|
|
23
39
|
constructor(tracers, loghandler, isActive, debug, tracingContext) {
|
|
24
40
|
this.tracers = tracers;
|
|
25
41
|
this.loghandler = loghandler;
|
|
@@ -33,10 +49,9 @@ let TracingManager = class TracingManager {
|
|
|
33
49
|
}
|
|
34
50
|
/**
|
|
35
51
|
* This methods starts the Tracing. This should be the first method called before doing anything else.
|
|
36
|
-
*
|
|
37
|
-
* @param
|
|
38
|
-
* @param
|
|
39
|
-
* @param context
|
|
52
|
+
* @param spanRootKeyname The keyname of the span at the root.
|
|
53
|
+
* @param traceId The trace id if there is one.
|
|
54
|
+
* @param context The context if there is one.
|
|
40
55
|
*/
|
|
41
56
|
startTracing(spanRootKeyname = span_keyname_enum_1.SpanKeynameEnum.RootExecution, traceId, context) {
|
|
42
57
|
this.trace = new trace_model_1.Trace(traceId, context);
|
|
@@ -70,10 +85,9 @@ let TracingManager = class TracingManager {
|
|
|
70
85
|
}
|
|
71
86
|
/**
|
|
72
87
|
* This method starts a new span.
|
|
73
|
-
*
|
|
74
|
-
* @param keyname
|
|
75
|
-
* @param
|
|
76
|
-
* @param context
|
|
88
|
+
* @param keyname The keyname for this new span.
|
|
89
|
+
* @param parentKeyname The keyname of the parent span.
|
|
90
|
+
* @param context The context if there is one.
|
|
77
91
|
*/
|
|
78
92
|
startSpan(keyname, parentKeyname, context) {
|
|
79
93
|
var _a;
|
|
@@ -97,8 +111,8 @@ let TracingManager = class TracingManager {
|
|
|
97
111
|
return span;
|
|
98
112
|
}
|
|
99
113
|
/**
|
|
100
|
-
* This methods adds an already created Span. It assumes that it its hierarchy is correct.
|
|
101
|
-
* @param span
|
|
114
|
+
* This methods adds an already created Span to the trace. It assumes that it its hierarchy is correct.
|
|
115
|
+
* @param span The span to add.
|
|
102
116
|
*/
|
|
103
117
|
addSpan(span) {
|
|
104
118
|
// Check if there's an active trace. If not, log an error and return;
|
|
@@ -133,8 +147,7 @@ let TracingManager = class TracingManager {
|
|
|
133
147
|
}
|
|
134
148
|
/**
|
|
135
149
|
* This method ends the span using a keyname.
|
|
136
|
-
*
|
|
137
|
-
* @param keyname
|
|
150
|
+
* @param keyname The keyname of the span to end.
|
|
138
151
|
*/
|
|
139
152
|
endSpanKeyname(keyname) {
|
|
140
153
|
if (this.spans.hasOwnProperty(keyname) === false) {
|
|
@@ -144,10 +157,8 @@ let TracingManager = class TracingManager {
|
|
|
144
157
|
}
|
|
145
158
|
/**
|
|
146
159
|
* This methods ends the span by setting the end date and by calling the tracers.
|
|
147
|
-
*
|
|
148
160
|
* It will also end the trace if the rootspan is being ended.
|
|
149
|
-
*
|
|
150
|
-
* @param span
|
|
161
|
+
* @param span The span to end.
|
|
151
162
|
*/
|
|
152
163
|
endSpan(span) {
|
|
153
164
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA0E;AAC1E,uDAA4C;AAC5C,qDAA0C;AAE1C,gDAAgG;
|
|
1
|
+
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,31 +2,63 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Span = void 0;
|
|
4
4
|
const uuid_1 = require("uuid");
|
|
5
|
+
/**
|
|
6
|
+
* This model represents a span.
|
|
7
|
+
*/
|
|
5
8
|
class Span {
|
|
9
|
+
/**
|
|
10
|
+
* This model represents a span.
|
|
11
|
+
* @param keyname The keyname of the span.
|
|
12
|
+
* @param id The unique id of the span.
|
|
13
|
+
* @param context The context to associate with the span.
|
|
14
|
+
*/
|
|
6
15
|
constructor(keyname, id, context) {
|
|
7
16
|
this.keyname = keyname;
|
|
17
|
+
/**
|
|
18
|
+
* The timestamp in milliseconds at which the span was started.
|
|
19
|
+
*/
|
|
8
20
|
this.startDate = Date.now();
|
|
21
|
+
/**
|
|
22
|
+
* The children spans.
|
|
23
|
+
*/
|
|
9
24
|
this.children = [];
|
|
25
|
+
/**
|
|
26
|
+
* The context associated with the span.
|
|
27
|
+
*/
|
|
10
28
|
this.context = {};
|
|
29
|
+
/**
|
|
30
|
+
* Whether or not the span is in progress, meaning it has not ended.
|
|
31
|
+
*/
|
|
11
32
|
this.inProgress = true;
|
|
12
33
|
this.id = id !== null && id !== void 0 ? id : uuid_1.v4();
|
|
13
34
|
this.context = context !== null && context !== void 0 ? context : {};
|
|
14
35
|
}
|
|
15
36
|
/**
|
|
16
|
-
* This returns the duration of the span in
|
|
37
|
+
* This method returns the duration of the span in milliseconds.
|
|
17
38
|
*/
|
|
18
39
|
getDuration() {
|
|
19
40
|
var _a;
|
|
20
41
|
return ((_a = this.endDate) !== null && _a !== void 0 ? _a : Date.now()) - this.startDate;
|
|
21
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* This method ends the span.
|
|
45
|
+
*/
|
|
22
46
|
end() {
|
|
23
47
|
var _a;
|
|
24
48
|
(_a = this.tracingManager) === null || _a === void 0 ? void 0 : _a.endSpan(this);
|
|
25
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* This method sets the trace for the span and all of its children.
|
|
52
|
+
* @param trace The trace the span should be attached to.
|
|
53
|
+
*/
|
|
26
54
|
setTrace(trace) {
|
|
27
55
|
this.trace = trace;
|
|
28
56
|
this.children.forEach(childSpan => childSpan.setTrace(trace));
|
|
29
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* This method adds a child span to the current span. It only adds it if it's not already part of the children.
|
|
60
|
+
* @param span The span to add as a child.
|
|
61
|
+
*/
|
|
30
62
|
addChild(span) {
|
|
31
63
|
const existingChildSpan = this.children.find(childSpan => childSpan.id === span.id);
|
|
32
64
|
if (existingChildSpan) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.model.js","sourceRoot":"","sources":["../../../../src/models/span.model.ts"],"names":[],"mappings":";;;AAEA,+BAAoC;AAEpC,MAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"span.model.js","sourceRoot":"","sources":["../../../../src/models/span.model.ts"],"names":[],"mappings":";;;AAEA,+BAAoC;AAEpC;;GAEG;AACH,MAAa,IAAI;IA8Cb;;;;;OAKG;IACH,YAA0B,OAAe,EAAE,EAAW,EAAE,OAAmC;QAAjE,YAAO,GAAP,OAAO,CAAQ;QApCzC;;WAEG;QACI,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAYtC;;WAEG;QACI,aAAQ,GAAW,EAAE,CAAC;QAE7B;;WAEG;QACI,YAAO,GAA8B,EAAE,CAAC;QAE/C;;WAEG;QACI,eAAU,GAAG,IAAI,CAAC;QASrB,IAAI,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,SAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,WAAW;;QACd,OAAO,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,GAAG;;QACN,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,KAAY;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,IAAU;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpF,IAAG,iBAAiB,EAAE;YAClB,OAAO;SACV;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACJ;AA/FD,oBA+FC"}
|
|
@@ -2,10 +2,27 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Trace = void 0;
|
|
4
4
|
const uuid_1 = require("uuid");
|
|
5
|
+
/**
|
|
6
|
+
* This model represents a trace.
|
|
7
|
+
*/
|
|
5
8
|
class Trace {
|
|
9
|
+
/**
|
|
10
|
+
* This model represents a trace.
|
|
11
|
+
* @param id The unique id of the trace.
|
|
12
|
+
* @param context The context associated with the trace.
|
|
13
|
+
*/
|
|
6
14
|
constructor(id, context) {
|
|
15
|
+
/**
|
|
16
|
+
* The timestamp in milliseconds at which the trace was started.
|
|
17
|
+
*/
|
|
7
18
|
this.startDate = Date.now();
|
|
19
|
+
/**
|
|
20
|
+
* The context associated with the trace.
|
|
21
|
+
*/
|
|
8
22
|
this.context = {};
|
|
23
|
+
/**
|
|
24
|
+
* Whether or not the trace was ended.
|
|
25
|
+
*/
|
|
9
26
|
this.hasEnded = false;
|
|
10
27
|
this.id = id !== null && id !== void 0 ? id : uuid_1.v4();
|
|
11
28
|
this.context = context !== null && context !== void 0 ? context : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.model.js","sourceRoot":"","sources":["../../../../src/models/trace.model.ts"],"names":[],"mappings":";;;AACA,+BAAoC;AAEpC,MAAa,KAAK;
|
|
1
|
+
{"version":3,"file":"trace.model.js","sourceRoot":"","sources":["../../../../src/models/trace.model.ts"],"names":[],"mappings":";;;AACA,+BAAoC;AAEpC;;GAEG;AACH,MAAa,KAAK;IA+Bd;;;;OAIG;IACH,YAAmB,EAAW,EAAE,OAAmC;QA9BnE;;WAEG;QACI,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAYtC;;WAEG;QACI,YAAO,GAA+B,EAAE,CAAC;QAEhD;;WAEG;QACI,aAAQ,GAAY,KAAK,CAAC;QAQ7B,IAAI,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,SAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,WAAW;;QACd,OAAO,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzD,CAAC;CACJ;AA/CD,sBA+CC"}
|
|
@@ -19,7 +19,7 @@ __exportStar(require("./enums/enums"), exports);
|
|
|
19
19
|
__exportStar(require("./interfaces/interfaces"), exports);
|
|
20
20
|
__exportStar(require("./managers/managers"), exports);
|
|
21
21
|
__exportStar(require("./models/models"), exports);
|
|
22
|
-
__exportStar(require("./tracers/
|
|
22
|
+
__exportStar(require("./tracers/tracers"), exports);
|
|
23
23
|
exports.TelemetryModule = {
|
|
24
24
|
keyname: telemetry_module_keyname_1.TelemetryModuleKeyname,
|
|
25
25
|
importModules: [
|
|
@@ -27,7 +27,11 @@ exports.TelemetryModule = {
|
|
|
27
27
|
logging_1.LoggingModule,
|
|
28
28
|
],
|
|
29
29
|
providerRegistrations: [],
|
|
30
|
-
configurationDefinitions: [
|
|
30
|
+
configurationDefinitions: [
|
|
31
|
+
/**
|
|
32
|
+
* Whether or not tracing is activated.
|
|
33
|
+
*/
|
|
34
|
+
{
|
|
31
35
|
parameterName: telemetry_module_keyname_1.TelemetryModuleKeyname + ".active",
|
|
32
36
|
defaultValue: true,
|
|
33
37
|
isRequired: false,
|
|
@@ -35,6 +39,10 @@ exports.TelemetryModule = {
|
|
|
35
39
|
new configuration_1.BooleanResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_TRACING_IS_ACTIVE")),
|
|
36
40
|
]
|
|
37
41
|
},
|
|
42
|
+
/**
|
|
43
|
+
* Whether or not tracing is in debug mode, meaning that it should output logs with the debug severity about the trace and spans.
|
|
44
|
+
* This can be set to false to prevent having to much logs for every single span created.
|
|
45
|
+
*/
|
|
38
46
|
{
|
|
39
47
|
parameterName: telemetry_module_keyname_1.TelemetryModuleKeyname + ".debug",
|
|
40
48
|
defaultValue: false,
|
|
@@ -42,6 +50,7 @@ exports.TelemetryModule = {
|
|
|
42
50
|
defaultResolvers: [
|
|
43
51
|
new configuration_1.BooleanResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_TRACING_DEBUG")),
|
|
44
52
|
]
|
|
45
|
-
}
|
|
53
|
+
}
|
|
54
|
+
]
|
|
46
55
|
};
|
|
47
56
|
//# sourceMappingURL=telemetry.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.module.js","sourceRoot":"","sources":["../../../src/telemetry.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,yEAAkE;AAClE,kDAAmD;AACnD,8DAAwF;AACxF,gDAAiD;AAEjD,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,kDAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"telemetry.module.js","sourceRoot":"","sources":["../../../src/telemetry.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,yEAAkE;AAClE,kDAAmD;AACnD,8DAAwF;AACxF,gDAAiD;AAEjD,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAErB,QAAA,eAAe,GAAoB;IAC5C,OAAO,EAAE,iDAAsB;IAC/B,aAAa,EAAE;QACX,qBAAY;QACZ,uBAAa;KAChB;IACD,qBAAqB,EAAE,EACtB;IACD,wBAAwB,EAAE;QACtB;;WAEG;QACH;YACI,aAAa,EAAE,iDAAsB,GAAG,SAAS;YACjD,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,4BAA4B,CAAC,CAAC;aACrF;SACJ;QACD;;;WAGG;QACH;YACI,aAAa,EAAE,iDAAsB,GAAG,QAAQ;YAChD,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,wBAAwB,CAAC,CAAC;aACjF;SACJ;KACJ;CACJ,CAAA"}
|
|
@@ -12,6 +12,7 @@ const common_1 = require("@pristine-ts/common");
|
|
|
12
12
|
const stream_1 = require("stream");
|
|
13
13
|
/**
|
|
14
14
|
* We need this to have at least one tracer so the @injectAll(ServiceDefinitionTagEnum.Tracer) does not fail
|
|
15
|
+
* Until there's a fix for: https://github.com/microsoft/tsyringe/issues/63
|
|
15
16
|
*/
|
|
16
17
|
let XrayTracer = class XrayTracer {
|
|
17
18
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.tracer.js","sourceRoot":"","sources":["../../../../src/tracers/basic.tracer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AACpC,gDAAmE;AACnE,mCAAgC;AAGhC
|
|
1
|
+
{"version":3,"file":"basic.tracer.js","sourceRoot":"","sources":["../../../../src/tracers/basic.tracer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AACpC,gDAAmE;AACnE,mCAAgC;AAGhC;;;GAGG;AAGH,IAAa,UAAU,GAAvB,MAAa,UAAU;IAAvB;QACI,sBAAiB,GAAc,IAAI,iBAAQ,CAAC;YACxC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,oBAAe,GAAc,IAAI,iBAAQ,CAAC;YACtC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,uBAAkB,GAAc,IAAI,iBAAQ,CAAC;YACzC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,qBAAgB,GAAc,IAAI,iBAAQ,CAAC;YACvC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CAAA,CAAA;AAzBY,UAAU;IAFtB,YAAG,CAAC,iCAAwB,CAAC,MAAM,CAAC;IACpC,qBAAU,EAAE;GACA,UAAU,CAyBtB;AAzBY,gCAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/span-keyname.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAuBX;AAvBD,WAAY,eAAe;IACvB,sEAAmD,CAAA;IACnD,+EAA4D,CAAA;IAC5D,4EAAyD,CAAA;IACzD,qDAAkC,CAAA;IAClC,+DAA4C,CAAA;IAC5C,iFAA8D,CAAA;IAC9D,mFAAgE,CAAA;IAChE,kGAA+E,CAAA;IAC/E,oGAAiF,CAAA;IACjF,iDAA8B,CAAA;IAC9B,iEAA8C,CAAA;IAC9C,iEAA8C,CAAA;IAC9C,6FAA0E,CAAA;IAC1E,yDAAsC,CAAA;IACtC,+DAA4C,CAAA;IAC5C,iEAA8C,CAAA;IAC9C,mDAAgC,CAAA;IAChC,0EAAuD,CAAA;IACvD,gFAA6D,CAAA;IAC7D,gFAA6D,CAAA;IAC7D,sEAAmD,CAAA;IACnD,+CAA4B,CAAA;AAChC,CAAC,EAvBW,eAAe,KAAf,eAAe,QAuB1B"}
|
|
1
|
+
{"version":3,"file":"span-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/span-keyname.enum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,eAuBX;AAvBD,WAAY,eAAe;IACvB,sEAAmD,CAAA;IACnD,+EAA4D,CAAA;IAC5D,4EAAyD,CAAA;IACzD,qDAAkC,CAAA;IAClC,+DAA4C,CAAA;IAC5C,iFAA8D,CAAA;IAC9D,mFAAgE,CAAA;IAChE,kGAA+E,CAAA;IAC/E,oGAAiF,CAAA;IACjF,iDAA8B,CAAA;IAC9B,iEAA8C,CAAA;IAC9C,iEAA8C,CAAA;IAC9C,6FAA0E,CAAA;IAC1E,yDAAsC,CAAA;IACtC,+DAA4C,CAAA;IAC5C,iEAA8C,CAAA;IAC9C,mDAAgC,CAAA;IAChC,0EAAuD,CAAA;IACvD,gFAA6D,CAAA;IAC7D,gFAA6D,CAAA;IAC7D,sEAAmD,CAAA;IACnD,+CAA4B,CAAA;AAChC,CAAC,EAvBW,eAAe,KAAf,eAAe,QAuB1B"}
|
|
@@ -16,7 +16,23 @@ import { Span } from "../models/span.model";
|
|
|
16
16
|
import { moduleScoped, tag, ServiceDefinitionTagEnum, TracingContext } from "@pristine-ts/common";
|
|
17
17
|
import { SpanKeynameEnum } from "../enums/span-keyname.enum";
|
|
18
18
|
import { TelemetryModuleKeyname } from "../telemetry.module.keyname";
|
|
19
|
+
/**
|
|
20
|
+
* The Tracing Manager provides methods to help with tracing.
|
|
21
|
+
* It is tagged and can be injected using TracingManagerInterface which facilitates mocking.
|
|
22
|
+
* It is module scoped to the TelemetryModuleKeyname.
|
|
23
|
+
*/
|
|
19
24
|
let TracingManager = class TracingManager {
|
|
25
|
+
/**
|
|
26
|
+
* The Tracing Manager provides methods to help with tracing.
|
|
27
|
+
* It is tagged and can be injected using TracingManagerInterface which facilitates mocking.
|
|
28
|
+
* It is module scoped to the TelemetryModuleKeyname.
|
|
29
|
+
* @param tracers The tracers to use. All services tagged with ServiceDefinitionTagEnum.Tracer will be injected here.
|
|
30
|
+
* @param loghandler The log handler to output logs.
|
|
31
|
+
* @param isActive Whether or not tracing is activated.
|
|
32
|
+
* @param debug Whether or not tracing is in debug mode, meaning that it should output logs with the debug severity about the trace and spans.
|
|
33
|
+
* This can be set to false to prevent having to much logs for every single span created.
|
|
34
|
+
* @param tracingContext The tracing context.
|
|
35
|
+
*/
|
|
20
36
|
constructor(tracers, loghandler, isActive, debug, tracingContext) {
|
|
21
37
|
this.tracers = tracers;
|
|
22
38
|
this.loghandler = loghandler;
|
|
@@ -30,10 +46,9 @@ let TracingManager = class TracingManager {
|
|
|
30
46
|
}
|
|
31
47
|
/**
|
|
32
48
|
* This methods starts the Tracing. This should be the first method called before doing anything else.
|
|
33
|
-
*
|
|
34
|
-
* @param
|
|
35
|
-
* @param
|
|
36
|
-
* @param context
|
|
49
|
+
* @param spanRootKeyname The keyname of the span at the root.
|
|
50
|
+
* @param traceId The trace id if there is one.
|
|
51
|
+
* @param context The context if there is one.
|
|
37
52
|
*/
|
|
38
53
|
startTracing(spanRootKeyname = SpanKeynameEnum.RootExecution, traceId, context) {
|
|
39
54
|
this.trace = new Trace(traceId, context);
|
|
@@ -67,10 +82,9 @@ let TracingManager = class TracingManager {
|
|
|
67
82
|
}
|
|
68
83
|
/**
|
|
69
84
|
* This method starts a new span.
|
|
70
|
-
*
|
|
71
|
-
* @param keyname
|
|
72
|
-
* @param
|
|
73
|
-
* @param context
|
|
85
|
+
* @param keyname The keyname for this new span.
|
|
86
|
+
* @param parentKeyname The keyname of the parent span.
|
|
87
|
+
* @param context The context if there is one.
|
|
74
88
|
*/
|
|
75
89
|
startSpan(keyname, parentKeyname, context) {
|
|
76
90
|
var _a;
|
|
@@ -94,8 +108,8 @@ let TracingManager = class TracingManager {
|
|
|
94
108
|
return span;
|
|
95
109
|
}
|
|
96
110
|
/**
|
|
97
|
-
* This methods adds an already created Span. It assumes that it its hierarchy is correct.
|
|
98
|
-
* @param span
|
|
111
|
+
* This methods adds an already created Span to the trace. It assumes that it its hierarchy is correct.
|
|
112
|
+
* @param span The span to add.
|
|
99
113
|
*/
|
|
100
114
|
addSpan(span) {
|
|
101
115
|
// Check if there's an active trace. If not, log an error and return;
|
|
@@ -130,8 +144,7 @@ let TracingManager = class TracingManager {
|
|
|
130
144
|
}
|
|
131
145
|
/**
|
|
132
146
|
* This method ends the span using a keyname.
|
|
133
|
-
*
|
|
134
|
-
* @param keyname
|
|
147
|
+
* @param keyname The keyname of the span to end.
|
|
135
148
|
*/
|
|
136
149
|
endSpanKeyname(keyname) {
|
|
137
150
|
if (this.spans.hasOwnProperty(keyname) === false) {
|
|
@@ -141,10 +154,8 @@ let TracingManager = class TracingManager {
|
|
|
141
154
|
}
|
|
142
155
|
/**
|
|
143
156
|
* This methods ends the span by setting the end date and by calling the tracers.
|
|
144
|
-
*
|
|
145
157
|
* It will also end the trace if the rootspan is being ended.
|
|
146
|
-
*
|
|
147
|
-
* @param span
|
|
158
|
+
* @param span The span to end.
|
|
148
159
|
*/
|
|
149
160
|
endSpan(span) {
|
|
150
161
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAE1C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,wBAAwB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tracing.manager.js","sourceRoot":"","sources":["../../../../src/managers/tracing.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAE1C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAE,wBAAwB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAInE;;;;GAIG;AAKH,IAAa,cAAc,GAA3B,MAAa,cAAc;IAWvB;;;;;;;;;;OAUG;IACH,YAAgF,OAA0B,EACvC,UAA+B,EACvB,QAAiB,EAClB,KAAc,EACpD,cAA8B;QAJc,YAAO,GAAP,OAAO,CAAmB;QACvC,eAAU,GAAV,UAAU,CAAqB;QACvB,aAAQ,GAAR,QAAQ,CAAS;QAClB,UAAK,GAAL,KAAK,CAAS;QACpD,mBAAc,GAAd,cAAc,CAAgB;QApBlE;;WAEG;QACI,UAAK,GAA8B,EAAE,CAAC;IAkB7C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,kBAA0B,eAAe,CAAC,aAAa,EAAE,OAAgB,EAAE,OAAmC;QACvH,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE3D,6FAA6F;QAC7F,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAE5C,8FAA8F;QAC9F,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,IAAI,CAAC;SACf;QAED,uCAAuC;QACvC,IAAG,IAAI,CAAC,KAAK,EAAE;YACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE;gBACnC,eAAe;gBACf,OAAO;gBACP,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;aACP,EAAE,sBAAsB,CAAC,CAAA;SAC7B;QAED,4DAA4D;QAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC,MAAsB,EAAE,EAAE;;YAC7C,MAAA,MAAM,CAAC,kBAAkB,0CAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAA;QAEF,qFAAqF;QACrF,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE3B,iEAAiE;QACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,OAAe,EAAE,aAAsB,EAAE,OAAa;;QACnE,uDAAuD;QACvD,IAAG,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACxE;QAED,sBAAsB;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAEzB,8CAA8C;QAC9C,IAAI,UAAU,GAAS,IAAI,CAAC,KAAM,CAAC,QAAS,CAAC;QAE7C,0HAA0H;QAC1H,6BAA6B;QAC7B,IAAG,aAAa,EAAE;YACd,UAAU,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mCAAI,UAAU,CAAC;SACxD;QAED,6CAA6C;QAC7C,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,IAAU;QACrB,qEAAqE;QACrE,IAAG,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,6DAA6D,EAAE,EAAC,IAAI,EAAC,EAAE,sBAAsB,CAAC,CAAC;YAErH,OAAO,IAAI,CAAC;SACf;QAED,gEAAgE;QAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAEzB,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAEhC,4EAA4E;QAC5E,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,IAAI,CAAC;SACf;QAED,IAAG,IAAI,CAAC,KAAK,EAAE;YACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;aACP,EAAE,sBAAsB,CAAC,CAAA;SAC7B;QAED,kDAAkD;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC,MAAsB,EAAE,EAAE;;YAC7C,MAAA,MAAM,CAAC,iBAAiB,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAA;QAEF,kDAAkD;QAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAE3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,OAAe;QACjC,IAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;YAC7C,OAAO;SACV;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,IAAU;;QACrB,IAAG,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC1B,OAAO;SACV;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,6EAA6E;QAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAE5D,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SAC7B;QAED,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO;SACV;QAED,IAAG,IAAI,CAAC,KAAK,EAAE;YACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;aACP,EAAE,sBAAsB,CAAC,CAAA;SAC7B;QAED,qDAAqD;QACrD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC,MAAsB,EAAE,EAAE;;YAC7C,MAAA,MAAM,CAAC,eAAe,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAA;QAEF,oDAAoD;QACpD,IAAG,IAAI,CAAC,OAAO,MAAK,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,0CAAE,OAAO,CAAA,EAAE;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAA;SAClB;IACL,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,IAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAChD,OAAO;SACV;QAED,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEhC,iBAAiB;QACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE3B,iDAAiD;QACjD,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACrC;QAED,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO;SACV;QAED,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC,MAAsB,EAAE,EAAE;;YAC7C,MAAA,MAAM,CAAC,gBAAgB,0CAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAA;QAEF,aAAa;QACb,sBAAsB;QACtB,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB;YACvC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,QAAQ;YACxD,yBAAyB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAClH;YACF,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,EAAE,sBAAsB,CAAC,CAAA;IAC9B,CAAC;CACJ,CAAA;AAjPY,cAAc;IAJ1B,YAAY,CAAC,sBAAsB,CAAC;IACpC,GAAG,CAAC,yBAAyB,CAAC;IAC9B,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;IACjC,UAAU,EAAE;IAuBW,WAAA,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC1C,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;IACrC,WAAA,MAAM,CAAC,4BAA4B,CAAC,CAAA;sEACJ,cAAc;GA1BzD,cAAc,CAiP1B;SAjPY,cAAc"}
|
|
@@ -1,29 +1,61 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
/**
|
|
3
|
+
* This model represents a span.
|
|
4
|
+
*/
|
|
2
5
|
export class Span {
|
|
6
|
+
/**
|
|
7
|
+
* This model represents a span.
|
|
8
|
+
* @param keyname The keyname of the span.
|
|
9
|
+
* @param id The unique id of the span.
|
|
10
|
+
* @param context The context to associate with the span.
|
|
11
|
+
*/
|
|
3
12
|
constructor(keyname, id, context) {
|
|
4
13
|
this.keyname = keyname;
|
|
14
|
+
/**
|
|
15
|
+
* The timestamp in milliseconds at which the span was started.
|
|
16
|
+
*/
|
|
5
17
|
this.startDate = Date.now();
|
|
18
|
+
/**
|
|
19
|
+
* The children spans.
|
|
20
|
+
*/
|
|
6
21
|
this.children = [];
|
|
22
|
+
/**
|
|
23
|
+
* The context associated with the span.
|
|
24
|
+
*/
|
|
7
25
|
this.context = {};
|
|
26
|
+
/**
|
|
27
|
+
* Whether or not the span is in progress, meaning it has not ended.
|
|
28
|
+
*/
|
|
8
29
|
this.inProgress = true;
|
|
9
30
|
this.id = id !== null && id !== void 0 ? id : uuidv4();
|
|
10
31
|
this.context = context !== null && context !== void 0 ? context : {};
|
|
11
32
|
}
|
|
12
33
|
/**
|
|
13
|
-
* This returns the duration of the span in
|
|
34
|
+
* This method returns the duration of the span in milliseconds.
|
|
14
35
|
*/
|
|
15
36
|
getDuration() {
|
|
16
37
|
var _a;
|
|
17
38
|
return ((_a = this.endDate) !== null && _a !== void 0 ? _a : Date.now()) - this.startDate;
|
|
18
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* This method ends the span.
|
|
42
|
+
*/
|
|
19
43
|
end() {
|
|
20
44
|
var _a;
|
|
21
45
|
(_a = this.tracingManager) === null || _a === void 0 ? void 0 : _a.endSpan(this);
|
|
22
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* This method sets the trace for the span and all of its children.
|
|
49
|
+
* @param trace The trace the span should be attached to.
|
|
50
|
+
*/
|
|
23
51
|
setTrace(trace) {
|
|
24
52
|
this.trace = trace;
|
|
25
53
|
this.children.forEach(childSpan => childSpan.setTrace(trace));
|
|
26
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* This method adds a child span to the current span. It only adds it if it's not already part of the children.
|
|
57
|
+
* @param span The span to add as a child.
|
|
58
|
+
*/
|
|
27
59
|
addChild(span) {
|
|
28
60
|
const existingChildSpan = this.children.find(childSpan => childSpan.id === span.id);
|
|
29
61
|
if (existingChildSpan) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.model.js","sourceRoot":"","sources":["../../../../src/models/span.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,OAAO,IAAI;
|
|
1
|
+
{"version":3,"file":"span.model.js","sourceRoot":"","sources":["../../../../src/models/span.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,IAAI;IA8Cb;;;;;OAKG;IACH,YAA0B,OAAe,EAAE,EAAW,EAAE,OAAmC;QAAjE,YAAO,GAAP,OAAO,CAAQ;QApCzC;;WAEG;QACI,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAYtC;;WAEG;QACI,aAAQ,GAAW,EAAE,CAAC;QAE7B;;WAEG;QACI,YAAO,GAA8B,EAAE,CAAC;QAE/C;;WAEG;QACI,eAAU,GAAG,IAAI,CAAC;QASrB,IAAI,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,WAAW;;QACd,OAAO,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,GAAG;;QACN,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,KAAY;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,IAAU;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpF,IAAG,iBAAiB,EAAE;YAClB,OAAO;SACV;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
/**
|
|
3
|
+
* This model represents a trace.
|
|
4
|
+
*/
|
|
2
5
|
export class Trace {
|
|
6
|
+
/**
|
|
7
|
+
* This model represents a trace.
|
|
8
|
+
* @param id The unique id of the trace.
|
|
9
|
+
* @param context The context associated with the trace.
|
|
10
|
+
*/
|
|
3
11
|
constructor(id, context) {
|
|
12
|
+
/**
|
|
13
|
+
* The timestamp in milliseconds at which the trace was started.
|
|
14
|
+
*/
|
|
4
15
|
this.startDate = Date.now();
|
|
16
|
+
/**
|
|
17
|
+
* The context associated with the trace.
|
|
18
|
+
*/
|
|
5
19
|
this.context = {};
|
|
20
|
+
/**
|
|
21
|
+
* Whether or not the trace was ended.
|
|
22
|
+
*/
|
|
6
23
|
this.hasEnded = false;
|
|
7
24
|
this.id = id !== null && id !== void 0 ? id : uuidv4();
|
|
8
25
|
this.context = context !== null && context !== void 0 ? context : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.model.js","sourceRoot":"","sources":["../../../../src/models/trace.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,OAAO,KAAK;
|
|
1
|
+
{"version":3,"file":"trace.model.js","sourceRoot":"","sources":["../../../../src/models/trace.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,KAAK;IA+Bd;;;;OAIG;IACH,YAAmB,EAAW,EAAE,OAAmC;QA9BnE;;WAEG;QACI,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAYtC;;WAEG;QACI,YAAO,GAA+B,EAAE,CAAC;QAEhD;;WAEG;QACI,aAAQ,GAAY,KAAK,CAAC;QAQ7B,IAAI,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,WAAW;;QACd,OAAO,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzD,CAAC;CACJ"}
|
|
@@ -6,7 +6,7 @@ export * from "./enums/enums";
|
|
|
6
6
|
export * from "./interfaces/interfaces";
|
|
7
7
|
export * from "./managers/managers";
|
|
8
8
|
export * from "./models/models";
|
|
9
|
-
export * from "./tracers/
|
|
9
|
+
export * from "./tracers/tracers";
|
|
10
10
|
export const TelemetryModule = {
|
|
11
11
|
keyname: TelemetryModuleKeyname,
|
|
12
12
|
importModules: [
|
|
@@ -14,7 +14,11 @@ export const TelemetryModule = {
|
|
|
14
14
|
LoggingModule,
|
|
15
15
|
],
|
|
16
16
|
providerRegistrations: [],
|
|
17
|
-
configurationDefinitions: [
|
|
17
|
+
configurationDefinitions: [
|
|
18
|
+
/**
|
|
19
|
+
* Whether or not tracing is activated.
|
|
20
|
+
*/
|
|
21
|
+
{
|
|
18
22
|
parameterName: TelemetryModuleKeyname + ".active",
|
|
19
23
|
defaultValue: true,
|
|
20
24
|
isRequired: false,
|
|
@@ -22,6 +26,10 @@ export const TelemetryModule = {
|
|
|
22
26
|
new BooleanResolver(new EnvironmentVariableResolver("PRISTINE_TRACING_IS_ACTIVE")),
|
|
23
27
|
]
|
|
24
28
|
},
|
|
29
|
+
/**
|
|
30
|
+
* Whether or not tracing is in debug mode, meaning that it should output logs with the debug severity about the trace and spans.
|
|
31
|
+
* This can be set to false to prevent having to much logs for every single span created.
|
|
32
|
+
*/
|
|
25
33
|
{
|
|
26
34
|
parameterName: TelemetryModuleKeyname + ".debug",
|
|
27
35
|
defaultValue: false,
|
|
@@ -29,6 +37,7 @@ export const TelemetryModule = {
|
|
|
29
37
|
defaultResolvers: [
|
|
30
38
|
new BooleanResolver(new EnvironmentVariableResolver("PRISTINE_TRACING_DEBUG")),
|
|
31
39
|
]
|
|
32
|
-
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
33
42
|
};
|
|
34
43
|
//# sourceMappingURL=telemetry.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.module.js","sourceRoot":"","sources":["../../../src/telemetry.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAE,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEjD,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"telemetry.module.js","sourceRoot":"","sources":["../../../src/telemetry.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAE,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEjD,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC5C,OAAO,EAAE,sBAAsB;IAC/B,aAAa,EAAE;QACX,YAAY;QACZ,aAAa;KAChB;IACD,qBAAqB,EAAE,EACtB;IACD,wBAAwB,EAAE;QACtB;;WAEG;QACH;YACI,aAAa,EAAE,sBAAsB,GAAG,SAAS;YACjD,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBACd,IAAI,eAAe,CAAC,IAAI,2BAA2B,CAAC,4BAA4B,CAAC,CAAC;aACrF;SACJ;QACD;;;WAGG;QACH;YACI,aAAa,EAAE,sBAAsB,GAAG,QAAQ;YAChD,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBACd,IAAI,eAAe,CAAC,IAAI,2BAA2B,CAAC,wBAAwB,CAAC,CAAC;aACjF;SACJ;KACJ;CACJ,CAAA"}
|
|
@@ -9,6 +9,7 @@ import { ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
|
9
9
|
import { Readable } from "stream";
|
|
10
10
|
/**
|
|
11
11
|
* We need this to have at least one tracer so the @injectAll(ServiceDefinitionTagEnum.Tracer) does not fail
|
|
12
|
+
* Until there's a fix for: https://github.com/microsoft/tsyringe/issues/63
|
|
12
13
|
*/
|
|
13
14
|
let XrayTracer = class XrayTracer {
|
|
14
15
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.tracer.js","sourceRoot":"","sources":["../../../../src/tracers/basic.tracer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGhC
|
|
1
|
+
{"version":3,"file":"basic.tracer.js","sourceRoot":"","sources":["../../../../src/tracers/basic.tracer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGhC;;;GAGG;AAGH,IAAa,UAAU,GAAvB,MAAa,UAAU;IAAvB;QACI,sBAAiB,GAAc,IAAI,QAAQ,CAAC;YACxC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,oBAAe,GAAc,IAAI,QAAQ,CAAC;YACtC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,uBAAkB,GAAc,IAAI,QAAQ,CAAC;YACzC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QACH,qBAAgB,GAAc,IAAI,QAAQ,CAAC;YACvC,UAAU,EAAE,IAAI;YAChB,IAAI,CAAC,IAAY;gBACb,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CAAA,CAAA;AAzBY,UAAU;IAFtB,GAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE;GACA,UAAU,CAyBtB;SAzBY,UAAU"}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Readable } from "stream";
|
|
3
|
+
/**
|
|
4
|
+
* This interface represents what a tracer should have.
|
|
5
|
+
*/
|
|
3
6
|
export interface TracerInterface {
|
|
7
|
+
/**
|
|
8
|
+
* The stream for when a span is started.
|
|
9
|
+
*/
|
|
4
10
|
spanStartedStream?: Readable;
|
|
11
|
+
/**
|
|
12
|
+
* The stream for when a span has ended.
|
|
13
|
+
*/
|
|
5
14
|
spanEndedStream?: Readable;
|
|
15
|
+
/**
|
|
16
|
+
* The stream for when a trace is started.
|
|
17
|
+
*/
|
|
6
18
|
traceStartedStream?: Readable;
|
|
19
|
+
/**
|
|
20
|
+
* The stream for when a trace has ended.
|
|
21
|
+
*/
|
|
7
22
|
traceEndedStream?: Readable;
|
|
8
23
|
}
|
|
@@ -1,14 +1,49 @@
|
|
|
1
1
|
import { Span } from "../models/span.model";
|
|
2
2
|
import { Trace } from "../models/trace.model";
|
|
3
|
+
/**
|
|
4
|
+
* This interface specifies what a tracing manager should implement.
|
|
5
|
+
*/
|
|
3
6
|
export interface TracingManagerInterface {
|
|
7
|
+
/**
|
|
8
|
+
* This property contains a reference to the active trace.
|
|
9
|
+
*/
|
|
4
10
|
trace?: Trace;
|
|
11
|
+
/**
|
|
12
|
+
* This methods starts the Tracing. This should be the first method called before doing anything else.
|
|
13
|
+
* @param spanRootKeyname The keyname of the span at the root.
|
|
14
|
+
* @param traceId The trace id if there is one.
|
|
15
|
+
* @param context The context if there is one.
|
|
16
|
+
*/
|
|
5
17
|
startTracing(spanRootKeyname?: string, traceId?: string, context?: {
|
|
6
18
|
[key: string]: string;
|
|
7
19
|
}): Span;
|
|
20
|
+
/**
|
|
21
|
+
* This method ends the trace entirely.
|
|
22
|
+
*/
|
|
8
23
|
endTrace(): void;
|
|
24
|
+
/**
|
|
25
|
+
* This method starts a new span.
|
|
26
|
+
* @param keyname The keyname for this new span.
|
|
27
|
+
* @param parentKeyname The keyname of the parent span.
|
|
28
|
+
* @param context The context if there is one.
|
|
29
|
+
*/
|
|
9
30
|
startSpan(keyname: string, parentKeyname?: string, context?: {
|
|
10
31
|
[key: string]: string;
|
|
11
32
|
}): Span;
|
|
33
|
+
/**
|
|
34
|
+
* This methods adds an already created Span to the trace. It assumes that it its hierarchy is correct.
|
|
35
|
+
* @param span The span to add.
|
|
36
|
+
*/
|
|
12
37
|
addSpan(span: Span): Span;
|
|
38
|
+
/**
|
|
39
|
+
* This methods ends the span by setting the end date and by calling the tracers.
|
|
40
|
+
* It will also end the trace if the rootspan is being ended.
|
|
41
|
+
* @param span The span to end.
|
|
42
|
+
*/
|
|
13
43
|
endSpan(span: Span): void;
|
|
44
|
+
/**
|
|
45
|
+
* This method ends the span using a keyname.
|
|
46
|
+
* @param keyname The keyname of the span to end.
|
|
47
|
+
*/
|
|
48
|
+
endSpanKeyname(keyname: string): void;
|
|
14
49
|
}
|
|
@@ -4,6 +4,11 @@ import { TracingManagerInterface } from "../interfaces/tracing-manager.interface
|
|
|
4
4
|
import { TracingContext } from "@pristine-ts/common";
|
|
5
5
|
import { TracerInterface } from "../interfaces/tracer.interface";
|
|
6
6
|
import { LogHandlerInterface } from "@pristine-ts/logging";
|
|
7
|
+
/**
|
|
8
|
+
* The Tracing Manager provides methods to help with tracing.
|
|
9
|
+
* It is tagged and can be injected using TracingManagerInterface which facilitates mocking.
|
|
10
|
+
* It is module scoped to the TelemetryModuleKeyname.
|
|
11
|
+
*/
|
|
7
12
|
export declare class TracingManager implements TracingManagerInterface {
|
|
8
13
|
private readonly tracers;
|
|
9
14
|
private readonly loghandler;
|
|
@@ -20,42 +25,48 @@ export declare class TracingManager implements TracingManagerInterface {
|
|
|
20
25
|
spans: {
|
|
21
26
|
[keyname: string]: Span;
|
|
22
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* The Tracing Manager provides methods to help with tracing.
|
|
30
|
+
* It is tagged and can be injected using TracingManagerInterface which facilitates mocking.
|
|
31
|
+
* It is module scoped to the TelemetryModuleKeyname.
|
|
32
|
+
* @param tracers The tracers to use. All services tagged with ServiceDefinitionTagEnum.Tracer will be injected here.
|
|
33
|
+
* @param loghandler The log handler to output logs.
|
|
34
|
+
* @param isActive Whether or not tracing is activated.
|
|
35
|
+
* @param debug Whether or not tracing is in debug mode, meaning that it should output logs with the debug severity about the trace and spans.
|
|
36
|
+
* This can be set to false to prevent having to much logs for every single span created.
|
|
37
|
+
* @param tracingContext The tracing context.
|
|
38
|
+
*/
|
|
23
39
|
constructor(tracers: TracerInterface[], loghandler: LogHandlerInterface, isActive: boolean, debug: boolean, tracingContext: TracingContext);
|
|
24
40
|
/**
|
|
25
41
|
* This methods starts the Tracing. This should be the first method called before doing anything else.
|
|
26
|
-
*
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
29
|
-
* @param context
|
|
42
|
+
* @param spanRootKeyname The keyname of the span at the root.
|
|
43
|
+
* @param traceId The trace id if there is one.
|
|
44
|
+
* @param context The context if there is one.
|
|
30
45
|
*/
|
|
31
46
|
startTracing(spanRootKeyname?: string, traceId?: string, context?: {
|
|
32
47
|
[key: string]: string;
|
|
33
48
|
}): Span;
|
|
34
49
|
/**
|
|
35
50
|
* This method starts a new span.
|
|
36
|
-
*
|
|
37
|
-
* @param keyname
|
|
38
|
-
* @param
|
|
39
|
-
* @param context
|
|
51
|
+
* @param keyname The keyname for this new span.
|
|
52
|
+
* @param parentKeyname The keyname of the parent span.
|
|
53
|
+
* @param context The context if there is one.
|
|
40
54
|
*/
|
|
41
55
|
startSpan(keyname: string, parentKeyname?: string, context?: any): Span;
|
|
42
56
|
/**
|
|
43
|
-
* This methods adds an already created Span. It assumes that it its hierarchy is correct.
|
|
44
|
-
* @param span
|
|
57
|
+
* This methods adds an already created Span to the trace. It assumes that it its hierarchy is correct.
|
|
58
|
+
* @param span The span to add.
|
|
45
59
|
*/
|
|
46
60
|
addSpan(span: Span): Span;
|
|
47
61
|
/**
|
|
48
62
|
* This method ends the span using a keyname.
|
|
49
|
-
*
|
|
50
|
-
* @param keyname
|
|
63
|
+
* @param keyname The keyname of the span to end.
|
|
51
64
|
*/
|
|
52
65
|
endSpanKeyname(keyname: string): void;
|
|
53
66
|
/**
|
|
54
67
|
* This methods ends the span by setting the end date and by calling the tracers.
|
|
55
|
-
*
|
|
56
68
|
* It will also end the trace if the rootspan is being ended.
|
|
57
|
-
*
|
|
58
|
-
* @param span
|
|
69
|
+
* @param span The span to end.
|
|
59
70
|
*/
|
|
60
71
|
endSpan(span: Span): void;
|
|
61
72
|
/**
|
|
@@ -1,26 +1,73 @@
|
|
|
1
1
|
import { Trace } from "./trace.model";
|
|
2
2
|
import { TracingManagerInterface } from "../interfaces/tracing-manager.interface";
|
|
3
|
+
/**
|
|
4
|
+
* This model represents a span.
|
|
5
|
+
*/
|
|
3
6
|
export declare class Span {
|
|
4
7
|
keyname: string;
|
|
8
|
+
/**
|
|
9
|
+
* The unique id of the span.
|
|
10
|
+
*/
|
|
5
11
|
id: string;
|
|
12
|
+
/**
|
|
13
|
+
* The tracing manager.
|
|
14
|
+
*/
|
|
6
15
|
tracingManager?: TracingManagerInterface;
|
|
16
|
+
/**
|
|
17
|
+
* The trace the span is attached to.
|
|
18
|
+
*/
|
|
7
19
|
trace?: Trace;
|
|
20
|
+
/**
|
|
21
|
+
* The timestamp in milliseconds at which the span was started.
|
|
22
|
+
*/
|
|
8
23
|
startDate: number;
|
|
24
|
+
/**
|
|
25
|
+
* The timestamp in milliseconds at which the span was ended.
|
|
26
|
+
*/
|
|
9
27
|
endDate?: number;
|
|
28
|
+
/**
|
|
29
|
+
* The parent span.
|
|
30
|
+
*/
|
|
10
31
|
parentSpan?: Span;
|
|
32
|
+
/**
|
|
33
|
+
* The children spans.
|
|
34
|
+
*/
|
|
11
35
|
children: Span[];
|
|
36
|
+
/**
|
|
37
|
+
* The context associated with the span.
|
|
38
|
+
*/
|
|
12
39
|
context: {
|
|
13
40
|
[key: string]: string;
|
|
14
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Whether or not the span is in progress, meaning it has not ended.
|
|
44
|
+
*/
|
|
15
45
|
inProgress: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* This model represents a span.
|
|
48
|
+
* @param keyname The keyname of the span.
|
|
49
|
+
* @param id The unique id of the span.
|
|
50
|
+
* @param context The context to associate with the span.
|
|
51
|
+
*/
|
|
16
52
|
constructor(keyname: string, id?: string, context?: {
|
|
17
53
|
[key: string]: string;
|
|
18
54
|
});
|
|
19
55
|
/**
|
|
20
|
-
* This returns the duration of the span in
|
|
56
|
+
* This method returns the duration of the span in milliseconds.
|
|
21
57
|
*/
|
|
22
58
|
getDuration(): number;
|
|
59
|
+
/**
|
|
60
|
+
* This method ends the span.
|
|
61
|
+
*/
|
|
23
62
|
end(): void;
|
|
63
|
+
/**
|
|
64
|
+
* This method sets the trace for the span and all of its children.
|
|
65
|
+
* @param trace The trace the span should be attached to.
|
|
66
|
+
*/
|
|
24
67
|
setTrace(trace: Trace): void;
|
|
68
|
+
/**
|
|
69
|
+
* This method adds a child span to the current span. It only adds it if it's not already part of the children.
|
|
70
|
+
* @param span The span to add as a child.
|
|
71
|
+
*/
|
|
25
72
|
addChild(span: Span): void;
|
|
26
73
|
}
|
|
@@ -1,13 +1,39 @@
|
|
|
1
1
|
import { Span } from "./span.model";
|
|
2
|
+
/**
|
|
3
|
+
* This model represents a trace.
|
|
4
|
+
*/
|
|
2
5
|
export declare class Trace {
|
|
6
|
+
/**
|
|
7
|
+
* The unique id of the trace.
|
|
8
|
+
*/
|
|
3
9
|
id: string;
|
|
10
|
+
/**
|
|
11
|
+
* The timestamp in milliseconds at which the trace was started.
|
|
12
|
+
*/
|
|
4
13
|
startDate: number;
|
|
14
|
+
/**
|
|
15
|
+
* The timestamp in milliseconds at which the trace was ended.
|
|
16
|
+
*/
|
|
5
17
|
endDate?: number;
|
|
18
|
+
/**
|
|
19
|
+
* The span that is at the root.
|
|
20
|
+
*/
|
|
6
21
|
rootSpan?: Span;
|
|
22
|
+
/**
|
|
23
|
+
* The context associated with the trace.
|
|
24
|
+
*/
|
|
7
25
|
context?: {
|
|
8
26
|
[key: string]: string;
|
|
9
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Whether or not the trace was ended.
|
|
30
|
+
*/
|
|
10
31
|
hasEnded: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* This model represents a trace.
|
|
34
|
+
* @param id The unique id of the trace.
|
|
35
|
+
* @param context The context associated with the trace.
|
|
36
|
+
*/
|
|
11
37
|
constructor(id?: string, context?: {
|
|
12
38
|
[key: string]: string;
|
|
13
39
|
});
|
|
@@ -3,5 +3,5 @@ export * from "./enums/enums";
|
|
|
3
3
|
export * from "./interfaces/interfaces";
|
|
4
4
|
export * from "./managers/managers";
|
|
5
5
|
export * from "./models/models";
|
|
6
|
-
export * from "./tracers/
|
|
6
|
+
export * from "./tracers/tracers";
|
|
7
7
|
export declare const TelemetryModule: ModuleInterface;
|
|
@@ -3,6 +3,7 @@ import { Readable } from "stream";
|
|
|
3
3
|
import { TracerInterface } from "../interfaces/tracer.interface";
|
|
4
4
|
/**
|
|
5
5
|
* We need this to have at least one tracer so the @injectAll(ServiceDefinitionTagEnum.Tracer) does not fail
|
|
6
|
+
* Until there's a fix for: https://github.com/microsoft/tsyringe/issues/63
|
|
6
7
|
*/
|
|
7
8
|
export declare class XrayTracer implements TracerInterface {
|
|
8
9
|
spanStartedStream?: Readable;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pristine-ts/telemetry",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.198",
|
|
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.198",
|
|
16
|
+
"@pristine-ts/logging": "^0.0.198",
|
|
17
17
|
"uuid": "^8.3.2"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"src/*.{js,ts}"
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "bc2a9151fbee4a0800fbca2a4e03f5ab8857931c"
|
|
65
65
|
}
|