@uselemma/tracing 2.8.0 → 2.10.0
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/debug-mode.d.ts +5 -0
- package/dist/debug-mode.d.ts.map +1 -0
- package/dist/debug-mode.js +27 -0
- package/dist/debug-mode.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/run-batch-span-processor.d.ts.map +1 -1
- package/dist/run-batch-span-processor.js +9 -0
- package/dist/run-batch-span-processor.js.map +1 -1
- package/dist/trace-wrapper.d.ts +7 -5
- package/dist/trace-wrapper.d.ts.map +1 -1
- package/dist/trace-wrapper.js +25 -9
- package/dist/trace-wrapper.js.map +1 -1
- package/package.json +9 -3
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function enableDebugMode(): void;
|
|
2
|
+
export declare function disableDebugMode(): void;
|
|
3
|
+
export declare function isDebugModeEnabled(): boolean;
|
|
4
|
+
export declare function lemmaDebug(prefix: string, msg: string, data?: Record<string, unknown>): void;
|
|
5
|
+
//# sourceMappingURL=debug-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-mode.d.ts","sourceRoot":"","sources":["../src/debug-mode.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAO5F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableDebugMode = enableDebugMode;
|
|
4
|
+
exports.disableDebugMode = disableDebugMode;
|
|
5
|
+
exports.isDebugModeEnabled = isDebugModeEnabled;
|
|
6
|
+
exports.lemmaDebug = lemmaDebug;
|
|
7
|
+
let debugModeEnabled = false;
|
|
8
|
+
function enableDebugMode() {
|
|
9
|
+
debugModeEnabled = true;
|
|
10
|
+
}
|
|
11
|
+
function disableDebugMode() {
|
|
12
|
+
debugModeEnabled = false;
|
|
13
|
+
}
|
|
14
|
+
function isDebugModeEnabled() {
|
|
15
|
+
return debugModeEnabled || process.env["LEMMA_DEBUG"] === "true";
|
|
16
|
+
}
|
|
17
|
+
function lemmaDebug(prefix, msg, data) {
|
|
18
|
+
if (!isDebugModeEnabled())
|
|
19
|
+
return;
|
|
20
|
+
if (data !== undefined) {
|
|
21
|
+
console.log(`[lemma:${prefix}] ${msg}`, data);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(`[lemma:${prefix}] ${msg}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=debug-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-mode.js","sourceRoot":"","sources":["../src/debug-mode.ts"],"names":[],"mappings":";;AAEA,0CAEC;AAED,4CAEC;AAED,gDAEC;AAED,gCAOC;AArBD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,SAAgB,eAAe;IAC7B,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,SAAgB,gBAAgB;IAC9B,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;AACnE,CAAC;AAED,SAAgB,UAAU,CAAC,MAAc,EAAE,GAAW,EAAE,IAA8B;IACpF,IAAI,CAAC,kBAAkB,EAAE;QAAE,OAAO;IAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { registerOTel, createLemmaSpanProcessor, type LemmaOTelOptions, type RegisterOTelOptions, type CreateLemmaSpanProcessorOptions, } from "./register";
|
|
2
2
|
export { enableExperimentMode, disableExperimentMode, isExperimentModeEnabled, } from "./experiment-mode";
|
|
3
|
+
export { enableDebugMode, disableDebugMode, isDebugModeEnabled, } from "./debug-mode";
|
|
3
4
|
export { wrapAgent, type TraceContext, type WrapAgentOptions } from "./trace-wrapper";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACrC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACrC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrapAgent = exports.isExperimentModeEnabled = exports.disableExperimentMode = exports.enableExperimentMode = exports.createLemmaSpanProcessor = exports.registerOTel = void 0;
|
|
3
|
+
exports.wrapAgent = exports.isDebugModeEnabled = exports.disableDebugMode = exports.enableDebugMode = exports.isExperimentModeEnabled = exports.disableExperimentMode = exports.enableExperimentMode = exports.createLemmaSpanProcessor = exports.registerOTel = void 0;
|
|
4
4
|
var register_1 = require("./register");
|
|
5
5
|
Object.defineProperty(exports, "registerOTel", { enumerable: true, get: function () { return register_1.registerOTel; } });
|
|
6
6
|
Object.defineProperty(exports, "createLemmaSpanProcessor", { enumerable: true, get: function () { return register_1.createLemmaSpanProcessor; } });
|
|
@@ -8,6 +8,10 @@ var experiment_mode_1 = require("./experiment-mode");
|
|
|
8
8
|
Object.defineProperty(exports, "enableExperimentMode", { enumerable: true, get: function () { return experiment_mode_1.enableExperimentMode; } });
|
|
9
9
|
Object.defineProperty(exports, "disableExperimentMode", { enumerable: true, get: function () { return experiment_mode_1.disableExperimentMode; } });
|
|
10
10
|
Object.defineProperty(exports, "isExperimentModeEnabled", { enumerable: true, get: function () { return experiment_mode_1.isExperimentModeEnabled; } });
|
|
11
|
+
var debug_mode_1 = require("./debug-mode");
|
|
12
|
+
Object.defineProperty(exports, "enableDebugMode", { enumerable: true, get: function () { return debug_mode_1.enableDebugMode; } });
|
|
13
|
+
Object.defineProperty(exports, "disableDebugMode", { enumerable: true, get: function () { return debug_mode_1.disableDebugMode; } });
|
|
14
|
+
Object.defineProperty(exports, "isDebugModeEnabled", { enumerable: true, get: function () { return debug_mode_1.isDebugModeEnabled; } });
|
|
11
15
|
var trace_wrapper_1 = require("./trace-wrapper");
|
|
12
16
|
Object.defineProperty(exports, "wrapAgent", { enumerable: true, get: function () { return trace_wrapper_1.wrapAgent; } });
|
|
13
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,oHAAA,wBAAwB,OAAA;AAK1B,qDAI2B;AAHzB,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AACrB,0HAAA,uBAAuB,OAAA;AAEzB,iDAAsF;AAA7E,0GAAA,SAAS,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,oHAAA,wBAAwB,OAAA;AAK1B,qDAI2B;AAHzB,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AACrB,0HAAA,uBAAuB,OAAA;AAEzB,2CAIsB;AAHpB,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAEpB,iDAAsF;AAA7E,0GAAA,SAAS,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-batch-span-processor.d.ts","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"run-batch-span-processor.d.ts","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAMvC,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,qBAAqB,CAA4B;IACzD,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,uBAAuB,CAA4B;IAC3D,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAE5B,QAAQ,EAAE,YAAY;IAIlC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAiClD,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAqDzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;YAIV,cAAc;IAmB5B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,eAAe;CAgBxB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RunBatchSpanProcessor = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
|
+
const debug_mode_1 = require("./debug-mode");
|
|
5
6
|
class RunBatchSpanProcessor {
|
|
6
7
|
isShutdown = false;
|
|
7
8
|
spanIdToRunId = new Map();
|
|
@@ -28,6 +29,7 @@ class RunBatchSpanProcessor {
|
|
|
28
29
|
this.autoEndEnabledRuns.add(runId);
|
|
29
30
|
}
|
|
30
31
|
this.directChildCountByRunId.set(runId, 0);
|
|
32
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onStart: top-level run span", { spanId, runId, autoEnd: this.autoEndEnabledRuns.has(runId) });
|
|
31
33
|
return;
|
|
32
34
|
}
|
|
33
35
|
const parentSpanId = span.parentSpanContext?.spanId;
|
|
@@ -42,6 +44,7 @@ class RunBatchSpanProcessor {
|
|
|
42
44
|
}
|
|
43
45
|
this.spanIdToRunId.set(spanId, runId);
|
|
44
46
|
span.setAttribute("lemma.run_id", runId);
|
|
47
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onStart: child span", { spanName: span.name, spanId, runId });
|
|
45
48
|
}
|
|
46
49
|
onEnd(span) {
|
|
47
50
|
const spanId = span.spanContext().spanId;
|
|
@@ -60,15 +63,18 @@ class RunBatchSpanProcessor {
|
|
|
60
63
|
const currentCount = this.directChildCountByRunId.get(directChildRunId) ?? 0;
|
|
61
64
|
const nextCount = Math.max(0, currentCount - 1);
|
|
62
65
|
this.directChildCountByRunId.set(directChildRunId, nextCount);
|
|
66
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onEnd: direct child ended", { spanName: span.name, spanId, runId: directChildRunId, remainingChildren: nextCount });
|
|
63
67
|
if (nextCount === 0 &&
|
|
64
68
|
!this.endedRuns.has(directChildRunId) &&
|
|
65
69
|
this.autoEndEnabledRuns.has(directChildRunId)) {
|
|
66
70
|
topLevelSpanToAutoEnd = this.topLevelSpanByRunId.get(directChildRunId);
|
|
67
71
|
if (topLevelSpanToAutoEnd) {
|
|
68
72
|
this.topLevelSpanByRunId.delete(directChildRunId);
|
|
73
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onEnd: triggering auto-end of top-level span", { runId: directChildRunId });
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
}
|
|
77
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onEnd: span ended", { spanName: span.name, spanId, runId, isTopLevelRun, skipped: shouldSkipExport });
|
|
72
78
|
if (!shouldSkipExport) {
|
|
73
79
|
const batch = this.batches.get(runId);
|
|
74
80
|
if (batch)
|
|
@@ -86,6 +92,7 @@ class RunBatchSpanProcessor {
|
|
|
86
92
|
void this.exportRunBatch(runId, false);
|
|
87
93
|
}
|
|
88
94
|
async forceFlush() {
|
|
95
|
+
(0, debug_mode_1.lemmaDebug)("processor", "forceFlush called");
|
|
89
96
|
const runIds = [...this.batches.keys()];
|
|
90
97
|
await Promise.all(runIds.map((runId) => this.exportRunBatch(runId, true)));
|
|
91
98
|
if (this.exporter.forceFlush) {
|
|
@@ -95,6 +102,7 @@ class RunBatchSpanProcessor {
|
|
|
95
102
|
async shutdown() {
|
|
96
103
|
if (this.isShutdown)
|
|
97
104
|
return;
|
|
105
|
+
(0, debug_mode_1.lemmaDebug)("processor", "shutdown called");
|
|
98
106
|
this.isShutdown = true;
|
|
99
107
|
await this.forceFlush();
|
|
100
108
|
this.exporter.shutdown();
|
|
@@ -129,6 +137,7 @@ class RunBatchSpanProcessor {
|
|
|
129
137
|
this.clearRunMapping(runId);
|
|
130
138
|
if (!batch || batch.length === 0)
|
|
131
139
|
return;
|
|
140
|
+
(0, debug_mode_1.lemmaDebug)("processor", "exporting batch", { runId, spanCount: batch.length, force });
|
|
132
141
|
await new Promise((resolve) => {
|
|
133
142
|
this.exporter.export(batch, () => resolve());
|
|
134
143
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-batch-span-processor.js","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;
|
|
1
|
+
{"version":3,"file":"run-batch-span-processor.js","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"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"}
|
package/dist/trace-wrapper.d.ts
CHANGED
|
@@ -5,8 +5,9 @@ export type TraceContext = {
|
|
|
5
5
|
/** Unique identifier for this agent run. */
|
|
6
6
|
runId: string;
|
|
7
7
|
/**
|
|
8
|
-
* Signal the run is complete. When `autoEndRoot` is
|
|
9
|
-
*
|
|
8
|
+
* Signal the run is complete. When `autoEndRoot` is enabled (the default),
|
|
9
|
+
* this is a no-op and returns `false` — the span is ended automatically.
|
|
10
|
+
* When `autoEndRoot` is disabled, this ends the top-level span and returns `true`.
|
|
10
11
|
*/
|
|
11
12
|
onComplete: (result: unknown) => boolean;
|
|
12
13
|
/** Record an error on the span. Marks the span as errored. */
|
|
@@ -16,8 +17,9 @@ export type WrapAgentOptions = {
|
|
|
16
17
|
/** Mark this run as an experiment in Lemma. */
|
|
17
18
|
isExperiment?: boolean;
|
|
18
19
|
/**
|
|
19
|
-
* If `true
|
|
20
|
-
*
|
|
20
|
+
* If `true` (the default), the top-level span is automatically ended when
|
|
21
|
+
* the wrapped function returns or throws. Set to `false` to manage span
|
|
22
|
+
* lifetime manually via `ctx.onComplete`.
|
|
21
23
|
*/
|
|
22
24
|
autoEndRoot?: boolean;
|
|
23
25
|
};
|
|
@@ -42,7 +44,7 @@ export type WrapAgentOptions = {
|
|
|
42
44
|
* @param fn - The agent function to wrap. Receives a {@link TraceContext} as its first argument and the call-time input as its second.
|
|
43
45
|
* @param options - Configuration for the agent trace.
|
|
44
46
|
* @param options.isExperiment - Mark this run as an experiment in Lemma.
|
|
45
|
-
* @param options.autoEndRoot -
|
|
47
|
+
* @param options.autoEndRoot - Automatically end the top-level span when the wrapped function returns or throws (default: `true`). Set to `false` to end manually via `ctx.onComplete`.
|
|
46
48
|
* @returns An async function that accepts an `input`, executes `fn` inside a traced context, and returns `{ result, runId, span }`.
|
|
47
49
|
*/
|
|
48
50
|
export declare function wrapAgent<Input = unknown>(agentName: string, fn: (traceContext: TraceContext, input: Input) => any, options?: WrapAgentOptions): (this: any, input: Input) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-wrapper.d.ts","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"trace-wrapper.d.ts","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAKxE,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,IAAI,EAAE,IAAI,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACzC,8DAA8D;IAC9D,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,KAAK,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,UAC/F,GAAG,SAAS,KAAK;;;;GAkEhE"}
|
package/dist/trace-wrapper.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.wrapAgent = wrapAgent;
|
|
4
4
|
const api_1 = require("@opentelemetry/api");
|
|
5
5
|
const uuid_1 = require("uuid");
|
|
6
|
+
const debug_mode_1 = require("./debug-mode");
|
|
6
7
|
const experiment_mode_1 = require("./experiment-mode");
|
|
7
8
|
/**
|
|
8
9
|
* Wraps an agent function with OpenTelemetry tracing, automatically creating
|
|
@@ -25,7 +26,7 @@ const experiment_mode_1 = require("./experiment-mode");
|
|
|
25
26
|
* @param fn - The agent function to wrap. Receives a {@link TraceContext} as its first argument and the call-time input as its second.
|
|
26
27
|
* @param options - Configuration for the agent trace.
|
|
27
28
|
* @param options.isExperiment - Mark this run as an experiment in Lemma.
|
|
28
|
-
* @param options.autoEndRoot -
|
|
29
|
+
* @param options.autoEndRoot - Automatically end the top-level span when the wrapped function returns or throws (default: `true`). Set to `false` to end manually via `ctx.onComplete`.
|
|
29
30
|
* @returns An async function that accepts an `input`, executes `fn` inside a traced context, and returns `{ result, runId, span }`.
|
|
30
31
|
*/
|
|
31
32
|
function wrapAgent(agentName, fn, options) {
|
|
@@ -34,39 +35,54 @@ function wrapAgent(agentName, fn, options) {
|
|
|
34
35
|
const tracer = api_1.trace.getTracer("lemma");
|
|
35
36
|
// Generate a unique run ID and open a new span for this agent invocation
|
|
36
37
|
const runId = (0, uuid_1.v4)();
|
|
38
|
+
const autoEndRoot = options?.autoEndRoot !== false; // default true
|
|
37
39
|
const span = tracer.startSpan("ai.agent.run", {
|
|
38
40
|
attributes: {
|
|
39
41
|
"ai.agent.name": agentName,
|
|
40
42
|
"lemma.run_id": runId,
|
|
41
43
|
"lemma.is_experiment": (0, experiment_mode_1.isExperimentModeEnabled)() || options?.isExperiment === true,
|
|
42
|
-
"lemma.auto_end_root":
|
|
44
|
+
"lemma.auto_end_root": autoEndRoot,
|
|
43
45
|
},
|
|
44
46
|
}, api_1.ROOT_CONTEXT);
|
|
47
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span started", { agentName, runId, autoEndRoot });
|
|
45
48
|
// Propagate the span as the active context so child spans are nested correctly
|
|
46
49
|
const ctx = api_1.trace.setSpan(api_1.ROOT_CONTEXT, span);
|
|
47
|
-
const autoEndRoot = options?.autoEndRoot === true;
|
|
48
50
|
let rootEnded = false;
|
|
49
51
|
try {
|
|
50
52
|
return await api_1.context.with(ctx, async () => {
|
|
51
53
|
const onComplete = (_result) => {
|
|
52
|
-
if (autoEndRoot
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
if (!autoEndRoot && !rootEnded) {
|
|
55
|
+
rootEnded = true;
|
|
56
|
+
span.end();
|
|
57
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span ended via onComplete", { runId });
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "onComplete called but span not ended (autoEndRoot active or already ended)", { runId });
|
|
61
|
+
return false;
|
|
57
62
|
};
|
|
58
63
|
const recordError = (error) => {
|
|
59
64
|
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
60
65
|
span.setStatus({ code: 2 }); // SpanStatusCode.ERROR
|
|
61
66
|
};
|
|
62
67
|
const result = await fn.call(this, { span, runId, onComplete, recordError }, input);
|
|
68
|
+
// Auto-end the span if autoEndRoot is enabled and onComplete hasn't ended it yet
|
|
69
|
+
if (autoEndRoot && !rootEnded) {
|
|
70
|
+
rootEnded = true;
|
|
71
|
+
span.end();
|
|
72
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span auto-ended after fn returned", { runId });
|
|
73
|
+
}
|
|
63
74
|
return { result, runId, span };
|
|
64
75
|
});
|
|
65
76
|
}
|
|
66
77
|
catch (err) {
|
|
67
|
-
// Record the exception on the span
|
|
78
|
+
// Record the exception on the span, mark it as errored, and end it
|
|
68
79
|
span.recordException(err);
|
|
69
80
|
span.setStatus({ code: 2 }); // SpanStatusCode.ERROR
|
|
81
|
+
if (!rootEnded) {
|
|
82
|
+
rootEnded = true;
|
|
83
|
+
span.end();
|
|
84
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span ended on error", { runId, error: String(err) });
|
|
85
|
+
}
|
|
70
86
|
throw err;
|
|
71
87
|
}
|
|
72
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-wrapper.js","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"trace-wrapper.js","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":";;AAuDA,8BAmEC;AA1HD,4CAAwE;AACxE,+BAAoC;AACpC,6CAA0C;AAC1C,uDAA4D;AA4B5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,SAAS,CAAkB,SAAiB,EAAE,EAAqD,EAAE,OAA0B;IAC7I,MAAM,eAAe,GAAG,KAAK,WAAsB,KAAY;QAC7D,wDAAwD;QACxD,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExC,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAA,SAAM,GAAE,CAAC;QACvB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,eAAe;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;YAC5C,UAAU,EAAE;gBACV,eAAe,EAAE,SAAS;gBAC1B,cAAc,EAAE,KAAK;gBACrB,qBAAqB,EAAE,IAAA,yCAAuB,GAAE,IAAI,OAAO,EAAE,YAAY,KAAK,IAAI;gBAClF,qBAAqB,EAAE,WAAW;aACnC;SACF,EAAE,kBAAY,CAAC,CAAC;QAEjB,IAAA,uBAAU,EAAC,eAAe,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAE/E,+EAA+E;QAC/E,MAAM,GAAG,GAAG,WAAK,CAAC,OAAO,CAAC,kBAAY,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC;YACH,OAAO,MAAM,aAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBACxC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAW,EAAE;oBAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;wBAC/B,SAAS,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,EAAE,CAAC;wBACX,IAAA,uBAAU,EAAC,eAAe,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;wBACpE,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,IAAA,uBAAU,EAAC,eAAe,EAAE,4EAA4E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBACrH,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC;gBAEF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;oBACrC,IAAI,CAAC,eAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;gBACtD,CAAC,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;gBAEpF,iFAAiF;gBACjF,IAAI,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC9B,SAAS,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,IAAA,uBAAU,EAAC,eAAe,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mEAAmE;YACnE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;YACpD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,IAAA,uBAAU,EAAC,eAAe,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uselemma/tracing",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "OpenTelemetry-based tracing module for Lemma",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Lemma",
|
|
@@ -41,15 +41,21 @@
|
|
|
41
41
|
"uuid": "^13.0.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
+
"@arizeai/openinference-instrumentation-openai": "^4.0.5",
|
|
45
|
+
"@opentelemetry/instrumentation": "^0.213.0",
|
|
44
46
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
|
45
47
|
"@types/node": "^22.18.8",
|
|
48
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
49
|
+
"openai": "^6.26.0",
|
|
46
50
|
"prettier": "^3.6.2",
|
|
47
51
|
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
48
|
-
"typescript": "^5.9.3"
|
|
52
|
+
"typescript": "^5.9.3",
|
|
53
|
+
"vitest": "^3.2.4"
|
|
49
54
|
},
|
|
50
55
|
"scripts": {
|
|
51
56
|
"type-check": "tsc --noEmit",
|
|
52
57
|
"build": "tsc",
|
|
53
|
-
"clean": "rm -rf dist"
|
|
58
|
+
"clean": "rm -rf dist",
|
|
59
|
+
"test": "vitest run"
|
|
54
60
|
}
|
|
55
61
|
}
|