@interopio/otel 0.1.18 → 0.1.20
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/index.d.ts +4 -3
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/traces/bufferingTracesManager.d.ts +78 -3
- package/dist/traces/bufferingTracesManager.js +194 -25
- package/dist/traces/bufferingTracesManager.js.map +1 -1
- package/dist/traces/bufferingTracingState.d.ts +21 -1
- package/dist/traces/bufferingTracingState.js +86 -13
- package/dist/traces/bufferingTracingState.js.map +1 -1
- package/dist/traces/nullTracesManager.js +13 -1
- package/dist/traces/nullTracesManager.js.map +1 -1
- package/dist/traces/nullTracingState.d.ts +6 -2
- package/dist/traces/nullTracingState.js +18 -3
- package/dist/traces/nullTracingState.js.map +1 -1
- package/dist/traces/traces.js +7 -8
- package/dist/traces/traces.js.map +1 -1
- package/dist/utils/exportHeaders.d.ts +29 -0
- package/dist/utils/exportHeaders.js +182 -0
- package/dist/utils/exportHeaders.js.map +1 -0
- package/dist/utils/otelUtils.d.ts +5 -0
- package/dist/utils/otelUtils.js +24 -1
- package/dist/utils/otelUtils.js.map +1 -1
- package/insights.d.ts +414 -82
- package/package.json +1 -1
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createRecordedSpan = createRecordedSpan;
|
|
4
|
+
// a Date, a number, or an HrTime - as opposed to the attributes addEvent() takes in the same position
|
|
5
|
+
function isTimeInput(value) {
|
|
6
|
+
return value instanceof Date ||
|
|
7
|
+
typeof value === "number" ||
|
|
8
|
+
(Array.isArray(value) && value.length === 2 && typeof value[0] === "number" && typeof value[1] === "number");
|
|
9
|
+
}
|
|
4
10
|
function randomHex(bytes) {
|
|
5
11
|
let out = "";
|
|
6
12
|
for (let i = 0; i < bytes * 2; i++) {
|
|
@@ -8,6 +14,28 @@ function randomHex(bytes) {
|
|
|
8
14
|
}
|
|
9
15
|
return out;
|
|
10
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* The synthetic traceparent identifies a buffered span to the buffer, so that code passing the
|
|
19
|
+
* propagation info of one span to another (manual nesting) keeps working before there are real
|
|
20
|
+
* spans. No real span will ever have its ids: handed to ANOTHER process - an application being
|
|
21
|
+
* started, the headers of a request - it would make that process parent its telemetry to a trace
|
|
22
|
+
* that does not exist.
|
|
23
|
+
*
|
|
24
|
+
* So the traceparent is not enumerable. Reading it off the object works, which is all the buffer
|
|
25
|
+
* needs; whatever copies or serializes the object - a spread, JSON, the structured clone of an IPC
|
|
26
|
+
* message, environment variables - comes out without it, and the other side starts a trace of its
|
|
27
|
+
* own, the same as it would with no propagation info at all.
|
|
28
|
+
*/
|
|
29
|
+
function createSyntheticPropagationInfo() {
|
|
30
|
+
const propagationInfo = {};
|
|
31
|
+
Object.defineProperty(propagationInfo, "traceparent", {
|
|
32
|
+
value: `00-${randomHex(16)}-${randomHex(8)}-01`,
|
|
33
|
+
enumerable: false,
|
|
34
|
+
writable: false,
|
|
35
|
+
configurable: false,
|
|
36
|
+
});
|
|
37
|
+
return propagationInfo;
|
|
38
|
+
}
|
|
11
39
|
/**
|
|
12
40
|
* Creates a fresh {@link RecordedSpan} with a synthetic W3C traceparent.
|
|
13
41
|
*/
|
|
@@ -22,9 +50,7 @@ function createRecordedSpan(source, filteringContext, explicitPropagationInfo, o
|
|
|
22
50
|
addedData: [],
|
|
23
51
|
exceptions: [],
|
|
24
52
|
children: [],
|
|
25
|
-
syntheticPropagationInfo:
|
|
26
|
-
traceparent: `00-${randomHex(16)}-${randomHex(8)}-01`,
|
|
27
|
-
},
|
|
53
|
+
syntheticPropagationInfo: createSyntheticPropagationInfo(),
|
|
28
54
|
};
|
|
29
55
|
}
|
|
30
56
|
/**
|
|
@@ -58,15 +84,18 @@ class BufferingTracingState {
|
|
|
58
84
|
return this.node.endTime;
|
|
59
85
|
}
|
|
60
86
|
get id() {
|
|
61
|
-
var _a;
|
|
62
|
-
return (_a = this.
|
|
87
|
+
var _a, _b;
|
|
88
|
+
return (_b = (_a = this.getPropagationInfo()) === null || _a === void 0 ? void 0 : _a.traceparent) === null || _b === void 0 ? void 0 : _b.split("-")[2];
|
|
63
89
|
}
|
|
64
90
|
get traceId() {
|
|
65
|
-
var _a;
|
|
66
|
-
return (_a = this.
|
|
91
|
+
var _a, _b;
|
|
92
|
+
return (_b = (_a = this.getPropagationInfo()) === null || _a === void 0 ? void 0 : _a.traceparent) === null || _b === void 0 ? void 0 : _b.split("-")[1];
|
|
67
93
|
}
|
|
68
94
|
set status(status) {
|
|
69
95
|
this.node.status = Object.assign({}, status);
|
|
96
|
+
if (this.node.liveTs) {
|
|
97
|
+
this.node.liveTs.status = Object.assign({}, status);
|
|
98
|
+
}
|
|
70
99
|
}
|
|
71
100
|
get status() {
|
|
72
101
|
var _a;
|
|
@@ -76,6 +105,10 @@ class BufferingTracingState {
|
|
|
76
105
|
void this.endSpan();
|
|
77
106
|
}
|
|
78
107
|
endSpan(endTime, allowDoubleEnd) {
|
|
108
|
+
if (this.node.liveTs) {
|
|
109
|
+
this.hasEnded = true;
|
|
110
|
+
return this.node.liveTs.endSpan(endTime, allowDoubleEnd);
|
|
111
|
+
}
|
|
79
112
|
if (this.hasEnded && !allowDoubleEnd) {
|
|
80
113
|
return Promise.resolve();
|
|
81
114
|
}
|
|
@@ -85,34 +118,74 @@ class BufferingTracingState {
|
|
|
85
118
|
}
|
|
86
119
|
return Promise.resolve();
|
|
87
120
|
}
|
|
121
|
+
// Once the span has been replayed, what is recorded on it goes to the real span it was kept
|
|
122
|
+
// open on (node.liveTs) - or nowhere, when it was published as ended: it could never be
|
|
123
|
+
// published anymore, and must not be collected for as long as the code holding this state runs.
|
|
88
124
|
addEvent(name, attributesOrStartTime, startTime) {
|
|
89
|
-
this.node.
|
|
125
|
+
if (this.node.liveTs) {
|
|
126
|
+
this.node.liveTs.addEvent(name, attributesOrStartTime, startTime);
|
|
127
|
+
}
|
|
128
|
+
else if (!this.node.replayed) {
|
|
129
|
+
// Stamped now, unless the caller said when: the replay happens later - a whole login screen
|
|
130
|
+
// later, with a late init - and the event would otherwise be published as happening then,
|
|
131
|
+
// after the span it belongs to has ended.
|
|
132
|
+
this.node.events.push({
|
|
133
|
+
name,
|
|
134
|
+
attributesOrStartTime,
|
|
135
|
+
startTime: startTime !== null && startTime !== void 0 ? startTime : (isTimeInput(attributesOrStartTime) ? undefined : new Date()),
|
|
136
|
+
});
|
|
137
|
+
}
|
|
90
138
|
return this;
|
|
91
139
|
}
|
|
92
140
|
recordException(exception, time) {
|
|
93
|
-
this.node.
|
|
141
|
+
if (this.node.liveTs) {
|
|
142
|
+
this.node.liveTs.recordException(exception, time);
|
|
143
|
+
}
|
|
144
|
+
else if (!this.node.replayed) {
|
|
145
|
+
// (stamped now, for the same reason as events)
|
|
146
|
+
this.node.exceptions.push({ exception, time: time !== null && time !== void 0 ? time : new Date() });
|
|
147
|
+
}
|
|
94
148
|
}
|
|
95
149
|
isRecording() {
|
|
96
|
-
|
|
150
|
+
if (this.node.liveTs) {
|
|
151
|
+
return this.node.liveTs.isRecording();
|
|
152
|
+
}
|
|
153
|
+
return !this.hasEnded && !this.node.replayed;
|
|
97
154
|
}
|
|
98
155
|
updateName(name) {
|
|
156
|
+
var _a;
|
|
99
157
|
this.node.updatedName = name;
|
|
100
158
|
this.node.source = name;
|
|
159
|
+
(_a = this.node.liveTs) === null || _a === void 0 ? void 0 : _a.updateName(name);
|
|
101
160
|
return this;
|
|
102
161
|
}
|
|
103
162
|
spanContext() {
|
|
104
163
|
return undefined;
|
|
105
164
|
}
|
|
106
165
|
addData(level, data) {
|
|
166
|
+
if (this.node.liveTs) {
|
|
167
|
+
this.node.liveTs.addData(level, data);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (this.node.replayed) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
107
173
|
const resolved = typeof data === "function" ? data() : data;
|
|
108
174
|
this.node.addedData.push({ level, data: resolved });
|
|
109
175
|
}
|
|
110
176
|
getPropagationInfo() {
|
|
111
|
-
|
|
177
|
+
var _a;
|
|
178
|
+
// Once replayed, the synthetic propagation info means nothing to anyone: hand out that of the
|
|
179
|
+
// real span instead - null when no real span came out of the replay, rather than a
|
|
180
|
+
// traceparent that points nowhere.
|
|
181
|
+
return this.node.replayed ?
|
|
182
|
+
(_a = this.node.replayedPropagationInfo) !== null && _a !== void 0 ? _a : null :
|
|
183
|
+
this.node.syntheticPropagationInfo;
|
|
112
184
|
}
|
|
113
185
|
injectPropagationInfo(carrier) {
|
|
114
|
-
|
|
115
|
-
|
|
186
|
+
const propagationInfo = this.getPropagationInfo();
|
|
187
|
+
if (!this.disablePropagation && propagationInfo) {
|
|
188
|
+
carrier.__interopIOTracePropagationInfo = propagationInfo;
|
|
116
189
|
}
|
|
117
190
|
}
|
|
118
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bufferingTracingState.js","sourceRoot":"","sources":["../../src/traces/bufferingTracingState.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"bufferingTracingState.js","sourceRoot":"","sources":["../../src/traces/bufferingTracingState.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,11 +85,23 @@ class NullTracesManager extends nullManager_1.NullManager {
|
|
|
85
85
|
// const nts = new NullTracingState(source, extractedPI);
|
|
86
86
|
const nts = new nullTracingState_1.default(source, null, true, null);
|
|
87
87
|
traces_1.default.currentTracingState = nts;
|
|
88
|
+
// The tracing state keeps time like a real one, as far as that can be done without touching
|
|
89
|
+
// what the callback returns: it ends when a synchronous callback is done. A promise is handed
|
|
90
|
+
// back as it is, and NOT observed - a rejection handler of ours would mark it as handled, and
|
|
91
|
+
// a rejection nobody else handles would no longer be reported as unhandled; with io.Insights
|
|
92
|
+
// disabled that must not change how an application's errors surface. The tracing state of an
|
|
93
|
+
// asynchronous callback therefore has no end time (`endTime ?? new Date()` is how it is read).
|
|
94
|
+
let isAsync = false;
|
|
88
95
|
try {
|
|
89
|
-
|
|
96
|
+
const result = actualCallback(nts);
|
|
97
|
+
isAsync = !!result && typeof result.then === "function";
|
|
98
|
+
return result;
|
|
90
99
|
}
|
|
91
100
|
finally {
|
|
92
101
|
traces_1.default.currentTracingState = null;
|
|
102
|
+
if (!isAsync) {
|
|
103
|
+
nts.end();
|
|
104
|
+
}
|
|
93
105
|
}
|
|
94
106
|
}
|
|
95
107
|
setFilterConfig(filters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullTracesManager.js","sourceRoot":"","sources":["../../src/traces/nullTracesManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0EAAkD;AAClD,sDAA8B;AAE9B,gDAA6C;AAC7C,4DAAwD;AACxD,MAAa,iBAAkB,SAAQ,yBAAsC;IAE3E,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,IAAK,EAAgC,CAAC;IAC7D,CAAC;IACD,IAAW,QAAQ,CAAC,KAAgC;QAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAoB,SAAgD,EAAE,YAA6C,EAAU,MAAqC;QAChK,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,oBAAoB,MAAK,KAAK,EAAE,CAAC;YACjD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,4CAA4C,IAAA,8BAAa,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,EAAE,CAAC;QAJU,cAAS,GAAT,SAAS,CAAuC;QAAyD,WAAM,GAAN,MAAM,CAA+B;IAKlK,CAAC;IAEY,gBAAgB,CAC3B,MAAc,EACd,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,IAAI,CAAC,kBAAkB,CAC5B,MAAM,EACN,MAAM,GAAG,QAAQ,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAEY,kBAAkB,CAC7B,MAAc,EACd,SAEQ,EACR,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAElC,OAAO,IAAI,CAAC,QAAQ,CAClB,MAAM,EACN,0BAA0B,EAC1B,IAAI,EACJ,iBAAsD,EACtD,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,0BAAgB,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,mBAAmB,CAAC,EAAkC;IAC1D,CAAC;IAED,kBAAkB,CAAC,SAA8B;QAC/C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ,CACN,MACU,EACV,0BAGQ,EACR,yBAIQ,EACR,iBAGQ,EACR,QACkC;QAElC,MAAM,cAAc;QAClB,6CAA6C;QAC7C,OAAO,0BAA0B,KAAK,UAAU;YAC9C,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,OAAO,yBAAyB,KAAK,UAAU;gBACjD,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,OAAO,iBAAiB,KAAK,UAAU;oBACzC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,OAAO,cAAc,CAAC,CAAC;QACpF,CAAC;QAED,4DAA4D;QAC5D,yBAAyB;QACzB,EAAE;QACF,+DAA+D;QAE/D,wCAAwC;QACxC,EAAE;QACF,kDAAkD;QAClD,mCAAmC;QACnC,qCAAqC;QACrC,sDAAsD;QACtD,iEAAiE;QACjE,MAAM;QACN,yEAAyE;QACzE,WAAW;QACX,4EAA4E;QAC5E,IAAI;QACJ,yDAAyD;QAEzD,MAAM,GAAG,GAAG,IAAI,0BAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE3D,gBAAM,CAAC,mBAAmB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC;YACH,
|
|
1
|
+
{"version":3,"file":"nullTracesManager.js","sourceRoot":"","sources":["../../src/traces/nullTracesManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0EAAkD;AAClD,sDAA8B;AAE9B,gDAA6C;AAC7C,4DAAwD;AACxD,MAAa,iBAAkB,SAAQ,yBAAsC;IAE3E,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,IAAK,EAAgC,CAAC;IAC7D,CAAC;IACD,IAAW,QAAQ,CAAC,KAAgC;QAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAoB,SAAgD,EAAE,YAA6C,EAAU,MAAqC;QAChK,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,oBAAoB,MAAK,KAAK,EAAE,CAAC;YACjD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,4CAA4C,IAAA,8BAAa,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,EAAE,CAAC;QAJU,cAAS,GAAT,SAAS,CAAuC;QAAyD,WAAM,GAAN,MAAM,CAA+B;IAKlK,CAAC;IAEY,gBAAgB,CAC3B,MAAc,EACd,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,IAAI,CAAC,kBAAkB,CAC5B,MAAM,EACN,MAAM,GAAG,QAAQ,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAEY,kBAAkB,CAC7B,MAAc,EACd,SAEQ,EACR,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAElC,OAAO,IAAI,CAAC,QAAQ,CAClB,MAAM,EACN,0BAA0B,EAC1B,IAAI,EACJ,iBAAsD,EACtD,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,0BAAgB,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,mBAAmB,CAAC,EAAkC;IAC1D,CAAC;IAED,kBAAkB,CAAC,SAA8B;QAC/C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ,CACN,MACU,EACV,0BAGQ,EACR,yBAIQ,EACR,iBAGQ,EACR,QACkC;QAElC,MAAM,cAAc;QAClB,6CAA6C;QAC7C,OAAO,0BAA0B,KAAK,UAAU;YAC9C,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,OAAO,yBAAyB,KAAK,UAAU;gBACjD,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,OAAO,iBAAiB,KAAK,UAAU;oBACzC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,OAAO,cAAc,CAAC,CAAC;QACpF,CAAC;QAED,4DAA4D;QAC5D,yBAAyB;QACzB,EAAE;QACF,+DAA+D;QAE/D,wCAAwC;QACxC,EAAE;QACF,kDAAkD;QAClD,mCAAmC;QACnC,qCAAqC;QACrC,sDAAsD;QACtD,iEAAiE;QACjE,MAAM;QACN,yEAAyE;QACzE,WAAW;QACX,4EAA4E;QAC5E,IAAI;QACJ,yDAAyD;QAEzD,MAAM,GAAG,GAAG,IAAI,0BAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE3D,gBAAM,CAAC,mBAAmB,GAAG,GAAG,CAAC;QACjC,4FAA4F;QAC5F,8FAA8F;QAC9F,8FAA8F;QAC9F,6FAA6F;QAC7F,6FAA6F;QAC7F,+FAA+F;QAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,OAAQ,MAA0C,CAAC,IAAI,KAAK,UAAU,CAAC;YAC7F,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,gBAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAAgC;IAChD,CAAC;IAED,IAAW,oBAAoB;QAC7B,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,oBAAoB,CAAC,iBAAgD;IACrE,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;CACF;AAtKD,8CAsKC"}
|
|
@@ -6,9 +6,13 @@ export default class NullTracingState implements IOInsights.TracingState {
|
|
|
6
6
|
private disablePropagation;
|
|
7
7
|
matchingFilter: IOInsights.SpanFilter | undefined | null;
|
|
8
8
|
private currentSpanStatus;
|
|
9
|
-
|
|
9
|
+
private _startTime;
|
|
10
|
+
private _endTime?;
|
|
11
|
+
constructor(source: string, propagationInfo: IOInsights.PropagationInfo | null, disablePropagation: boolean, matchingFilter: IOInsights.SpanFilter | undefined | null, startTime?: Date);
|
|
10
12
|
level: "OFF";
|
|
11
|
-
|
|
13
|
+
get startTime(): Date;
|
|
14
|
+
get endTime(): Date | undefined;
|
|
15
|
+
endSpan(endTime?: Date, _allowDoubleEnd?: boolean): Promise<void>;
|
|
12
16
|
get enabled(): boolean;
|
|
13
17
|
get id(): undefined;
|
|
14
18
|
get traceId(): undefined;
|
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class NullTracingState {
|
|
4
|
-
constructor(source, propagationInfo, disablePropagation, matchingFilter
|
|
4
|
+
constructor(source, propagationInfo, disablePropagation, matchingFilter,
|
|
5
|
+
// when the operation started, if that was not just now (a span published after the fact)
|
|
6
|
+
startTime) {
|
|
5
7
|
this.source = source;
|
|
6
8
|
this.propagationInfo = propagationInfo;
|
|
7
9
|
this.disablePropagation = disablePropagation;
|
|
8
10
|
this.matchingFilter = matchingFilter;
|
|
9
11
|
this.currentSpanStatus = { code: 0 /*SpanStatusCode.UNSET*/ };
|
|
10
12
|
this.level = "OFF";
|
|
13
|
+
this._startTime = startTime instanceof Date && !Number.isNaN(startTime.getTime()) ? startTime : new Date();
|
|
11
14
|
}
|
|
12
|
-
|
|
15
|
+
get startTime() {
|
|
16
|
+
return this._startTime;
|
|
17
|
+
}
|
|
18
|
+
get endTime() {
|
|
19
|
+
return this._endTime;
|
|
20
|
+
}
|
|
21
|
+
// like a real span, it ends once: a later end does not move the end time
|
|
22
|
+
endSpan(endTime, _allowDoubleEnd) {
|
|
23
|
+
if (!this._endTime) {
|
|
24
|
+
this._endTime = endTime instanceof Date && !Number.isNaN(endTime.getTime()) ? endTime : new Date();
|
|
25
|
+
}
|
|
13
26
|
return Promise.resolve();
|
|
14
27
|
}
|
|
15
28
|
get enabled() {
|
|
@@ -42,7 +55,9 @@ class NullTracingState {
|
|
|
42
55
|
}
|
|
43
56
|
addData(level, data) {
|
|
44
57
|
}
|
|
45
|
-
end() {
|
|
58
|
+
end() {
|
|
59
|
+
void this.endSpan();
|
|
60
|
+
}
|
|
46
61
|
getPropagationInfo() {
|
|
47
62
|
if (this.propagationInfo) {
|
|
48
63
|
return this.propagationInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullTracingState.js","sourceRoot":"","sources":["../../src/traces/nullTracingState.ts"],"names":[],"mappings":";;AAQA,MAAqB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"nullTracingState.js","sourceRoot":"","sources":["../../src/traces/nullTracingState.ts"],"names":[],"mappings":";;AAQA,MAAqB,gBAAgB;IAUnC,YACS,MAAc,EACb,eAAkD,EAClD,kBAA2B,EAC5B,cAAwD;IAC/D,yFAAyF;IACzF,SAAgB;QALT,WAAM,GAAN,MAAM,CAAQ;QACb,oBAAe,GAAf,eAAe,CAAmC;QAClD,uBAAkB,GAAlB,kBAAkB,CAAS;QAC5B,mBAAc,GAAd,cAAc,CAA0C;QAZzD,sBAAiB,GAAe,EAAE,IAAI,EAAE,CAAQ,CAAC,wBAAwB,EAAE,CAAC;QAkBpF,UAAK,GAAG,KAAc,CAAC;QAHrB,IAAI,CAAC,UAAU,GAAG,SAAS,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7G,CAAC;IAID,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yEAAyE;IAClE,OAAO,CAAC,OAAc,EAAE,eAAyB;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACrG,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,EAAE;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,MAAM,CAAC,MAAkB;QAClC,IAAI,CAAC,iBAAiB,qBAAQ,MAAM,CAAE,CAAC;IACzC,CAAC;IACD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEM,QAAQ,CACb,IAAY,EACZ,qBAA8C,EAC9C,SAAqB;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IACM,eAAe,CAAC,SAAoB,EAAE,IAAgB,IAAG,CAAC;IAC1D,WAAW;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACM,UAAU,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACM,WAAW;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,OAAO,CAAC,KAAuE,EAAE,IAA6B;IACrH,CAAC;IAEM,GAAG;QACR,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAEM,kBAAkB;QACvB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;QACZ,wEAAwE;QACxE,+BAA+B;QAC/B,yDAAyD;QACzD,0BAA0B;IAC5B,CAAC;IAEM,qBAAqB,CAAC,OAA0C;QACrE,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrD,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,eAAe,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AAjGD,mCAiGC"}
|
package/dist/traces/traces.js
CHANGED
|
@@ -82,15 +82,14 @@ class Traces {
|
|
|
82
82
|
return propagationInfoCarrier;
|
|
83
83
|
}
|
|
84
84
|
const nestedPropagationInfo = propagationInfoCarrier === null || propagationInfoCarrier === void 0 ? void 0 : propagationInfoCarrier.__interopIOTracePropagationInfo;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return nestedPropagationInfo;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
return null;
|
|
85
|
+
// The carrier is cleaned up whatever the nested info turns out to be: the key must never reach
|
|
86
|
+
// whoever the carrier belongs to (the arguments of an interop method handler).
|
|
87
|
+
if (nestedPropagationInfo && deleteProperty === true) {
|
|
88
|
+
delete propagationInfoCarrier.__interopIOTracePropagationInfo;
|
|
93
89
|
}
|
|
90
|
+
// (without a traceparent there is nothing to nest under - e.g. the synthetic propagation info
|
|
91
|
+
// of a buffered span, which loses it on its way to another process; see bufferingTracingState)
|
|
92
|
+
return (nestedPropagationInfo === null || nestedPropagationInfo === void 0 ? void 0 : nestedPropagationInfo.traceparent) ? nestedPropagationInfo : null;
|
|
94
93
|
}
|
|
95
94
|
withSequenceSpanEx(source, traceName, filteringContextOrCallback, optionsOrCallback, callback) {
|
|
96
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/traces/traces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/traces/traces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,kDAAqE;AACrE,2DAAwD;AACxD,0EAAkD;AAIlD;;;GAGG;AACH,MAAqB,MAAM;IAElB,MAAM,KAAK,QAAQ;;QACxB,IAAI,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,0CAAE,MAAM,EAAE,CAAC;YAC5C,OAAO,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,0CAAE,MAAM,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IACM,MAAM,KAAK,QAAQ,CAAC,KAA+B;QACxD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,MAAM,KAAK,mBAAmB;;QACnC,OAAO,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,mBAAmB,KAAI,IAAI,0BAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;IACM,MAAM,KAAK,mBAAmB,CAAC,KAAqC;QACzE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,sBAAyG;QAEzG,MAAM,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAC/B,sBAAgF,EAChF,UAAmB,EACnB,YAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,sBAAsB,CAAC;QAE/D,SAAS,MAAM,CAAC,GAAW;YACzB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACjD,CAAC;QAED,0DAA0D;QAC1D,MAAM,WAAW,GAAG,MAAM,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAEvF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAElF,IAAI,KAAK;YACP,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;YACtC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;YACtC,CAAC,CAAC,UAAU,IAAI,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;YAEpC,MAAM,QAAQ,GAAoB;gBAChC,WAAW;aACZ,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YACnC,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;YACvC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAChC,sBAAyG,EACzG,cAAoC;QAEtC,IAAK,sBAAqD,aAArD,sBAAsB,uBAAtB,sBAAsB,CAAiC,WAAW,EAAE,CAAC;YACxE,OAAO,sBAAoD,CAAC;QAC9D,CAAC;QACD,MAAM,qBAAqB,GAAI,sBAA4D,aAA5D,sBAAsB,uBAAtB,sBAAsB,CACjD,+BAA+B,CAAC;QACpC,+FAA+F;QAC/F,+EAA+E;QAC/E,IAAI,qBAAqB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACrD,OAAQ,sBAA4D,CAAC,+BAA+B,CAAC;QACvG,CAAC;QACD,8FAA8F;QAC9F,+FAA+F;QAC/F,OAAO,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,WAAW,EAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAqBY,kBAAkB,CAC7B,MAAc,EACd,SAEQ,EACR,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACvC,MAAM,EACN,SAAS,EACT,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IA0BY,gBAAgB,CAC3B,MAAc,EACd,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CACrC,MAAM,EACN,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAyCD,MAAM,CAAC,QAAQ,CACb,MACU,EACV,4CAIQ,EACR,yBAIQ,EACR,iBAGQ,EACR,QACkC;QAElC,mCAAmC;QACnC,IACE,CAAC,CAAC,4CAA4C,YAAY,QAAQ,CAAC;YACnE,CAAC,yBAAyB;YAC1B,CAAC,iBAAiB;YAClB,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;gBAC/E,IAAI,UAAe,CAAC;gBACpB,IAAI,UAAU,EAAE,CAAC;oBACf,YAAY;oBACZ,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,6BAA6B;oBAC7B,UAAU,GAAG,MAAM,CAAC;gBACtB,CAAC;gBACD,IAAI,cAAc,GAAG,UAAqB,GAAG,IAAW;oBACtD,OAAO,MAAM,CAAC,QAAQ,CACpB,MAAM,EACN,4CAA4C;wBAC1C,CAAC,CAAC,IAAA,2CAA+B,EAAC,4CAAmD,EAAE,IAAI,EAAE,IAAI,CAAC;wBAClG,CAAC,CAAC,EAAE,EACN,IAAI,EACJ,4CAAmF,EACnF,GAAG,EAAE;wBACH,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACtC,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC;gBACF,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvC,yEAAyE;oBACzE,MAAM,KAAK,GAAG,cAAc,CAAC;oBAC7B,cAAc,GAAG,SAAS,6BAA6B,CAAY,GAAG,IAAW;wBAC/E,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjC,CAAC,CAAA;oBACD,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE;wBACxD,KAAK,EAAE,eAAe;wBACtB,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,KAAK,GAAG,cAAc,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,OAAO,cAAc,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAC7B,MAAM,EACN,4CAAmD,EACnD,yBAAgC,EAChC,iBAAwB,EACxB,QAAe,CAChB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,KAAU;QACtC,OAAO,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,wBAAwB,CAAC;IACvE,CAAC;IAQM,MAAM,CAAC,oBAAoB,CAChC,MAAc,EACd,iCAAiF,EACjF,eAAmB;QAEnB,MAAM,gBAAgB,GACpB,iCAAiC,YAAY,QAAQ;YACnD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iCAAwE,CAAC;QAE/E,MAAM,qBAAqB,GAAG,iCAAiC,YAAY,QAAQ;YACjF,CAAC,CAAC,iCAAsC;YACxC,CAAC,CAAC,eAAoB,CAAC;QAEzB,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,qBAAqB,CAAM,CAAC;IAC/E,CAAC;IAEM,MAAM,CAAC,SAAS,CACrB,UAAoC,EACpC,aAAgB;QAChB,KAAK,MAAM,sBAAsB,IAAI,UAAU,EAAE,CAAC;YAChD,IAAI,OAAO,aAAa,CAAC,sBAAsB,CAAC,KAAK,UAAU,EAAE,CAAC;gBAChE,MAAM,cAAc,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;gBAC7D,MAAM,uBAAuB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;gBACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,IAAI,YAAsB,CAAC;gBAC3B,IAAI,OAAO,uBAAuB,KAAK,QAAQ,EAAE,CAAC;oBAChD,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;gBAC3G,CAAC;gBACD,aAAa,CAAC,sBAAsB,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,MAAc,EACd,OAEM,EACN,eAGM,EACR,OAEQ;QACN,IAAI,OAAO,GAAqB,GAAG,EAAE,GAAE,CAAC,CAAC;QACzC,IAAI,MAAM,GAA2B,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,GAAiB,IAAI,0BAAgB,CACzC,MAAM,EACN,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAC9C,KAAK,EACL,IAAI,CAAC,CAAC;QACR,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EACb,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,EACvB,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,EACf,CAAC,GAAG,EAAE,EAAE;YACN,EAAE,GAAG,GAAG,CAAC;YACT,OAAO,IAAI,OAAO,CAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC/B,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,OAAO;YACL,EAAE;YACF,OAAO;YACP,MAAM;SACP,CAAA;IACH,CAAC;CACF;AAzXD,yBAyXC;AAEY,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IOInsights } from "../../insights";
|
|
2
|
+
type Headers = {
|
|
3
|
+
[x: string]: string;
|
|
4
|
+
};
|
|
5
|
+
type HeadersSource = Headers | (() => Headers) | undefined | null;
|
|
6
|
+
/** What an OTLP exporter takes as its `headers`: the headers, or a function asked for them on every export. */
|
|
7
|
+
export type ExportHeaders = Headers | (() => Promise<Headers>);
|
|
8
|
+
export declare const DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS = 5000;
|
|
9
|
+
export declare const DEFAULT_SSO_AUTH_INFO_CACHE_MS = 30000;
|
|
10
|
+
export declare const DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS = 5000;
|
|
11
|
+
/**
|
|
12
|
+
* The headers the SSO login adds to the (static) headers of an export request - see
|
|
13
|
+
* IOInsights.SSOAuthSettings. Exported for the hosts that have to do this on their own, for a
|
|
14
|
+
* process the library does not run in with access to the login (io.Connect Desktop, for the gateway).
|
|
15
|
+
*/
|
|
16
|
+
export declare function applySsoAuthHeaders(headers: Headers | undefined | null, auth: IOInsights.SSOAuthInfo | undefined | null, ssoAuth: IOInsights.SSOAuthSettings | undefined | null): Headers;
|
|
17
|
+
/**
|
|
18
|
+
* The headers of the export requests of a signal: the static ones - later sources win - and, with
|
|
19
|
+
* `ssoAuth.enabled`, the SSO login.
|
|
20
|
+
*
|
|
21
|
+
* Without ssoAuth this is a plain object, evaluated once - the way it has always been. With it, it
|
|
22
|
+
* is a function the OTLP exporters call on every export: the login is asked for when it is needed,
|
|
23
|
+
* so it does not have to be there when io.Insights is initialized, and a refreshed token is picked
|
|
24
|
+
* up. Exports that happen before anybody has logged in go out without it - unless
|
|
25
|
+
* `ssoAuth.waitForLogin` makes them wait. The function never rejects: whatever goes wrong with the
|
|
26
|
+
* login, the export goes ahead with the static headers.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createExportHeaders(staticHeaders: HeadersSource[], ssoAuth: IOInsights.SSOAuthSettings | undefined | null, logger?: IOInsights.Logger): ExportHeaders;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS = exports.DEFAULT_SSO_AUTH_INFO_CACHE_MS = exports.DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS = void 0;
|
|
13
|
+
exports.applySsoAuthHeaders = applySsoAuthHeaders;
|
|
14
|
+
exports.createExportHeaders = createExportHeaders;
|
|
15
|
+
const container_1 = require("../container");
|
|
16
|
+
exports.DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS = 5000;
|
|
17
|
+
exports.DEFAULT_SSO_AUTH_INFO_CACHE_MS = 30000;
|
|
18
|
+
const WAIT_FOR_LOGIN_POLL_MS = 250;
|
|
19
|
+
// A provider that never answers (in a window it is a round trip to the platform) must not hold
|
|
20
|
+
// every export until the batch processor gives up on it - and drops the batch.
|
|
21
|
+
exports.DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS = 5000;
|
|
22
|
+
const authStates = new WeakMap();
|
|
23
|
+
// In a window of io.Connect Desktop the login comes from the platform. It is only handed to
|
|
24
|
+
// applications that are allowed to have it (`allowAuthInfo` in the application definition) -
|
|
25
|
+
// getAuth() throws for the rest.
|
|
26
|
+
const platformProvider = () => {
|
|
27
|
+
var _a;
|
|
28
|
+
const desktopObject = (_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.glue42gd) !== null && _a !== void 0 ? _a : globalThis === null || globalThis === void 0 ? void 0 : globalThis.iodesktop;
|
|
29
|
+
if (typeof (desktopObject === null || desktopObject === void 0 ? void 0 : desktopObject.getAuth) !== "function") {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return desktopObject.getAuth();
|
|
33
|
+
};
|
|
34
|
+
const askWithTimeout = (provider, timeoutMs) => new Promise((resolve, reject) => {
|
|
35
|
+
var _a;
|
|
36
|
+
const timer = setTimeout(() => reject(new Error(`the login provider did not answer in ${timeoutMs} ms`)), timeoutMs);
|
|
37
|
+
(_a = timer === null || timer === void 0 ? void 0 : timer.unref) === null || _a === void 0 ? void 0 : _a.call(timer);
|
|
38
|
+
// (a provider can answer right away, with a promise, or by throwing)
|
|
39
|
+
Promise.resolve()
|
|
40
|
+
.then(() => provider())
|
|
41
|
+
.then((auth) => { clearTimeout(timer); resolve(auth); }, (err) => { clearTimeout(timer); reject(err); });
|
|
42
|
+
});
|
|
43
|
+
// Any login object counts - not only one with a token: a login can be all user information, which
|
|
44
|
+
// is what the `auth` header (useAuthHeader) is for.
|
|
45
|
+
const hasLogin = (auth) => !!auth && typeof auth === "object" && !Array.isArray(auth) && Object.keys(auth).length > 0;
|
|
46
|
+
/**
|
|
47
|
+
* The headers the SSO login adds to the (static) headers of an export request - see
|
|
48
|
+
* IOInsights.SSOAuthSettings. Exported for the hosts that have to do this on their own, for a
|
|
49
|
+
* process the library does not run in with access to the login (io.Connect Desktop, for the gateway).
|
|
50
|
+
*/
|
|
51
|
+
function applySsoAuthHeaders(headers, auth, ssoAuth) {
|
|
52
|
+
var _a;
|
|
53
|
+
const toReturn = Object.assign({}, headers);
|
|
54
|
+
if (!(ssoAuth === null || ssoAuth === void 0 ? void 0 : ssoAuth.enabled) || !hasLogin(auth)) {
|
|
55
|
+
return toReturn;
|
|
56
|
+
}
|
|
57
|
+
if (ssoAuth.useAuthHeader) {
|
|
58
|
+
toReturn["auth"] = (_a = toReturn["auth"]) !== null && _a !== void 0 ? _a : JSON.stringify(auth);
|
|
59
|
+
}
|
|
60
|
+
if (typeof auth.token === "string" && auth.token) {
|
|
61
|
+
toReturn["Authorization"] =
|
|
62
|
+
(ssoAuth.useRawToken === false && auth.token.trim().indexOf(" ") < 0) ?
|
|
63
|
+
"Bearer " + auth.token :
|
|
64
|
+
auth.token;
|
|
65
|
+
}
|
|
66
|
+
if (auth.headers && typeof auth.headers === "object") {
|
|
67
|
+
for (const key of Object.keys(auth.headers)) {
|
|
68
|
+
toReturn[key] = auth.headers[key];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return toReturn;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The headers of the export requests of a signal: the static ones - later sources win - and, with
|
|
75
|
+
* `ssoAuth.enabled`, the SSO login.
|
|
76
|
+
*
|
|
77
|
+
* Without ssoAuth this is a plain object, evaluated once - the way it has always been. With it, it
|
|
78
|
+
* is a function the OTLP exporters call on every export: the login is asked for when it is needed,
|
|
79
|
+
* so it does not have to be there when io.Insights is initialized, and a refreshed token is picked
|
|
80
|
+
* up. Exports that happen before anybody has logged in go out without it - unless
|
|
81
|
+
* `ssoAuth.waitForLogin` makes them wait. The function never rejects: whatever goes wrong with the
|
|
82
|
+
* login, the export goes ahead with the static headers.
|
|
83
|
+
*/
|
|
84
|
+
function createExportHeaders(staticHeaders, ssoAuth, logger) {
|
|
85
|
+
const resolveStatic = () => {
|
|
86
|
+
const toReturn = {};
|
|
87
|
+
for (const source of staticHeaders) {
|
|
88
|
+
Object.assign(toReturn, container_1.Container.errorless(source));
|
|
89
|
+
}
|
|
90
|
+
return toReturn;
|
|
91
|
+
};
|
|
92
|
+
if (!(ssoAuth === null || ssoAuth === void 0 ? void 0 : ssoAuth.enabled)) {
|
|
93
|
+
return resolveStatic();
|
|
94
|
+
}
|
|
95
|
+
const provider = typeof ssoAuth.getAuthInfo === "function" ? ssoAuth.getAuthInfo : platformProvider;
|
|
96
|
+
let state = authStates.get(provider);
|
|
97
|
+
if (!state) {
|
|
98
|
+
state = {};
|
|
99
|
+
authStates.set(provider, state);
|
|
100
|
+
}
|
|
101
|
+
const authState = state;
|
|
102
|
+
const cacheMs = typeof ssoAuth.authInfoCacheMs === "number" && ssoAuth.authInfoCacheMs >= 0 ?
|
|
103
|
+
ssoAuth.authInfoCacheMs :
|
|
104
|
+
exports.DEFAULT_SSO_AUTH_INFO_CACHE_MS;
|
|
105
|
+
const providerTimeoutMs = typeof ssoAuth.authInfoTimeoutMs === "number" && ssoAuth.authInfoTimeoutMs > 0 ?
|
|
106
|
+
ssoAuth.authInfoTimeoutMs :
|
|
107
|
+
exports.DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS;
|
|
108
|
+
const askProvider = () => {
|
|
109
|
+
var _a;
|
|
110
|
+
const cached = authState.cached;
|
|
111
|
+
if (cached && Date.now() - cached.at < cacheMs) {
|
|
112
|
+
return Promise.resolve(cached.auth);
|
|
113
|
+
}
|
|
114
|
+
(_a = authState.inFlight) !== null && _a !== void 0 ? _a : (authState.inFlight = (() => __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
var _a, _b, _c;
|
|
116
|
+
try {
|
|
117
|
+
const auth = (_a = (yield askWithTimeout(provider, providerTimeoutMs))) !== null && _a !== void 0 ? _a : null;
|
|
118
|
+
if (hasLogin(auth)) {
|
|
119
|
+
authState.loginSeen = true;
|
|
120
|
+
authState.cached = { at: Date.now(), auth };
|
|
121
|
+
return auth;
|
|
122
|
+
}
|
|
123
|
+
// nobody has logged in yet: not cached, so the login is picked up as soon as it is there
|
|
124
|
+
authState.cached = undefined;
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
// not allowed to have the login, most likely - no point in asking again right away
|
|
129
|
+
authState.cached = { at: Date.now(), auth: null };
|
|
130
|
+
if (!authState.warned) {
|
|
131
|
+
authState.warned = true;
|
|
132
|
+
(_b = logger === null || logger === void 0 ? void 0 : logger.warn) === null || _b === void 0 ? void 0 : _b.call(logger, "io.Insights ssoAuth: the SSO login is not available, the telemetry is exported without it" +
|
|
133
|
+
" (in io.Connect Desktop the application needs `allowAuthInfo` in its definition): " +
|
|
134
|
+
((_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : err));
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
authState.inFlight = undefined;
|
|
140
|
+
}
|
|
141
|
+
}))());
|
|
142
|
+
return authState.inFlight;
|
|
143
|
+
};
|
|
144
|
+
const waitForLogin = () => __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
var _a;
|
|
146
|
+
const timeoutMs = typeof ssoAuth.waitForLoginTimeoutMs === "number" && ssoAuth.waitForLoginTimeoutMs >= 0 ?
|
|
147
|
+
ssoAuth.waitForLoginTimeoutMs :
|
|
148
|
+
exports.DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS;
|
|
149
|
+
const deadline = Date.now() + timeoutMs;
|
|
150
|
+
for (;;) {
|
|
151
|
+
const auth = yield askProvider();
|
|
152
|
+
if (auth || authState.cached) {
|
|
153
|
+
// logged in - or the login is not available to this application at all
|
|
154
|
+
return auth;
|
|
155
|
+
}
|
|
156
|
+
if (Date.now() >= deadline) {
|
|
157
|
+
authState.waitTimedOut = true;
|
|
158
|
+
(_a = logger === null || logger === void 0 ? void 0 : logger.warn) === null || _a === void 0 ? void 0 : _a.call(logger, `io.Insights ssoAuth: nobody has logged in after ${timeoutMs} ms - exporting without the SSO login`);
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
yield new Promise((resolve) => {
|
|
162
|
+
var _a;
|
|
163
|
+
const timer = setTimeout(resolve, Math.min(WAIT_FOR_LOGIN_POLL_MS, Math.max(0, deadline - Date.now())));
|
|
164
|
+
// (Node.js: an export waiting for a login must not be what keeps the process from exiting)
|
|
165
|
+
(_a = timer === null || timer === void 0 ? void 0 : timer.unref) === null || _a === void 0 ? void 0 : _a.call(timer);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
return () => __awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
let headers = {};
|
|
171
|
+
try {
|
|
172
|
+
headers = resolveStatic();
|
|
173
|
+
const shouldWait = ssoAuth.waitForLogin === true && !authState.loginSeen && !authState.waitTimedOut;
|
|
174
|
+
const auth = shouldWait ? yield waitForLogin() : yield askProvider();
|
|
175
|
+
return applySsoAuthHeaders(headers, auth, ssoAuth);
|
|
176
|
+
}
|
|
177
|
+
catch (_a) {
|
|
178
|
+
return headers;
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=exportHeaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportHeaders.js","sourceRoot":"","sources":["../../src/utils/exportHeaders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { IOInsights } from "../../insights";
|
|
2
2
|
export declare const flattenOtelAtributes: (data: object, maxDepth: number) => {};
|
|
3
3
|
export declare const getOTELData: (key: string, value: any, depth: number, maxDepth: number) => any[];
|
|
4
|
+
/**
|
|
5
|
+
* Whether a value is an Error. Also matches errors from other realms (iframes, vm contexts),
|
|
6
|
+
* where `instanceof Error` fails.
|
|
7
|
+
*/
|
|
8
|
+
export declare const isError: (value: any) => value is Error;
|
|
4
9
|
export declare const deep_value: (obj: {
|
|
5
10
|
[x: string]: any;
|
|
6
11
|
}, path: any) => any;
|