@interopio/otel 0.1.7 → 0.1.10
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/container.js +14 -11
- package/dist/container.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/traces/bufferingTracesManager.d.ts +62 -0
- package/dist/traces/bufferingTracesManager.js +300 -0
- package/dist/traces/bufferingTracesManager.js.map +1 -0
- package/dist/traces/bufferingTracingState.d.ts +74 -0
- package/dist/traces/bufferingTracingState.js +120 -0
- package/dist/traces/bufferingTracingState.js.map +1 -0
- package/dist/traces/nullTracesManager.js +2 -2
- package/dist/traces/nullTracesManager.js.map +1 -1
- package/dist/traces/nullTracingState.d.ts +2 -1
- package/dist/traces/nullTracingState.js +2 -1
- package/dist/traces/nullTracingState.js.map +1 -1
- package/dist/traces/traces.d.ts +6 -7
- package/dist/traces/traces.js +31 -1
- package/dist/traces/traces.js.map +1 -1
- package/insights.d.ts +110 -24
- package/package.json +1 -1
package/dist/container.js
CHANGED
|
@@ -138,21 +138,24 @@ class Container {
|
|
|
138
138
|
}
|
|
139
139
|
start() {
|
|
140
140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
141
|
+
if (!this.started) {
|
|
142
|
+
const metricsPromise = this.metrics.settings.enabled ? this.metrics.start() : Promise.resolve();
|
|
143
|
+
const tracesPromise = this.traces.settings.enabled ? this.traces.start() : Promise.resolve();
|
|
144
|
+
const logsPromise = this.logs.settings.enabled ? this.logs.start() : Promise.resolve();
|
|
145
|
+
yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
|
|
146
|
+
this.started = true;
|
|
147
|
+
}
|
|
147
148
|
});
|
|
148
149
|
}
|
|
149
150
|
stop() {
|
|
150
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
152
|
+
if (this.started) {
|
|
153
|
+
const metricsPromise = this.metrics.started ? this.metrics.stop() : Promise.resolve();
|
|
154
|
+
const tracesPromise = this.traces.started ? this.traces.stop() : Promise.resolve();
|
|
155
|
+
const logsPromise = this.logs.started ? this.logs.stop() : Promise.resolve();
|
|
156
|
+
yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
|
|
157
|
+
this.started = false;
|
|
158
|
+
}
|
|
156
159
|
});
|
|
157
160
|
}
|
|
158
161
|
}
|
package/dist/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -89,6 +89,8 @@ export { Traces, withSpan };
|
|
|
89
89
|
export declare const OTEL_PI_KEY = "__interopIOTracePropagationInfo";
|
|
90
90
|
import NullTracingState from "./traces/nullTracingState";
|
|
91
91
|
export { NullTracingState };
|
|
92
|
+
export { BufferingTracesManager } from "./traces/bufferingTracesManager";
|
|
93
|
+
export type { RecordedSpan } from "./traces/bufferingTracingState";
|
|
92
94
|
export type ioInsightsLogsPlugin = {
|
|
93
95
|
newLogsManager: (logger: IOInsights.Logger, settings: IOInsights.LogsSettings, otelSettings: IOInsights.Settings) => IOInsights.LogsManager;
|
|
94
96
|
};
|
|
@@ -123,3 +125,5 @@ declare enum SpanStatusCode {
|
|
|
123
125
|
ERROR = 2
|
|
124
126
|
}
|
|
125
127
|
export { SpanStatusCode };
|
|
128
|
+
export type IncrementalMetric<T extends IOInsights.MetricData> = IOInsights.IncrementalMetric<T>;
|
|
129
|
+
export type RecordingMetric<T extends IOInsights.MetricData> = IOInsights.RecordingMetric<T>;
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.SpanStatusCode = exports.withTimeout = exports.deep_value = exports.extractFilteringContextFromArgs = exports.getOTELData = exports.flattenOtelAtributes = exports.safeStringify = exports.isNode = exports.loadInsightsPlugin = exports.registerInsightsPlugin = exports.Logs = exports.NullTracingState = exports.OTEL_PI_KEY = exports.withSpan = exports.Traces = exports.MetricsDependencyBuilder = exports.NullMetric = exports.Container = exports.Log4jsWrapper = exports.Builder = void 0;
|
|
39
|
+
exports.SpanStatusCode = exports.withTimeout = exports.deep_value = exports.extractFilteringContextFromArgs = exports.getOTELData = exports.flattenOtelAtributes = exports.safeStringify = exports.isNode = exports.loadInsightsPlugin = exports.registerInsightsPlugin = exports.Logs = exports.BufferingTracesManager = exports.NullTracingState = exports.OTEL_PI_KEY = exports.withSpan = exports.Traces = exports.MetricsDependencyBuilder = exports.NullMetric = exports.Container = exports.Log4jsWrapper = exports.Builder = void 0;
|
|
40
40
|
;
|
|
41
41
|
var builder_1 = require("./builder");
|
|
42
42
|
Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return builder_1.Builder; } });
|
|
@@ -54,6 +54,8 @@ Object.defineProperty(exports, "withSpan", { enumerable: true, get: function ()
|
|
|
54
54
|
exports.OTEL_PI_KEY = "__interopIOTracePropagationInfo";
|
|
55
55
|
const nullTracingState_1 = __importDefault(require("./traces/nullTracingState"));
|
|
56
56
|
exports.NullTracingState = nullTracingState_1.default;
|
|
57
|
+
var bufferingTracesManager_1 = require("./traces/bufferingTracesManager");
|
|
58
|
+
Object.defineProperty(exports, "BufferingTracesManager", { enumerable: true, get: function () { return bufferingTracesManager_1.BufferingTracesManager; } });
|
|
57
59
|
var logs_1 = require("./logs/logs");
|
|
58
60
|
Object.defineProperty(exports, "Logs", { enumerable: true, get: function () { return logs_1.Logs; } });
|
|
59
61
|
const pluginLoader_1 = require("./pluginLoader");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASC,CAAC;AAKF,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AA0BlB,uCAA4C;AAAnC,kGAAA,UAAU,OAAA;AACnB,+EAA8E;AAArE,oIAAA,wBAAwB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASC,CAAC;AAKF,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AA0BlB,uCAA4C;AAAnC,kGAAA,UAAU,OAAA;AACnB,+EAA8E;AAArE,oIAAA,wBAAwB,OAAA;AAgEjC,0DAAoD;AAC3C,iBADF,gBAAM,CACE;AAAE,yFADC,iBAAQ,OACD;AACZ,QAAA,WAAW,GAAG,iCAAiC,CAAC;AAC7D,iFAAyD;AAChD,2BADF,0BAAgB,CACE;AACzB,0EAAyE;AAAhE,gIAAA,sBAAsB,OAAA;AAY/B,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AAUb,iDAA4E;AAInE,uGAJA,qCAAsB,OAIA;AAAE,mGAJA,iCAAkB,OAIA;AAHnD,2CAAwC;AAI/B,uFAJA,eAAM,OAIA;AAHf,2DAAuD;AAGtC,8FAHR,8BAAa,OAGQ;AAF9B,iDAAgI;AAE1E,4FAF7C,uBAAW,OAE6C;AAAjC,qGAFV,gCAAoB,OAEU;AAAe,gHAFvB,2CAA+B,OAEuB;AAAE,2FAFvB,sBAAU,OAEuB;AAAE,4FAFvB,uBAAW,OAEuB;AAE3H,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;IACnC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CACxE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;SACrB,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;QACnB,MAAM,EAAE,WAAW;QACnB,KAAK;KACR,CAAC,CAAC;SACF,KAAK,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;QACrB,MAAM,EAAE,UAAU;QAClB,MAAM;KACT,CAAC,CAAC,CACN,CACF,CAAC,CAAC;AACL,CAAC;AACD,IAAK,cAcJ;AAdD,WAAK,cAAc;IACjB;;OAEG;IACH,qDAAS,CAAA;IACT;;;OAGG;IACH,+CAAM,CAAA;IACN;;OAEG;IACH,qDAAS,CAAA;AACX,CAAC,EAdI,cAAc,8BAAd,cAAc,QAclB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { IOInsights } from "../../insights";
|
|
2
|
+
import { NullManager } from "../nullManager";
|
|
3
|
+
type PropagationInfo = IOInsights.PropagationInfo;
|
|
4
|
+
/**
|
|
5
|
+
* A stand-in TracesManager used **before** the OTEL SDK is initialized.
|
|
6
|
+
*
|
|
7
|
+
* It behaves like {@link NullTracesManager} for control flow — every callback is
|
|
8
|
+
* executed and its result returned untouched — but instead of discarding the
|
|
9
|
+
* span it records the call (timing, nesting, events, attributes, status,
|
|
10
|
+
* exceptions) into an in-memory tree. Once the real TracesManager is available,
|
|
11
|
+
* call {@link replayInto} to re-create the whole tree as real spans, preserving
|
|
12
|
+
* the original start/end timestamps and nesting.
|
|
13
|
+
*
|
|
14
|
+
* Nesting is captured automatically via AsyncLocalStorage, so existing
|
|
15
|
+
* `Traces.withSpan` / `@withSpan` instrumentation is buffered without any change
|
|
16
|
+
* at the call site.
|
|
17
|
+
*/
|
|
18
|
+
export declare class BufferingTracesManager extends NullManager<IOInsights.TracesSettings> implements IOInsights.TracesManager {
|
|
19
|
+
private logger?;
|
|
20
|
+
private readonly maxSpans;
|
|
21
|
+
private readonly roots;
|
|
22
|
+
private readonly piIndex;
|
|
23
|
+
private readonly als;
|
|
24
|
+
private syncParent;
|
|
25
|
+
private spanCount;
|
|
26
|
+
private dropped;
|
|
27
|
+
private _currentTracingState;
|
|
28
|
+
constructor(logger?: IOInsights.Logger | undefined, maxSpans?: number);
|
|
29
|
+
get settings(): IOInsights.TracesSettings;
|
|
30
|
+
set settings(_value: IOInsights.TracesSettings);
|
|
31
|
+
get currentTracingState(): IOInsights.TracingState | null;
|
|
32
|
+
set currentTracingState(ts: IOInsights.TracingState | null);
|
|
33
|
+
withSequenceSpan<T>(source: string, filteringContextOrCallback: IOInsights.FilteringContext | IOInsights.WithSpanCallback<T> | null, optionsOrCallback?: IOInsights.WithSpanOptions | IOInsights.WithSpanCallback<T> | null, callback?: IOInsights.WithSpanCallback<T>): Promise<T>;
|
|
34
|
+
withSequenceSpanEx<T>(source: string, _traceName: string | null, filteringContextOrCallback: IOInsights.FilteringContext | IOInsights.WithSpanCallback<T> | null, optionsOrCallback?: IOInsights.WithSpanOptions | IOInsights.WithSpanCallback<T> | null, callback?: IOInsights.WithSpanCallback<T>): Promise<T>;
|
|
35
|
+
withSpan<T>(source: string, filteringContextOrCallback: IOInsights.FilteringContext | IOInsights.WithSpanCallback<T> | null, propagationInfoOrCallback?: IOInsights.PropagationInfo | IOInsights.PropagationInfoCarrier | IOInsights.WithSpanCallback<T> | null, optionsOrCallback?: IOInsights.WithSpanOptions | IOInsights.WithSpanCallback<T> | null, callback?: IOInsights.WithSpanCallback<T>): T;
|
|
36
|
+
/**
|
|
37
|
+
* Runs the callback, recording timing/status onto the node (when `record`),
|
|
38
|
+
* and — matching the real manager — ending the span in the async tail if the
|
|
39
|
+
* callback returns a thenable.
|
|
40
|
+
*/
|
|
41
|
+
private execute;
|
|
42
|
+
private runInChild;
|
|
43
|
+
private currentParent;
|
|
44
|
+
private resolveParent;
|
|
45
|
+
private extractPropagationInfo;
|
|
46
|
+
/**
|
|
47
|
+
* Re-creates the whole recorded tree as real spans on the given (initialized)
|
|
48
|
+
* manager, preserving original timestamps and nesting.
|
|
49
|
+
*
|
|
50
|
+
* @param parentPI Optional propagation info to nest all buffered top-level
|
|
51
|
+
* spans under (e.g. the app's real startup root span). A buffered root that
|
|
52
|
+
* carried its own external propagation info keeps it instead.
|
|
53
|
+
*/
|
|
54
|
+
replayInto(manager: IOInsights.TracesManager, parentPI?: PropagationInfo | null): void;
|
|
55
|
+
private replayNode;
|
|
56
|
+
setFilterConfig(_filters: IOInsights.SpanFilter[]): void;
|
|
57
|
+
get startupTraceFinished(): (() => void);
|
|
58
|
+
get userJourneyMarker(): IOInsights.MarkerSpanCallback;
|
|
59
|
+
setUserJourneyMarker(_userJourneyMarker: IOInsights.MarkerSpanCallback): void;
|
|
60
|
+
get clickstreamMarker(): IOInsights.MarkerSpanCallback;
|
|
61
|
+
}
|
|
62
|
+
export default BufferingTracesManager;
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.BufferingTracesManager = void 0;
|
|
46
|
+
const nullManager_1 = require("../nullManager");
|
|
47
|
+
const bufferingTracingState_1 = __importStar(require("./bufferingTracingState"));
|
|
48
|
+
// SpanStatusCode is declared in the package index; use the raw numeric values
|
|
49
|
+
// here to avoid a circular import at module-evaluation time (index -> this file).
|
|
50
|
+
const STATUS_OK = 1; // SpanStatusCode.OK
|
|
51
|
+
const STATUS_ERROR = 2; // SpanStatusCode.ERROR
|
|
52
|
+
// AsyncLocalStorage gives us automatic parent/child nesting across `await`
|
|
53
|
+
// boundaries. It only exists in Node; in a browser bundle the require fails and
|
|
54
|
+
// we fall back to a synchronous parent stack (good enough — buffering only ever
|
|
55
|
+
// runs in the Electron main process during startup).
|
|
56
|
+
let AsyncLocalStorageCtor;
|
|
57
|
+
try {
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
59
|
+
AsyncLocalStorageCtor = require("async_hooks").AsyncLocalStorage;
|
|
60
|
+
}
|
|
61
|
+
catch (_a) {
|
|
62
|
+
AsyncLocalStorageCtor = undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A stand-in TracesManager used **before** the OTEL SDK is initialized.
|
|
66
|
+
*
|
|
67
|
+
* It behaves like {@link NullTracesManager} for control flow — every callback is
|
|
68
|
+
* executed and its result returned untouched — but instead of discarding the
|
|
69
|
+
* span it records the call (timing, nesting, events, attributes, status,
|
|
70
|
+
* exceptions) into an in-memory tree. Once the real TracesManager is available,
|
|
71
|
+
* call {@link replayInto} to re-create the whole tree as real spans, preserving
|
|
72
|
+
* the original start/end timestamps and nesting.
|
|
73
|
+
*
|
|
74
|
+
* Nesting is captured automatically via AsyncLocalStorage, so existing
|
|
75
|
+
* `Traces.withSpan` / `@withSpan` instrumentation is buffered without any change
|
|
76
|
+
* at the call site.
|
|
77
|
+
*/
|
|
78
|
+
class BufferingTracesManager extends nullManager_1.NullManager {
|
|
79
|
+
constructor(logger, maxSpans = 10000) {
|
|
80
|
+
super();
|
|
81
|
+
this.logger = logger;
|
|
82
|
+
this.maxSpans = maxSpans;
|
|
83
|
+
this.roots = [];
|
|
84
|
+
this.piIndex = new Map();
|
|
85
|
+
this.als = AsyncLocalStorageCtor ? new AsyncLocalStorageCtor() : undefined;
|
|
86
|
+
this.spanCount = 0;
|
|
87
|
+
this.dropped = 0;
|
|
88
|
+
this._currentTracingState = null;
|
|
89
|
+
this.started = true;
|
|
90
|
+
}
|
|
91
|
+
get settings() {
|
|
92
|
+
// Report enabled so instrumented code doesn't short-circuit its data
|
|
93
|
+
// gathering while we're buffering.
|
|
94
|
+
return { enabled: true };
|
|
95
|
+
}
|
|
96
|
+
set settings(_value) {
|
|
97
|
+
// no-op: buffering has no real settings
|
|
98
|
+
}
|
|
99
|
+
get currentTracingState() {
|
|
100
|
+
return this._currentTracingState;
|
|
101
|
+
}
|
|
102
|
+
set currentTracingState(ts) {
|
|
103
|
+
this._currentTracingState = ts;
|
|
104
|
+
}
|
|
105
|
+
withSequenceSpan(source, filteringContextOrCallback, optionsOrCallback, callback) {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
return this.withSequenceSpanEx(source, source + ".start", filteringContextOrCallback, optionsOrCallback, callback);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
withSequenceSpanEx(source, _traceName, filteringContextOrCallback, optionsOrCallback, callback) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
// No cross-process PI persistence while buffering — just record the span.
|
|
113
|
+
return this.withSpan(source, filteringContextOrCallback, null, optionsOrCallback, callback);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
withSpan(source, filteringContextOrCallback, propagationInfoOrCallback, optionsOrCallback, callback) {
|
|
117
|
+
const actualCallback = typeof filteringContextOrCallback === "function" ? filteringContextOrCallback
|
|
118
|
+
: typeof propagationInfoOrCallback === "function" ? propagationInfoOrCallback
|
|
119
|
+
: typeof optionsOrCallback === "function" ? optionsOrCallback
|
|
120
|
+
: callback;
|
|
121
|
+
if (typeof actualCallback !== "function") {
|
|
122
|
+
throw new Error("Callback must be a function, received " + typeof actualCallback);
|
|
123
|
+
}
|
|
124
|
+
const filteringContext = filteringContextOrCallback && typeof filteringContextOrCallback !== "function"
|
|
125
|
+
? Object.assign({}, filteringContextOrCallback) : {};
|
|
126
|
+
const explicitPI = typeof propagationInfoOrCallback === "function"
|
|
127
|
+
? null
|
|
128
|
+
: this.extractPropagationInfo(propagationInfoOrCallback);
|
|
129
|
+
const options = typeof optionsOrCallback === "function" ? undefined : optionsOrCallback !== null && optionsOrCallback !== void 0 ? optionsOrCallback : undefined;
|
|
130
|
+
const disablePropagation = (options === null || options === void 0 ? void 0 : options.disablePropagation) === true;
|
|
131
|
+
const node = (0, bufferingTracingState_1.createRecordedSpan)(source, filteringContext, explicitPI, options !== null && options !== void 0 ? options : undefined, new Date());
|
|
132
|
+
const ts = new bufferingTracingState_1.default(node, disablePropagation);
|
|
133
|
+
// Capacity guard: keep executing callbacks, but stop recording so a hang
|
|
134
|
+
// before init can't grow the buffer without bound. Descendants attach to the
|
|
135
|
+
// nearest still-recorded ancestor (we don't open a scope for dropped spans).
|
|
136
|
+
if (this.spanCount >= this.maxSpans) {
|
|
137
|
+
this.dropped++;
|
|
138
|
+
return this.execute(ts, node, actualCallback, false);
|
|
139
|
+
}
|
|
140
|
+
this.spanCount++;
|
|
141
|
+
const parent = this.resolveParent(explicitPI);
|
|
142
|
+
if (parent) {
|
|
143
|
+
parent.children.push(node);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.roots.push(node);
|
|
147
|
+
}
|
|
148
|
+
if (node.syntheticPropagationInfo.traceparent) {
|
|
149
|
+
this.piIndex.set(node.syntheticPropagationInfo.traceparent, node);
|
|
150
|
+
}
|
|
151
|
+
return this.execute(ts, node, actualCallback, true);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Runs the callback, recording timing/status onto the node (when `record`),
|
|
155
|
+
* and — matching the real manager — ending the span in the async tail if the
|
|
156
|
+
* callback returns a thenable.
|
|
157
|
+
*/
|
|
158
|
+
execute(ts, node, actualCallback, record) {
|
|
159
|
+
const finalize = () => {
|
|
160
|
+
if (record && !node.endTime) {
|
|
161
|
+
node.endTime = new Date();
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const onError = (err) => {
|
|
165
|
+
if (record) {
|
|
166
|
+
node.status = { code: STATUS_ERROR, message: typeof err === "string" ? err : err === null || err === void 0 ? void 0 : err.message };
|
|
167
|
+
node.exceptions.push({ exception: err });
|
|
168
|
+
}
|
|
169
|
+
finalize();
|
|
170
|
+
};
|
|
171
|
+
const prevTS = this._currentTracingState;
|
|
172
|
+
this._currentTracingState = ts;
|
|
173
|
+
let result;
|
|
174
|
+
let threw = false;
|
|
175
|
+
let errObj;
|
|
176
|
+
try {
|
|
177
|
+
// Only open a nesting scope for recorded spans, so descendants of a dropped
|
|
178
|
+
// span don't get parented to a node that will never be replayed.
|
|
179
|
+
result = record ? this.runInChild(node, () => actualCallback(ts)) : actualCallback(ts);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
threw = true;
|
|
183
|
+
errObj = err;
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
this._currentTracingState = prevTS;
|
|
187
|
+
}
|
|
188
|
+
if (threw) {
|
|
189
|
+
onError(errObj);
|
|
190
|
+
throw errObj;
|
|
191
|
+
}
|
|
192
|
+
if (result && typeof result.then === "function") {
|
|
193
|
+
return result.then((r) => { finalize(); return r; }, (err) => { onError(err); throw err; });
|
|
194
|
+
}
|
|
195
|
+
finalize();
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
runInChild(node, fn) {
|
|
199
|
+
if (this.als) {
|
|
200
|
+
return this.als.run(node, fn);
|
|
201
|
+
}
|
|
202
|
+
const prev = this.syncParent;
|
|
203
|
+
this.syncParent = node;
|
|
204
|
+
try {
|
|
205
|
+
return fn();
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
this.syncParent = prev;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
currentParent() {
|
|
212
|
+
return this.als ? this.als.getStore() : this.syncParent;
|
|
213
|
+
}
|
|
214
|
+
resolveParent(explicitPI) {
|
|
215
|
+
if (explicitPI === null || explicitPI === void 0 ? void 0 : explicitPI.traceparent) {
|
|
216
|
+
// Manual nesting under another buffered span.
|
|
217
|
+
const match = this.piIndex.get(explicitPI.traceparent);
|
|
218
|
+
if (match) {
|
|
219
|
+
return match;
|
|
220
|
+
}
|
|
221
|
+
// An external (cross-process) PI: this becomes a root and carries the PI
|
|
222
|
+
// through to replay so it nests under the real remote trace.
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
return this.currentParent();
|
|
226
|
+
}
|
|
227
|
+
extractPropagationInfo(carrier) {
|
|
228
|
+
var _a;
|
|
229
|
+
if (!carrier) {
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
if (carrier.traceparent) {
|
|
233
|
+
return carrier;
|
|
234
|
+
}
|
|
235
|
+
return (_a = carrier.__interopIOTracePropagationInfo) !== null && _a !== void 0 ? _a : null;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Re-creates the whole recorded tree as real spans on the given (initialized)
|
|
239
|
+
* manager, preserving original timestamps and nesting.
|
|
240
|
+
*
|
|
241
|
+
* @param parentPI Optional propagation info to nest all buffered top-level
|
|
242
|
+
* spans under (e.g. the app's real startup root span). A buffered root that
|
|
243
|
+
* carried its own external propagation info keeps it instead.
|
|
244
|
+
*/
|
|
245
|
+
replayInto(manager, parentPI = null) {
|
|
246
|
+
var _a, _b, _c;
|
|
247
|
+
for (const root of this.roots) {
|
|
248
|
+
this.replayNode(manager, root, (_a = root.explicitPropagationInfo) !== null && _a !== void 0 ? _a : parentPI);
|
|
249
|
+
}
|
|
250
|
+
if (this.dropped > 0) {
|
|
251
|
+
(_c = (_b = this.logger) === null || _b === void 0 ? void 0 : _b.warn) === null || _c === void 0 ? void 0 : _c.call(_b, `BufferingTracesManager: ${this.dropped} startup span(s) dropped after reaching the buffer cap of ${this.maxSpans}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
replayNode(manager, node, parentPI) {
|
|
255
|
+
var _a;
|
|
256
|
+
const options = Object.assign(Object.assign({}, node.options), { otelSpanOptions: Object.assign(Object.assign({}, (_a = node.options) === null || _a === void 0 ? void 0 : _a.otelSpanOptions), { startTime: node.startTime }),
|
|
257
|
+
// We restore the recorded status explicitly below, so don't let the real
|
|
258
|
+
// manager stamp OK on the (already-resolved) callback.
|
|
259
|
+
autoSetSuccessStatus: false });
|
|
260
|
+
manager.withSpan(node.source, node.filteringContext, parentPI, options, (ts) => {
|
|
261
|
+
var _a, _b;
|
|
262
|
+
if (node.updatedName) {
|
|
263
|
+
ts.updateName(node.updatedName);
|
|
264
|
+
}
|
|
265
|
+
for (const e of node.events) {
|
|
266
|
+
ts.addEvent(e.name, e.attributesOrStartTime, e.startTime);
|
|
267
|
+
}
|
|
268
|
+
for (const d of node.addedData) {
|
|
269
|
+
ts.addData(d.level, d.data);
|
|
270
|
+
}
|
|
271
|
+
for (const x of node.exceptions) {
|
|
272
|
+
ts.recordException(x.exception, x.time);
|
|
273
|
+
}
|
|
274
|
+
ts.status = (_a = node.status) !== null && _a !== void 0 ? _a : { code: STATUS_OK };
|
|
275
|
+
const childPI = ts.getPropagationInfo();
|
|
276
|
+
for (const child of node.children) {
|
|
277
|
+
this.replayNode(manager, child, childPI);
|
|
278
|
+
}
|
|
279
|
+
void ts.endSpan((_b = node.endTime) !== null && _b !== void 0 ? _b : new Date());
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
setFilterConfig(_filters) {
|
|
283
|
+
// no-op while buffering
|
|
284
|
+
}
|
|
285
|
+
get startupTraceFinished() {
|
|
286
|
+
return () => { };
|
|
287
|
+
}
|
|
288
|
+
get userJourneyMarker() {
|
|
289
|
+
return () => { };
|
|
290
|
+
}
|
|
291
|
+
setUserJourneyMarker(_userJourneyMarker) {
|
|
292
|
+
// no-op while buffering
|
|
293
|
+
}
|
|
294
|
+
get clickstreamMarker() {
|
|
295
|
+
return () => { };
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
exports.BufferingTracesManager = BufferingTracesManager;
|
|
299
|
+
exports.default = BufferingTracesManager;
|
|
300
|
+
//# sourceMappingURL=bufferingTracesManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bufferingTracesManager.js","sourceRoot":"","sources":["../../src/traces/bufferingTracesManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type Exception, type TimeInput, type Attributes, type SpanStatus } from "@opentelemetry/api";
|
|
2
|
+
import { IOInsights } from "../../insights";
|
|
3
|
+
/**
|
|
4
|
+
* A recorded span, captured before the OTEL SDK is initialized. The tree of
|
|
5
|
+
* these (see {@link RecordedSpan.children}) is replayed into the real
|
|
6
|
+
* TracesManager once it becomes available. See BufferingTracesManager.
|
|
7
|
+
*/
|
|
8
|
+
export interface RecordedSpan {
|
|
9
|
+
source: string;
|
|
10
|
+
filteringContext: IOInsights.FilteringContext;
|
|
11
|
+
/** Explicit propagation info passed to withSpan, if any (used to resolve manual parenting). */
|
|
12
|
+
explicitPropagationInfo: IOInsights.PropagationInfo | null;
|
|
13
|
+
options?: IOInsights.WithSpanOptions;
|
|
14
|
+
startTime: Date;
|
|
15
|
+
endTime?: Date;
|
|
16
|
+
status?: SpanStatus;
|
|
17
|
+
updatedName?: string;
|
|
18
|
+
events: {
|
|
19
|
+
name: string;
|
|
20
|
+
attributesOrStartTime?: Attributes | TimeInput;
|
|
21
|
+
startTime?: TimeInput;
|
|
22
|
+
}[];
|
|
23
|
+
addedData: {
|
|
24
|
+
level: IOInsights.SpanVerbosity | keyof typeof IOInsights.SpanVerbosity;
|
|
25
|
+
data: object;
|
|
26
|
+
}[];
|
|
27
|
+
exceptions: {
|
|
28
|
+
exception: Exception;
|
|
29
|
+
time?: TimeInput;
|
|
30
|
+
}[];
|
|
31
|
+
children: RecordedSpan[];
|
|
32
|
+
/**
|
|
33
|
+
* Synthetic, self-consistent propagation info so code that reads/injects
|
|
34
|
+
* propagation during startup keeps working. It does NOT correspond to a real
|
|
35
|
+
* OTEL trace; nesting is reconstructed from the recorded tree at replay time.
|
|
36
|
+
*/
|
|
37
|
+
syntheticPropagationInfo: IOInsights.PropagationInfo;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates a fresh {@link RecordedSpan} with a synthetic W3C traceparent.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createRecordedSpan(source: string, filteringContext: IOInsights.FilteringContext, explicitPropagationInfo: IOInsights.PropagationInfo | null, options: IOInsights.WithSpanOptions | undefined, startTime: Date): RecordedSpan;
|
|
43
|
+
/**
|
|
44
|
+
* A no-op-for-OTEL TracingState that records everything into a {@link RecordedSpan}
|
|
45
|
+
* instead of writing to a live span. Verbosity/level filtering is intentionally
|
|
46
|
+
* NOT applied here (the real level isn't known until settings are loaded) — every
|
|
47
|
+
* addData call is recorded and filtered when replayed by the real TracingState.
|
|
48
|
+
*/
|
|
49
|
+
export default class BufferingTracingState implements IOInsights.TracingState {
|
|
50
|
+
node: RecordedSpan;
|
|
51
|
+
private disablePropagation;
|
|
52
|
+
private hasEnded;
|
|
53
|
+
constructor(node: RecordedSpan, disablePropagation: boolean);
|
|
54
|
+
readonly enabled = true;
|
|
55
|
+
level: keyof typeof IOInsights.SpanVerbosity;
|
|
56
|
+
get source(): string;
|
|
57
|
+
set source(value: string);
|
|
58
|
+
get startTime(): Date;
|
|
59
|
+
get endTime(): Date | undefined;
|
|
60
|
+
get id(): string | undefined;
|
|
61
|
+
get traceId(): string | undefined;
|
|
62
|
+
set status(status: SpanStatus);
|
|
63
|
+
get status(): SpanStatus;
|
|
64
|
+
end(): void;
|
|
65
|
+
endSpan(endTime?: Date, allowDoubleEnd?: boolean): Promise<void>;
|
|
66
|
+
addEvent(name: string, attributesOrStartTime?: Attributes | TimeInput, startTime?: TimeInput): this;
|
|
67
|
+
recordException(exception: Exception, time?: TimeInput): void;
|
|
68
|
+
isRecording(): boolean;
|
|
69
|
+
updateName(name: string): this;
|
|
70
|
+
spanContext(): undefined;
|
|
71
|
+
addData(level: IOInsights.SpanVerbosity | keyof typeof IOInsights.SpanVerbosity, data: object | (() => object)): void;
|
|
72
|
+
getPropagationInfo(): IOInsights.PropagationInfo;
|
|
73
|
+
injectPropagationInfo(carrier: IOInsights.PropagationInfoCarrier): void;
|
|
74
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRecordedSpan = createRecordedSpan;
|
|
4
|
+
function randomHex(bytes) {
|
|
5
|
+
let out = "";
|
|
6
|
+
for (let i = 0; i < bytes * 2; i++) {
|
|
7
|
+
out += Math.floor(Math.random() * 16).toString(16);
|
|
8
|
+
}
|
|
9
|
+
return out;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates a fresh {@link RecordedSpan} with a synthetic W3C traceparent.
|
|
13
|
+
*/
|
|
14
|
+
function createRecordedSpan(source, filteringContext, explicitPropagationInfo, options, startTime) {
|
|
15
|
+
return {
|
|
16
|
+
source,
|
|
17
|
+
filteringContext,
|
|
18
|
+
explicitPropagationInfo,
|
|
19
|
+
options,
|
|
20
|
+
startTime,
|
|
21
|
+
events: [],
|
|
22
|
+
addedData: [],
|
|
23
|
+
exceptions: [],
|
|
24
|
+
children: [],
|
|
25
|
+
syntheticPropagationInfo: {
|
|
26
|
+
traceparent: `00-${randomHex(16)}-${randomHex(8)}-01`,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A no-op-for-OTEL TracingState that records everything into a {@link RecordedSpan}
|
|
32
|
+
* instead of writing to a live span. Verbosity/level filtering is intentionally
|
|
33
|
+
* NOT applied here (the real level isn't known until settings are loaded) — every
|
|
34
|
+
* addData call is recorded and filtered when replayed by the real TracingState.
|
|
35
|
+
*/
|
|
36
|
+
class BufferingTracingState {
|
|
37
|
+
constructor(node, disablePropagation) {
|
|
38
|
+
this.node = node;
|
|
39
|
+
this.disablePropagation = disablePropagation;
|
|
40
|
+
this.hasEnded = false;
|
|
41
|
+
// The buffer is only ever populated when recording is desired, so it always
|
|
42
|
+
// reports as recording — otherwise instrumented code would skip gathering the
|
|
43
|
+
// attributes we want to replay.
|
|
44
|
+
this.enabled = true;
|
|
45
|
+
// Cosmetic during buffering: real verbosity filtering happens at replay.
|
|
46
|
+
this.level = "LOWEST";
|
|
47
|
+
}
|
|
48
|
+
get source() {
|
|
49
|
+
return this.node.source;
|
|
50
|
+
}
|
|
51
|
+
set source(value) {
|
|
52
|
+
this.node.source = value;
|
|
53
|
+
}
|
|
54
|
+
get startTime() {
|
|
55
|
+
return this.node.startTime;
|
|
56
|
+
}
|
|
57
|
+
get endTime() {
|
|
58
|
+
return this.node.endTime;
|
|
59
|
+
}
|
|
60
|
+
get id() {
|
|
61
|
+
var _a;
|
|
62
|
+
return (_a = this.node.syntheticPropagationInfo.traceparent) === null || _a === void 0 ? void 0 : _a.split("-")[2];
|
|
63
|
+
}
|
|
64
|
+
get traceId() {
|
|
65
|
+
var _a;
|
|
66
|
+
return (_a = this.node.syntheticPropagationInfo.traceparent) === null || _a === void 0 ? void 0 : _a.split("-")[1];
|
|
67
|
+
}
|
|
68
|
+
set status(status) {
|
|
69
|
+
this.node.status = Object.assign({}, status);
|
|
70
|
+
}
|
|
71
|
+
get status() {
|
|
72
|
+
var _a;
|
|
73
|
+
return (_a = this.node.status) !== null && _a !== void 0 ? _a : { code: 0 /* SpanStatusCode.UNSET */ };
|
|
74
|
+
}
|
|
75
|
+
end() {
|
|
76
|
+
void this.endSpan();
|
|
77
|
+
}
|
|
78
|
+
endSpan(endTime, allowDoubleEnd) {
|
|
79
|
+
if (this.hasEnded && !allowDoubleEnd) {
|
|
80
|
+
return Promise.resolve();
|
|
81
|
+
}
|
|
82
|
+
if (!this.hasEnded) {
|
|
83
|
+
this.hasEnded = true;
|
|
84
|
+
this.node.endTime = endTime !== null && endTime !== void 0 ? endTime : new Date();
|
|
85
|
+
}
|
|
86
|
+
return Promise.resolve();
|
|
87
|
+
}
|
|
88
|
+
addEvent(name, attributesOrStartTime, startTime) {
|
|
89
|
+
this.node.events.push({ name, attributesOrStartTime, startTime });
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
recordException(exception, time) {
|
|
93
|
+
this.node.exceptions.push({ exception, time });
|
|
94
|
+
}
|
|
95
|
+
isRecording() {
|
|
96
|
+
return !this.hasEnded;
|
|
97
|
+
}
|
|
98
|
+
updateName(name) {
|
|
99
|
+
this.node.updatedName = name;
|
|
100
|
+
this.node.source = name;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
spanContext() {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
addData(level, data) {
|
|
107
|
+
const resolved = typeof data === "function" ? data() : data;
|
|
108
|
+
this.node.addedData.push({ level, data: resolved });
|
|
109
|
+
}
|
|
110
|
+
getPropagationInfo() {
|
|
111
|
+
return this.node.syntheticPropagationInfo;
|
|
112
|
+
}
|
|
113
|
+
injectPropagationInfo(carrier) {
|
|
114
|
+
if (!this.disablePropagation) {
|
|
115
|
+
carrier.__interopIOTracePropagationInfo = this.node.syntheticPropagationInfo;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.default = BufferingTracingState;
|
|
120
|
+
//# sourceMappingURL=bufferingTracingState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bufferingTracingState.js","sourceRoot":"","sources":["../../src/traces/bufferingTracingState.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ class NullTracesManager extends nullManager_1.NullManager {
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
get currentTracingState() {
|
|
46
|
-
return new nullTracingState_1.default("nullTracingState", null, true);
|
|
46
|
+
return new nullTracingState_1.default("nullTracingState", null, true, null);
|
|
47
47
|
}
|
|
48
48
|
set currentTracingState(ts) {
|
|
49
49
|
}
|
|
@@ -83,7 +83,7 @@ class NullTracesManager extends nullManager_1.NullManager {
|
|
|
83
83
|
// extractedPI = Traces.currentTracingState?.getPropagationInfo() || null;
|
|
84
84
|
// }
|
|
85
85
|
// const nts = new NullTracingState(source, extractedPI);
|
|
86
|
-
const nts = new nullTracingState_1.default(source, null, true);
|
|
86
|
+
const nts = new nullTracingState_1.default(source, null, true, null);
|
|
87
87
|
traces_1.default.currentTracingState = nts;
|
|
88
88
|
try {
|
|
89
89
|
return actualCallback(nts);
|
|
@@ -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,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"nullTracesManager.js","sourceRoot":"","sources":["../../src/traces/nullTracesManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ export default class NullTracingState implements IOInsights.TracingState {
|
|
|
4
4
|
source: string;
|
|
5
5
|
private propagationInfo;
|
|
6
6
|
private disablePropagation;
|
|
7
|
+
matchingFilter: IOInsights.SpanFilter | undefined | null;
|
|
7
8
|
private currentSpanStatus;
|
|
8
|
-
constructor(source: string, propagationInfo: IOInsights.PropagationInfo | null, disablePropagation: boolean);
|
|
9
|
+
constructor(source: string, propagationInfo: IOInsights.PropagationInfo | null, disablePropagation: boolean, matchingFilter: IOInsights.SpanFilter | undefined | null);
|
|
9
10
|
level: "OFF";
|
|
10
11
|
endSpan(): Promise<void>;
|
|
11
12
|
get enabled(): boolean;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class NullTracingState {
|
|
4
|
-
constructor(source, propagationInfo, disablePropagation) {
|
|
4
|
+
constructor(source, propagationInfo, disablePropagation, matchingFilter) {
|
|
5
5
|
this.source = source;
|
|
6
6
|
this.propagationInfo = propagationInfo;
|
|
7
7
|
this.disablePropagation = disablePropagation;
|
|
8
|
+
this.matchingFilter = matchingFilter;
|
|
8
9
|
this.currentSpanStatus = { code: 0 /*SpanStatusCode.UNSET*/ };
|
|
9
10
|
this.level = "OFF";
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullTracingState.js","sourceRoot":"","sources":["../../src/traces/nullTracingState.ts"],"names":[],"mappings":";;AAQA,MAAqB,gBAAgB;IAInC,YACS,MAAc,EACb,eAAkD,EAClD,kBAA2B;
|
|
1
|
+
{"version":3,"file":"nullTracingState.js","sourceRoot":"","sources":["../../src/traces/nullTracingState.ts"],"names":[],"mappings":";;AAQA,MAAqB,gBAAgB;IAInC,YACS,MAAc,EACb,eAAkD,EAClD,kBAA2B,EAC5B,cAAwD;QAHxD,WAAM,GAAN,MAAM,CAAQ;QACb,oBAAe,GAAf,eAAe,CAAmC;QAClD,uBAAkB,GAAlB,kBAAkB,CAAS;QAC5B,mBAAc,GAAd,cAAc,CAA0C;QANzD,sBAAiB,GAAe,EAAE,IAAI,EAAE,CAAQ,CAAC,wBAAwB,EAAE,CAAC;QAQpF,UAAK,GAAG,KAAc,CAAC;IAF6C,CAAC;IAI9D,OAAO;QACZ,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,KAAU,CAAC;IAEd,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;AAzED,mCAyEC"}
|
package/dist/traces/traces.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ export default class Traces {
|
|
|
10
10
|
static get currentTracingState(): IOInsights.TracingState;
|
|
11
11
|
static set currentTracingState(value: IOInsights.TracingState | null);
|
|
12
12
|
static removePropagationInfo(propagationInfoCarrier: IOInsights.PropagationInfo | IOInsights.PropagationInfoCarrier | null | undefined): IOInsights.PropagationInfo | IOInsights.PropagationInfoCarrier | null | undefined;
|
|
13
|
+
static readPropagationInfo(propagationInfoCarrier: {
|
|
14
|
+
traceId: string;
|
|
15
|
+
spanId: string;
|
|
16
|
+
traceFlags?: number;
|
|
17
|
+
}, tracestate?: string, forceTracing?: boolean): IOInsights.PropagationInfo | null;
|
|
13
18
|
static extractPropagationInfo(propagationInfoCarrier: IOInsights.PropagationInfo | IOInsights.PropagationInfoCarrier | null | undefined, deleteProperty?: boolean | undefined): IOInsights.PropagationInfo | null;
|
|
14
19
|
withSequenceSpanEx<T>(source: string, traceName: string | null, callback: IOInsights.WithSpanCallback<T>): Promise<T>;
|
|
15
20
|
withSequenceSpanEx<T>(source: string, traceName: string | null, filteringContext: IOInsights.FilteringContext | null, callback: IOInsights.WithSpanCallback<T>): Promise<T>;
|
|
@@ -24,12 +29,6 @@ export default class Traces {
|
|
|
24
29
|
static isAsyncFunction(value: any): boolean;
|
|
25
30
|
static withTypedSpanWrapper<T extends Function>(source: string, wrappedFunction: T): T;
|
|
26
31
|
static withTypedSpanWrapper<T extends Function>(source: string, decoratorOptions: IOInsights.WithSpanDecoratorOptions | null, wrappedFunction: T): T;
|
|
27
|
-
static withSpans<T>(tracingMap: TracingMap<T>, objectToTrace: T): T;
|
|
32
|
+
static withSpans<T>(tracingMap: IOInsights.TracingMap<T>, objectToTrace: T): T;
|
|
28
33
|
}
|
|
29
|
-
export type TracingMap<T> = {
|
|
30
|
-
[propertyName in keyof Partial<T>]: ({
|
|
31
|
-
source: string;
|
|
32
|
-
decoratorOptions?: IOInsights.WithSpanDecoratorOptions;
|
|
33
|
-
} | string);
|
|
34
|
-
};
|
|
35
34
|
export declare const withSpan: typeof Traces.withSpan;
|
package/dist/traces/traces.js
CHANGED
|
@@ -36,7 +36,7 @@ class Traces {
|
|
|
36
36
|
}
|
|
37
37
|
static get currentTracingState() {
|
|
38
38
|
var _a;
|
|
39
|
-
return ((_a = Traces.instance) === null || _a === void 0 ? void 0 : _a.currentTracingState) || new nullTracingState_1.default("unknown", null, true);
|
|
39
|
+
return ((_a = Traces.instance) === null || _a === void 0 ? void 0 : _a.currentTracingState) || new nullTracingState_1.default("unknown", null, true, null);
|
|
40
40
|
}
|
|
41
41
|
static set currentTracingState(value) {
|
|
42
42
|
if (Traces.instance) {
|
|
@@ -47,6 +47,36 @@ class Traces {
|
|
|
47
47
|
Traces.extractPropagationInfo(propagationInfoCarrier, true);
|
|
48
48
|
return propagationInfoCarrier;
|
|
49
49
|
}
|
|
50
|
+
static readPropagationInfo(propagationInfoCarrier, tracestate, forceTracing) {
|
|
51
|
+
const { traceId, spanId, traceFlags } = propagationInfoCarrier;
|
|
52
|
+
function padHex(num) {
|
|
53
|
+
if (!num) {
|
|
54
|
+
return "00";
|
|
55
|
+
}
|
|
56
|
+
return ('0' + num.toString(16)).slice(-2); //9A
|
|
57
|
+
}
|
|
58
|
+
// https://www.w3.org/TR/trace-context/#traceparent-header
|
|
59
|
+
const traceparent = `00-${traceId}-${spanId}-${padHex(traceFlags !== null && traceFlags !== void 0 ? traceFlags : 0)}`.toLowerCase();
|
|
60
|
+
const match = traceparent.match(/^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/);
|
|
61
|
+
if (match &&
|
|
62
|
+
match[1].split("").some(x => x != "0") &&
|
|
63
|
+
match[2].split("").some(x => x != "0") &&
|
|
64
|
+
(!traceFlags || traceFlags < 256)) {
|
|
65
|
+
const toReturn = {
|
|
66
|
+
traceparent,
|
|
67
|
+
};
|
|
68
|
+
if (tracestate) {
|
|
69
|
+
toReturn.tracestate = tracestate;
|
|
70
|
+
}
|
|
71
|
+
if (forceTracing) {
|
|
72
|
+
toReturn.forceTracing = forceTracing;
|
|
73
|
+
}
|
|
74
|
+
return toReturn;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
50
80
|
static extractPropagationInfo(propagationInfoCarrier, deleteProperty) {
|
|
51
81
|
if (propagationInfoCarrier === null || propagationInfoCarrier === void 0 ? void 0 : propagationInfoCarrier.traceparent) {
|
|
52
82
|
return propagationInfoCarrier;
|
|
@@ -1 +1 @@
|
|
|
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,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/traces/traces.ts"],"names":[],"mappings":"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"}
|
package/insights.d.ts
CHANGED
|
@@ -256,11 +256,15 @@ export namespace IOInsights {
|
|
|
256
256
|
|
|
257
257
|
/**
|
|
258
258
|
* Whether to enable automatic collection of platform-level metrics (CPU, memory, etc.).
|
|
259
|
+
* If `true`, the library will initialize all predefined platform metrics automatically.
|
|
260
|
+
* If `only-explicit`, it will not initialize them automatically, but will still allow you to
|
|
261
|
+
* configure your own platform metrics based on the predefined types using the `metrics` config property.
|
|
262
|
+
* If `false`, any platform metrics will be automatically disabled.
|
|
259
263
|
*/
|
|
260
|
-
platformMetricsEnabled?: boolean;
|
|
264
|
+
platformMetricsEnabled?: boolean | "only-explicit";
|
|
261
265
|
|
|
262
266
|
/**
|
|
263
|
-
* Array of
|
|
267
|
+
* Array of custom metric configurations. It allows specifying overrides for both platform and custom metrics.
|
|
264
268
|
*/
|
|
265
269
|
metrics?: MetricSettings[];
|
|
266
270
|
|
|
@@ -1127,6 +1131,7 @@ export namespace IOInsights {
|
|
|
1127
1131
|
endSpan(endTime?: Date, allowDoubleEnd?: boolean): Promise<void>;
|
|
1128
1132
|
context?: Context;
|
|
1129
1133
|
span?: Span;
|
|
1134
|
+
matchingFilter?: SpanFilter | null;
|
|
1130
1135
|
/**
|
|
1131
1136
|
* Gets the propagation info for the current span (see https://www.w3.org/TR/trace-context/#tracestate-field)
|
|
1132
1137
|
* @returns the propagation info, if a span is currently active
|
|
@@ -1189,7 +1194,7 @@ export namespace IOInsights {
|
|
|
1189
1194
|
*
|
|
1190
1195
|
* @default true
|
|
1191
1196
|
*/
|
|
1192
|
-
instrumentRequests?: boolean;
|
|
1197
|
+
instrumentRequests?: boolean | RequestTraceConfig;
|
|
1193
1198
|
|
|
1194
1199
|
/**
|
|
1195
1200
|
* If `true`, io.Insights will instrument and trace the application loading process
|
|
@@ -1684,6 +1689,10 @@ export namespace IOInsights {
|
|
|
1684
1689
|
context?: {
|
|
1685
1690
|
[key: string]: string | number | boolean;
|
|
1686
1691
|
};
|
|
1692
|
+
|
|
1693
|
+
injectOTELHeaders?: boolean;
|
|
1694
|
+
|
|
1695
|
+
[key: string]: any;
|
|
1687
1696
|
}
|
|
1688
1697
|
|
|
1689
1698
|
/**
|
|
@@ -1766,6 +1775,76 @@ export namespace IOInsights {
|
|
|
1766
1775
|
nestEventListeners?: boolean;
|
|
1767
1776
|
}
|
|
1768
1777
|
|
|
1778
|
+
export interface RequestTraceConfig {
|
|
1779
|
+
/**
|
|
1780
|
+
* Whether fetch and XHR requests will be instrumented with traces automatically.
|
|
1781
|
+
*/
|
|
1782
|
+
enabled: boolean;
|
|
1783
|
+
|
|
1784
|
+
/**
|
|
1785
|
+
* Whether request instrumentation spans can be root spans of new traces. This allows you
|
|
1786
|
+
* to trace requests without any instrumentation in your own code, but may create a large
|
|
1787
|
+
* number of traces. This will not affect metrics.
|
|
1788
|
+
*
|
|
1789
|
+
* @default true
|
|
1790
|
+
*/
|
|
1791
|
+
allowRoot?: boolean;
|
|
1792
|
+
|
|
1793
|
+
/**
|
|
1794
|
+
* If `true`, requests to the OTEL Collector endpoints will not be instrumented.
|
|
1795
|
+
* Recommended to keep `true`, since otherwise the request caused by the auto instrumentation
|
|
1796
|
+
* telemetry will itself cause auto instrumentation to kick in and so on, creating unnecessary
|
|
1797
|
+
* telemetry.
|
|
1798
|
+
*
|
|
1799
|
+
* @default true
|
|
1800
|
+
*/
|
|
1801
|
+
ignoreTelemetryURLs?: boolean;
|
|
1802
|
+
|
|
1803
|
+
/**
|
|
1804
|
+
* Optional regex pattern for URLs that should be excluded from auto instrumentation.
|
|
1805
|
+
*/
|
|
1806
|
+
ignorePattern?: string;
|
|
1807
|
+
|
|
1808
|
+
/**
|
|
1809
|
+
* Optional regex pattern, if specified, only matching URLs will be auto instrumented.
|
|
1810
|
+
*/
|
|
1811
|
+
matchPattern?: string;
|
|
1812
|
+
|
|
1813
|
+
/**
|
|
1814
|
+
* An array of HTTP response status codes to consider as errors. Status code families can be described as 4xx, 5xx, etc.
|
|
1815
|
+
*
|
|
1816
|
+
* @default ["4xx", "5xx"]
|
|
1817
|
+
*/
|
|
1818
|
+
errorStatusCodes?: (string | number)[];
|
|
1819
|
+
|
|
1820
|
+
/**
|
|
1821
|
+
* If `true` or a string, the request duration will be published as a histogram metric.
|
|
1822
|
+
* If a string value is specified, this will be the name of the metric. Otherwise, the
|
|
1823
|
+
* semantic convention default "http.client.request.duration" is used.
|
|
1824
|
+
*
|
|
1825
|
+
* @default false
|
|
1826
|
+
*/
|
|
1827
|
+
requestDurationMetric?: boolean | string;
|
|
1828
|
+
|
|
1829
|
+
/**
|
|
1830
|
+
* If `true` or a string, the request size in bytes will be published as a histogram metric.
|
|
1831
|
+
* If a string value is specified, this will be the name of the metric. Otherwise, the
|
|
1832
|
+
* semantic convention default "http.client.request.body.size" is used.
|
|
1833
|
+
*
|
|
1834
|
+
* @default false
|
|
1835
|
+
*/
|
|
1836
|
+
requestBytesMetric?: boolean | string;
|
|
1837
|
+
|
|
1838
|
+
/**
|
|
1839
|
+
* If `true` or a string, the request size in bytes will be published as a histogram metric.
|
|
1840
|
+
* If a string value is specified, this will be the name of the metric. Otherwise, the
|
|
1841
|
+
* semantic convention default "http.client.response.body.size" is used.
|
|
1842
|
+
*
|
|
1843
|
+
* @default false
|
|
1844
|
+
*/
|
|
1845
|
+
responseBytesMetric?: boolean | string;
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1769
1848
|
/**
|
|
1770
1849
|
* Configuration for User Journey trace behavior.
|
|
1771
1850
|
* Controls how significant User Journey milestones are tracked throughout the platform session.
|
|
@@ -1812,7 +1891,9 @@ export namespace IOInsights {
|
|
|
1812
1891
|
*/
|
|
1813
1892
|
export type MarkerSpanCallback = (
|
|
1814
1893
|
source: string,
|
|
1815
|
-
data?: DataByVerbosity
|
|
1894
|
+
data?: DataByVerbosity,
|
|
1895
|
+
newTrace?: boolean,
|
|
1896
|
+
parentSpan?: PropagationInfo
|
|
1816
1897
|
) => Promise<PropagationInfo | null> | void;
|
|
1817
1898
|
|
|
1818
1899
|
/**
|
|
@@ -2130,27 +2211,28 @@ export namespace IOInsights {
|
|
|
2130
2211
|
applicationName?: string;
|
|
2131
2212
|
|
|
2132
2213
|
/**
|
|
2133
|
-
*
|
|
2134
|
-
*
|
|
2135
|
-
* @default false
|
|
2214
|
+
* Settings for injecting the io.Connect SSO login information into OpenTelemetry export requests when the platform is configured to use the Electron networking stack.
|
|
2136
2215
|
*/
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2216
|
+
ssoAuth?: {
|
|
2217
|
+
/**
|
|
2218
|
+
* If `true`, will instruct the platform to use the io.Connect SSO login information when making OpenTelemetry export requests. This only applies to OpenTelemetry exports performed after SSO completes.
|
|
2219
|
+
*
|
|
2220
|
+
* @default false
|
|
2221
|
+
*/
|
|
2222
|
+
enabled?: boolean;
|
|
2223
|
+
/**
|
|
2224
|
+
* If `true`, will use a custom `auth` header to send the entire io.Connect SSO authorization object as a JSON string.
|
|
2225
|
+
*
|
|
2226
|
+
* @default false
|
|
2227
|
+
*/
|
|
2228
|
+
useAuthHeader?: boolean;
|
|
2229
|
+
/**
|
|
2230
|
+
* If `true`, will use the io.Connect SSO token as-is. If `false`, "Bearer " will be prepended to the token if it lacks the prefix.
|
|
2231
|
+
*
|
|
2232
|
+
* @default true
|
|
2233
|
+
*/
|
|
2234
|
+
useRawToken?: boolean;
|
|
2235
|
+
};
|
|
2154
2236
|
|
|
2155
2237
|
/**
|
|
2156
2238
|
* Suppress double initialization warnings from the OTEL SDK.
|
|
@@ -2265,4 +2347,8 @@ export namespace IOInsights {
|
|
|
2265
2347
|
export type DataByVerbosity = {
|
|
2266
2348
|
[level in SpanVerbosity]: any;
|
|
2267
2349
|
}
|
|
2350
|
+
|
|
2351
|
+
export type TracingMap<T> = {
|
|
2352
|
+
[propertyName in keyof Partial<T>]: ({ source: string; decoratorOptions?: IOInsights.WithSpanDecoratorOptions } | string);
|
|
2353
|
+
};
|
|
2268
2354
|
}
|