@interopio/otel 0.1.8 → 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 CHANGED
@@ -138,21 +138,24 @@ class Container {
138
138
  }
139
139
  start() {
140
140
  return __awaiter(this, void 0, void 0, function* () {
141
- // vnikolov TODO: maybe log this? don't silently refuse to start
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;
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
- const metricsPromise = this.metrics.started ? this.metrics.stop() : Promise.resolve();
152
- const tracesPromise = this.traces.started ? this.traces.stop() : Promise.resolve();
153
- const logsPromise = this.logs.started ? this.logs.stop() : Promise.resolve();
154
- yield Promise.all([metricsPromise, tracesPromise, logsPromise]);
155
- this.started = false;
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
  }
@@ -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;AA+DjC,0DAAoD;AAC3C,iBADF,gBAAM,CACE;AAAE,yFADC,iBAAQ,OACD;AACZ,QAAA,WAAW,GAAG,iCAAiC,CAAC;AAC7D,iFAAyD;AAChD,2BADF,0BAAgB,CACE;AAWzB,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"}
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":";;AA8CA,gDAoBC;AA/BD,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,MAAc,EACd,gBAA6C,EAC7C,uBAA0D,EAC1D,OAA+C,EAC/C,SAAe;IACf,OAAO;QACL,MAAM;QACN,gBAAgB;QAChB,uBAAuB;QACvB,OAAO;QACP,SAAS;QACT,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,wBAAwB,EAAE;YACxB,WAAW,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK;SACtD;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAqB,qBAAqB;IAIxC,YACS,IAAkB,EACjB,kBAA2B;QAD5B,SAAI,GAAJ,IAAI,CAAc;QACjB,uBAAkB,GAAlB,kBAAkB,CAAS;QAJ7B,aAAQ,GAAG,KAAK,CAAC;QAMzB,4EAA4E;QAC5E,8EAA8E;QAC9E,gCAAgC;QAChB,YAAO,GAAG,IAAI,CAAC;QAE/B,yEAAyE;QAClE,UAAK,GAA0C,QAAQ,CAAC;IARvB,CAAC;IAUzC,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,IAAW,MAAM,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAW,EAAE;;QACX,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAW,OAAO;;QAChB,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAW,MAAM,CAAC,MAAkB;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,qBAAQ,MAAM,CAAE,CAAC;IACnC,CAAC;IACD,IAAW,MAAM;;QACf,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,mCAAI,EAAE,IAAI,EAAE,CAAQ,CAAC,0BAA0B,EAAE,CAAC;IAC3E,CAAC;IAEM,GAAG;QACR,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAEM,OAAO,CAAC,OAAc,EAAE,cAAwB;QACrD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,QAAQ,CACb,IAAY,EACZ,qBAA8C,EAC9C,SAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,eAAe,CAAC,SAAoB,EAAE,IAAgB;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAEM,WAAW;QAChB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,OAAO,CACZ,KAAuE,EACvE,IAA6B;QAC7B,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;IAC5C,CAAC;IAEM,qBAAqB,CAAC,OAA0C;QACrE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC/E,CAAC;IACH,CAAC;CACF;AAtGD,wCAsGC"}
@@ -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;IAC9D,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,CAAC,CAAC;QAErD,gBAAM,CAAC,mBAAmB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,gBAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACpC,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;AA1JD,8CA0JC"}
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;QAF5B,WAAM,GAAN,MAAM,CAAQ;QACb,oBAAe,GAAf,eAAe,CAAmC;QAClD,uBAAkB,GAAlB,kBAAkB,CAAS;QAL7B,sBAAiB,GAAe,EAAE,IAAI,EAAE,CAAQ,CAAC,wBAAwB,EAAE,CAAC;QAOpF,UAAK,GAAG,KAAc,CAAC;IAFiB,CAAC;IAIlC,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;AAxED,mCAwEC"}
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"}
@@ -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;
@@ -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":"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"}
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 individual metric configurations to collect.
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
  /**
@@ -2266,4 +2347,8 @@ export namespace IOInsights {
2266
2347
  export type DataByVerbosity = {
2267
2348
  [level in SpanVerbosity]: any;
2268
2349
  }
2350
+
2351
+ export type TracingMap<T> = {
2352
+ [propertyName in keyof Partial<T>]: ({ source: string; decoratorOptions?: IOInsights.WithSpanDecoratorOptions } | string);
2353
+ };
2269
2354
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interopio/otel",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "io.Insights observability library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",