@microsoft/agents-a365-observability 0.1.0-preview.111 → 0.1.0-preview.112
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/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tracing/context/parent-span-context.d.ts +11 -2
- package/dist/cjs/tracing/context/parent-span-context.d.ts.map +1 -1
- package/dist/cjs/tracing/context/parent-span-context.js +2 -0
- package/dist/cjs/tracing/context/parent-span-context.js.map +1 -1
- package/dist/cjs/tracing/context/trace-context-propagation.d.ts +68 -0
- package/dist/cjs/tracing/context/trace-context-propagation.d.ts.map +1 -0
- package/dist/cjs/tracing/context/trace-context-propagation.js +85 -0
- package/dist/cjs/tracing/context/trace-context-propagation.js.map +1 -0
- package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts +4 -3
- package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/ExecuteToolScope.js +6 -5
- package/dist/cjs/tracing/scopes/ExecuteToolScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/InferenceScope.d.ts +4 -3
- package/dist/cjs/tracing/scopes/InferenceScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/InferenceScope.js +6 -5
- package/dist/cjs/tracing/scopes/InferenceScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts +4 -3
- package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/InvokeAgentScope.js +6 -5
- package/dist/cjs/tracing/scopes/InvokeAgentScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts +5 -3
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.js +15 -5
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/OutputScope.d.ts +4 -3
- package/dist/cjs/tracing/scopes/OutputScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/OutputScope.js +6 -5
- package/dist/cjs/tracing/scopes/OutputScope.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tracing/context/parent-span-context.d.ts +11 -2
- package/dist/esm/tracing/context/parent-span-context.d.ts.map +1 -1
- package/dist/esm/tracing/context/parent-span-context.js +2 -0
- package/dist/esm/tracing/context/parent-span-context.js.map +1 -1
- package/dist/esm/tracing/context/trace-context-propagation.d.ts +68 -0
- package/dist/esm/tracing/context/trace-context-propagation.d.ts.map +1 -0
- package/dist/esm/tracing/context/trace-context-propagation.js +79 -0
- package/dist/esm/tracing/context/trace-context-propagation.js.map +1 -0
- package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts +4 -3
- package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/ExecuteToolScope.js +6 -5
- package/dist/esm/tracing/scopes/ExecuteToolScope.js.map +1 -1
- package/dist/esm/tracing/scopes/InferenceScope.d.ts +4 -3
- package/dist/esm/tracing/scopes/InferenceScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/InferenceScope.js +6 -5
- package/dist/esm/tracing/scopes/InferenceScope.js.map +1 -1
- package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts +4 -3
- package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/InvokeAgentScope.js +6 -5
- package/dist/esm/tracing/scopes/InvokeAgentScope.js.map +1 -1
- package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts +5 -3
- package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/OpenTelemetryScope.js +15 -5
- package/dist/esm/tracing/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/esm/tracing/scopes/OutputScope.d.ts +4 -3
- package/dist/esm/tracing/scopes/OutputScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/OutputScope.js +6 -5
- package/dist/esm/tracing/scopes/OutputScope.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { ExporterEventNames } from './tracing/exporter/ExporterEventNames';
|
|
|
6
6
|
export { BaggageBuilder, BaggageScope } from './tracing/middleware/BaggageBuilder';
|
|
7
7
|
export { runWithExportToken, updateExportToken, getExportToken } from './tracing/context/token-context';
|
|
8
8
|
export { ParentSpanRef, runWithParentSpanRef, createContextWithParentSpanRef } from './tracing/context/parent-span-context';
|
|
9
|
+
export { HeadersCarrier, ParentContext, injectTraceContext, extractTraceContext, runWithExtractedTraceContext } from './tracing/context/trace-context-propagation';
|
|
9
10
|
export { ExecutionType, InvocationRole, SourceMetadata, AgentRequest, AgentDetails, TenantDetails, ToolCallDetails, InvokeAgentDetails, CallerDetails, EnhancedAgentDetails, ServiceEndpoint, InferenceDetails, InferenceOperationType, InferenceResponse, OutputResponse } from './tracing/contracts';
|
|
10
11
|
export { OpenTelemetryScope } from './tracing/scopes/OpenTelemetryScope';
|
|
11
12
|
export { ExecuteToolScope } from './tracing/scopes/ExecuteToolScope';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGxG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAG5H,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzF,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGxG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAG5H,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzF,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,cAAc,iBAAiB,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.formatError = exports.resetLogger = exports.getLogger = exports.setLogger = exports.logger = exports.OutputScope = exports.InferenceScope = exports.InvokeAgentScope = exports.ExecuteToolScope = exports.OpenTelemetryScope = exports.InferenceOperationType = exports.InvocationRole = exports.ExecutionType = exports.createContextWithParentSpanRef = exports.runWithParentSpanRef = exports.getExportToken = exports.updateExportToken = exports.runWithExportToken = exports.BaggageScope = exports.BaggageBuilder = exports.ExporterEventNames = exports.OpenTelemetryConstants = exports.Agent365ExporterOptions = exports.Builder = exports.ObservabilityManager = void 0;
|
|
20
|
+
exports.formatError = exports.resetLogger = exports.getLogger = exports.setLogger = exports.logger = exports.OutputScope = exports.InferenceScope = exports.InvokeAgentScope = exports.ExecuteToolScope = exports.OpenTelemetryScope = exports.InferenceOperationType = exports.InvocationRole = exports.ExecutionType = exports.runWithExtractedTraceContext = exports.extractTraceContext = exports.injectTraceContext = exports.createContextWithParentSpanRef = exports.runWithParentSpanRef = exports.getExportToken = exports.updateExportToken = exports.runWithExportToken = exports.BaggageScope = exports.BaggageBuilder = exports.ExporterEventNames = exports.OpenTelemetryConstants = exports.Agent365ExporterOptions = exports.Builder = exports.ObservabilityManager = void 0;
|
|
21
21
|
// Main SDK classes
|
|
22
22
|
var ObservabilityManager_1 = require("./ObservabilityManager");
|
|
23
23
|
Object.defineProperty(exports, "ObservabilityManager", { enumerable: true, get: function () { return ObservabilityManager_1.ObservabilityManager; } });
|
|
@@ -43,6 +43,11 @@ Object.defineProperty(exports, "getExportToken", { enumerable: true, get: functi
|
|
|
43
43
|
var parent_span_context_1 = require("./tracing/context/parent-span-context");
|
|
44
44
|
Object.defineProperty(exports, "runWithParentSpanRef", { enumerable: true, get: function () { return parent_span_context_1.runWithParentSpanRef; } });
|
|
45
45
|
Object.defineProperty(exports, "createContextWithParentSpanRef", { enumerable: true, get: function () { return parent_span_context_1.createContextWithParentSpanRef; } });
|
|
46
|
+
// Trace context propagation utilities (W3C traceparent/tracestate)
|
|
47
|
+
var trace_context_propagation_1 = require("./tracing/context/trace-context-propagation");
|
|
48
|
+
Object.defineProperty(exports, "injectTraceContext", { enumerable: true, get: function () { return trace_context_propagation_1.injectTraceContext; } });
|
|
49
|
+
Object.defineProperty(exports, "extractTraceContext", { enumerable: true, get: function () { return trace_context_propagation_1.extractTraceContext; } });
|
|
50
|
+
Object.defineProperty(exports, "runWithExtractedTraceContext", { enumerable: true, get: function () { return trace_context_propagation_1.runWithExtractedTraceContext; } });
|
|
46
51
|
// Contracts and interfaces
|
|
47
52
|
var contracts_1 = require("./tracing/contracts");
|
|
48
53
|
Object.defineProperty(exports, "ExecutionType", { enumerable: true, get: function () { return contracts_1.ExecutionType; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;;;;;;;;;;;;;;;AAEjF,mBAAmB;AACnB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,+DAAyF;AAAhF,+GAAA,oBAAoB,OAAW;AACxC,sFAAqF;AAA5E,kIAAA,uBAAuB,OAAA;AAChC,oBAAoB;AACpB,iDAA6D;AAApD,mHAAA,sBAAsB,OAAA;AAC/B,4EAA2E;AAAlE,wHAAA,kBAAkB,OAAA;AAE3B,kBAAkB;AAClB,sEAAmF;AAA1E,gHAAA,cAAc,OAAA;AAAE,8GAAA,YAAY,OAAA;AAErC,+BAA+B;AAC/B,iEAAwG;AAA/F,mHAAA,kBAAkB,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAE9D,gCAAgC;AAChC,6EAA4H;AAApG,2HAAA,oBAAoB,OAAA;AAAE,qIAAA,8BAA8B,OAAA;AAE5E,2BAA2B;AAC3B,iDAgB6B;AAf3B,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AAWd,mHAAA,sBAAsB,OAAA;AAKxB,SAAS;AACT,0EAAyE;AAAhE,wHAAA,kBAAkB,OAAA;AAC3B,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,4DAA2D;AAAlD,0GAAA,WAAW,OAAA;AACpB,2CAAyF;AAAhF,iGAAA,MAAM,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAG/D,gBAAgB;AAChB,kDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;;;;;;;;;;;;;;;AAEjF,mBAAmB;AACnB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,+DAAyF;AAAhF,+GAAA,oBAAoB,OAAW;AACxC,sFAAqF;AAA5E,kIAAA,uBAAuB,OAAA;AAChC,oBAAoB;AACpB,iDAA6D;AAApD,mHAAA,sBAAsB,OAAA;AAC/B,4EAA2E;AAAlE,wHAAA,kBAAkB,OAAA;AAE3B,kBAAkB;AAClB,sEAAmF;AAA1E,gHAAA,cAAc,OAAA;AAAE,8GAAA,YAAY,OAAA;AAErC,+BAA+B;AAC/B,iEAAwG;AAA/F,mHAAA,kBAAkB,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAE9D,gCAAgC;AAChC,6EAA4H;AAApG,2HAAA,oBAAoB,OAAA;AAAE,qIAAA,8BAA8B,OAAA;AAE5E,mEAAmE;AACnE,yFAMqD;AAHnD,+HAAA,kBAAkB,OAAA;AAClB,gIAAA,mBAAmB,OAAA;AACnB,yIAAA,4BAA4B,OAAA;AAG9B,2BAA2B;AAC3B,iDAgB6B;AAf3B,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AAWd,mHAAA,sBAAsB,OAAA;AAKxB,SAAS;AACT,0EAAyE;AAAhE,wHAAA,kBAAkB,OAAA;AAC3B,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,4DAA2D;AAAlD,0GAAA,WAAW,OAAA;AACpB,2CAAyF;AAAhF,iGAAA,MAAM,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAG/D,gBAAgB;AAChB,kDAAgC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Context, TraceFlags } from '@opentelemetry/api';
|
|
1
|
+
import { Context, TraceFlags, TraceState } from '@opentelemetry/api';
|
|
2
2
|
/**
|
|
3
3
|
* Reference to a parent span for explicit parent-child linking across async boundaries.
|
|
4
4
|
* Used when automatic context propagation fails (e.g., WebSocket callbacks, external event handlers).
|
|
@@ -12,9 +12,18 @@ export interface ParentSpanRef {
|
|
|
12
12
|
* Span ID (16-character hex string)
|
|
13
13
|
*/
|
|
14
14
|
spanId: string;
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Optional trace flags
|
|
16
17
|
*/
|
|
17
18
|
traceFlags?: TraceFlags;
|
|
19
|
+
/**
|
|
20
|
+
* Optional W3C trace state for vendor-specific trace context data
|
|
21
|
+
*/
|
|
22
|
+
traceState?: TraceState;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the span originated from a remote service (default: true)
|
|
25
|
+
*/
|
|
26
|
+
isRemote?: boolean;
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
20
29
|
* Creates a new Context with an explicit parent span reference.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parent-span-context.d.ts","sourceRoot":"","sources":["../../../../src/tracing/context/parent-span-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,OAAO,EAAe,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"parent-span-context.d.ts","sourceRoot":"","sources":["../../../../src/tracing/context/parent-span-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,OAAO,EAAe,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGlG;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAoC5F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAKnF"}
|
|
@@ -42,6 +42,8 @@ function createContextWithParentSpanRef(base, parent) {
|
|
|
42
42
|
traceId: parent.traceId,
|
|
43
43
|
spanId: parent.spanId,
|
|
44
44
|
traceFlags,
|
|
45
|
+
traceState: parent.traceState,
|
|
46
|
+
isRemote: parent.isRemote ?? true,
|
|
45
47
|
};
|
|
46
48
|
// Create a non-recording span with the parent context
|
|
47
49
|
const parentSpan = api_1.trace.wrapSpanContext(parentSpanContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parent-span-context.js","sourceRoot":"","sources":["../../../../src/tracing/context/parent-span-context.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;
|
|
1
|
+
{"version":3,"file":"parent-span-context.js","sourceRoot":"","sources":["../../../../src/tracing/context/parent-span-context.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;AAoDlC,wEAoCC;AAUD,oDAKC;AArGD,4CAAkG;AAClG,kEAAyC;AAiCzC,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,kCAAkC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,kBAAkB,CAAC;AACzE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAAC,IAAa,EAAE,MAAqB;IACjF,iBAAM,CAAC,IAAI,CAAC,kEAAkE,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEzH,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACrE,iBAAM,CAAC,IAAI,CACT,sFAAsF,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,MAAM,EAAE,CAChI,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,kDAAkD;IAClD,qDAAqD;IACrD,gFAAgF;IAChF,MAAM,SAAS,GAAG,WAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrD,MAAM,UAAU,GACd,MAAM,CAAC,UAAU;WACd,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;WAC1E,gBAAU,CAAC,OAAO,CAAC;IAExB,iDAAiD;IACjD,MAAM,iBAAiB,GAAgB;QACrC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;KAClC,CAAC;IAEF,sDAAsD;IACtD,MAAM,UAAU,GAAG,WAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,iBAAiB,GAAG,WAAK,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAI,MAAqB,EAAE,QAAiB;IAC9E,MAAM,IAAI,GAAG,aAAO,CAAC,MAAM,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,iBAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,aAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Context } from '@opentelemetry/api';
|
|
2
|
+
import { ParentSpanRef } from './parent-span-context';
|
|
3
|
+
/**
|
|
4
|
+
* Carrier type for HTTP headers used in trace context propagation.
|
|
5
|
+
* Compatible with Node.js IncomingHttpHeaders and plain string maps.
|
|
6
|
+
*/
|
|
7
|
+
export type HeadersCarrier = Record<string, string | string[] | undefined>;
|
|
8
|
+
/**
|
|
9
|
+
* A parent context for span creation. Accepts either:
|
|
10
|
+
* - {@link ParentSpanRef}: explicit traceId/spanId pair (manual approach)
|
|
11
|
+
* - {@link Context}: an OTel Context, typically from {@link extractTraceContext} or `propagation.extract()`
|
|
12
|
+
*/
|
|
13
|
+
export type ParentContext = ParentSpanRef | Context;
|
|
14
|
+
/**
|
|
15
|
+
* Type guard to distinguish a {@link ParentSpanRef} from an OTel {@link Context}.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isParentSpanRef(value: ParentContext): value is ParentSpanRef;
|
|
18
|
+
/**
|
|
19
|
+
* Injects the current trace context (`traceparent`/`tracestate` headers) into
|
|
20
|
+
* the provided headers object using the globally registered W3C propagator.
|
|
21
|
+
*
|
|
22
|
+
* @param headers Mutable object where trace context headers will be written.
|
|
23
|
+
* @param ctx Optional OTel Context to inject from. Defaults to the active context.
|
|
24
|
+
* @returns The same `headers` object, for chaining convenience.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const headers: Record<string, string> = {};
|
|
29
|
+
* injectTraceContext(headers);
|
|
30
|
+
* await fetch('http://service-b/process', { headers });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function injectTraceContext(headers: Record<string, string>, ctx?: Context): Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Extracts trace context from incoming HTTP headers using the globally
|
|
36
|
+
* registered W3C propagator. Returns an OTel {@link Context} that can be
|
|
37
|
+
* passed to scope classes as a {@link ParentContext}.
|
|
38
|
+
*
|
|
39
|
+
* @param headers The incoming HTTP request headers containing `traceparent`/`tracestate`.
|
|
40
|
+
* @param baseCtx Optional base context to extend. Defaults to the active context.
|
|
41
|
+
* @returns An OTel Context containing the extracted trace information.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const parentCtx = extractTraceContext(req.headers);
|
|
46
|
+
* const scope = InvokeAgentScope.start(details, tenantDetails, undefined, undefined, parentCtx);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function extractTraceContext(headers: HeadersCarrier, baseCtx?: Context): Context;
|
|
50
|
+
/**
|
|
51
|
+
* Extracts trace context from incoming HTTP headers and runs the callback
|
|
52
|
+
* within that context. Any spans created inside the callback will be
|
|
53
|
+
* parented to the extracted trace.
|
|
54
|
+
*
|
|
55
|
+
* @param headers The incoming HTTP request headers containing `traceparent`/`tracestate`.
|
|
56
|
+
* @param callback The function to execute within the extracted context.
|
|
57
|
+
* @returns The result of the callback.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* runWithExtractedTraceContext(req.headers, () => {
|
|
62
|
+
* const scope = InvokeAgentScope.start(details, tenantDetails);
|
|
63
|
+
* scope.dispose();
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function runWithExtractedTraceContext<T>(headers: HeadersCarrier, callback: () => T): T;
|
|
68
|
+
//# sourceMappingURL=trace-context-propagation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-context-propagation.d.ts","sourceRoot":"","sources":["../../../../src/tracing/context/trace-context-propagation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAE3E;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;AAEpD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,IAAI,aAAa,CAmB5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,GAAG,CAAC,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAET;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAE7F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.isParentSpanRef = isParentSpanRef;
|
|
6
|
+
exports.injectTraceContext = injectTraceContext;
|
|
7
|
+
exports.extractTraceContext = extractTraceContext;
|
|
8
|
+
exports.runWithExtractedTraceContext = runWithExtractedTraceContext;
|
|
9
|
+
const api_1 = require("@opentelemetry/api");
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to distinguish a {@link ParentSpanRef} from an OTel {@link Context}.
|
|
12
|
+
*/
|
|
13
|
+
function isParentSpanRef(value) {
|
|
14
|
+
if (typeof value !== 'object' || value === null)
|
|
15
|
+
return false;
|
|
16
|
+
const maybeCtx = value;
|
|
17
|
+
if (typeof maybeCtx.getValue === 'function' &&
|
|
18
|
+
typeof maybeCtx.setValue === 'function' &&
|
|
19
|
+
typeof maybeCtx.deleteValue === 'function') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const maybeRef = value;
|
|
23
|
+
return ('traceId' in maybeRef &&
|
|
24
|
+
typeof maybeRef.traceId === 'string' &&
|
|
25
|
+
'spanId' in maybeRef &&
|
|
26
|
+
typeof maybeRef.spanId === 'string');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Injects the current trace context (`traceparent`/`tracestate` headers) into
|
|
30
|
+
* the provided headers object using the globally registered W3C propagator.
|
|
31
|
+
*
|
|
32
|
+
* @param headers Mutable object where trace context headers will be written.
|
|
33
|
+
* @param ctx Optional OTel Context to inject from. Defaults to the active context.
|
|
34
|
+
* @returns The same `headers` object, for chaining convenience.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const headers: Record<string, string> = {};
|
|
39
|
+
* injectTraceContext(headers);
|
|
40
|
+
* await fetch('http://service-b/process', { headers });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
function injectTraceContext(headers, ctx) {
|
|
44
|
+
api_1.propagation.inject(ctx ?? api_1.context.active(), headers);
|
|
45
|
+
return headers;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Extracts trace context from incoming HTTP headers using the globally
|
|
49
|
+
* registered W3C propagator. Returns an OTel {@link Context} that can be
|
|
50
|
+
* passed to scope classes as a {@link ParentContext}.
|
|
51
|
+
*
|
|
52
|
+
* @param headers The incoming HTTP request headers containing `traceparent`/`tracestate`.
|
|
53
|
+
* @param baseCtx Optional base context to extend. Defaults to the active context.
|
|
54
|
+
* @returns An OTel Context containing the extracted trace information.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const parentCtx = extractTraceContext(req.headers);
|
|
59
|
+
* const scope = InvokeAgentScope.start(details, tenantDetails, undefined, undefined, parentCtx);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
function extractTraceContext(headers, baseCtx) {
|
|
63
|
+
return api_1.propagation.extract(baseCtx ?? api_1.context.active(), headers);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Extracts trace context from incoming HTTP headers and runs the callback
|
|
67
|
+
* within that context. Any spans created inside the callback will be
|
|
68
|
+
* parented to the extracted trace.
|
|
69
|
+
*
|
|
70
|
+
* @param headers The incoming HTTP request headers containing `traceparent`/`tracestate`.
|
|
71
|
+
* @param callback The function to execute within the extracted context.
|
|
72
|
+
* @returns The result of the callback.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* runWithExtractedTraceContext(req.headers, () => {
|
|
77
|
+
* const scope = InvokeAgentScope.start(details, tenantDetails);
|
|
78
|
+
* scope.dispose();
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
function runWithExtractedTraceContext(headers, callback) {
|
|
83
|
+
return api_1.context.with(extractTraceContext(headers), callback);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=trace-context-propagation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-context-propagation.js","sourceRoot":"","sources":["../../../../src/tracing/context/trace-context-propagation.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAqBlC,0CAmBC;AAiBD,gDAMC;AAiBD,kDAKC;AAmBD,oEAEC;AAxGD,4CAAmE;AAgBnE;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAoB;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,QAAQ,GAAG,KAAgB,CAAC;IAClC,IACE,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU;QACvC,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU;QACvC,OAAO,QAAQ,CAAC,WAAW,KAAK,UAAU,EAC1C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,KAAsB,CAAC;IACxC,OAAO,CACL,SAAS,IAAI,QAAQ;QACrB,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QACpC,QAAQ,IAAI,QAAQ;QACpB,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAChC,OAA+B,EAC/B,GAAa;IAEb,iBAAW,CAAC,MAAM,CAAC,GAAG,IAAI,aAAO,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,mBAAmB,CACjC,OAAuB,EACvB,OAAiB;IAEjB,OAAO,iBAAW,CAAC,OAAO,CAAC,OAAO,IAAI,aAAO,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,4BAA4B,CAAI,OAAuB,EAAE,QAAiB;IACxF,OAAO,aAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TimeInput } from '@opentelemetry/api';
|
|
2
2
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
3
3
|
import { ToolCallDetails, AgentDetails, TenantDetails, SourceMetadata } from '../contracts';
|
|
4
|
-
import {
|
|
4
|
+
import { ParentContext } from '../context/trace-context-propagation';
|
|
5
5
|
/**
|
|
6
6
|
* Provides OpenTelemetry tracing scope for AI tool execution operations.
|
|
7
7
|
*/
|
|
@@ -13,14 +13,15 @@ export declare class ExecuteToolScope extends OpenTelemetryScope {
|
|
|
13
13
|
* @param tenantDetails The tenant details
|
|
14
14
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
15
15
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
16
|
-
* @param
|
|
16
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
17
|
+
* Accepts a ParentSpanRef (manual traceId/spanId) or an OTel Context (e.g. from extractTraceContext).
|
|
17
18
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime). Useful when recording a
|
|
18
19
|
* tool call after execution has already completed.
|
|
19
20
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime). When provided, the span will
|
|
20
21
|
* use this timestamp when disposed instead of the current wall-clock time.
|
|
21
22
|
* @returns A new ExecuteToolScope instance.
|
|
22
23
|
*/
|
|
23
|
-
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">,
|
|
24
|
+
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">, parentContext?: ParentContext, startTime?: TimeInput, endTime?: TimeInput): ExecuteToolScope;
|
|
24
25
|
private constructor();
|
|
25
26
|
/**
|
|
26
27
|
* Records response information for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;;;;;;;OAcG;WACW,KAAK,CACjB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,EAC7D,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,gBAAgB;IAInB,OAAO;IA6CP;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9C"}
|
|
@@ -17,18 +17,19 @@ class ExecuteToolScope extends OpenTelemetryScope_1.OpenTelemetryScope {
|
|
|
17
17
|
* @param tenantDetails The tenant details
|
|
18
18
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
19
19
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
20
|
-
* @param
|
|
20
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
21
|
+
* Accepts a ParentSpanRef (manual traceId/spanId) or an OTel Context (e.g. from extractTraceContext).
|
|
21
22
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime). Useful when recording a
|
|
22
23
|
* tool call after execution has already completed.
|
|
23
24
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime). When provided, the span will
|
|
24
25
|
* use this timestamp when disposed instead of the current wall-clock time.
|
|
25
26
|
* @returns A new ExecuteToolScope instance.
|
|
26
27
|
*/
|
|
27
|
-
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata,
|
|
28
|
-
return new ExecuteToolScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata,
|
|
28
|
+
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentContext, startTime, endTime) {
|
|
29
|
+
return new ExecuteToolScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentContext, startTime, endTime);
|
|
29
30
|
}
|
|
30
|
-
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata,
|
|
31
|
-
super(api_1.SpanKind.INTERNAL, constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails,
|
|
31
|
+
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentContext, startTime, endTime) {
|
|
32
|
+
super(api_1.SpanKind.INTERNAL, constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails, parentContext, startTime, endTime);
|
|
32
33
|
// Destructure the details object to match C# pattern
|
|
33
34
|
const { toolName, arguments: args, toolCallId, description, toolType, endpoint } = details;
|
|
34
35
|
this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_TOOL_NAME_KEY, toolName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecuteToolScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAAyD;AACzD,6DAA0D;AAG1D,4CAAsD;AAEtD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,uCAAkB;IACtD
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAAyD;AACzD,6DAA0D;AAG1D,4CAAsD;AAEtD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,uCAAkB;IACtD;;;;;;;;;;;;;;OAcG;IACI,MAAM,CAAC,KAAK,CACjB,OAAwB,EACxB,YAA0B,EAC1B,aAA4B,EAC5B,cAAuB,EACvB,cAA6D,EAC7D,aAA6B,EAC7B,SAAqB,EACrB,OAAmB;QAEnB,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvI,CAAC;IAED,YACE,OAAwB,EACxB,YAA0B,EAC1B,aAA4B,EAC5B,cAAuB,EACvB,cAA6D,EAC7D,aAA6B,EAC7B,SAAqB,EACrB,OAAmB;QAEnB,KAAK,CACH,cAAQ,CAAC,QAAQ,EACjB,kCAAsB,CAAC,2BAA2B,EAClD,GAAG,kCAAsB,CAAC,2BAA2B,IAAI,OAAO,CAAC,QAAQ,EAAE,EAC3E,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;QAEF,qDAAqD;QACrD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE3F,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,gCAAgC,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAChG,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,uCAAuC,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAG9G,uCAAuC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE3E,oEAAoE;YACpE,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,QAAgB;QACpC,IAAI,CAAC,WAAW,CAAC,kCAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;CACF;AAjFD,4CAiFC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TimeInput } from '@opentelemetry/api';
|
|
2
2
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
3
3
|
import { InferenceDetails, AgentDetails, TenantDetails, SourceMetadata } from '../contracts';
|
|
4
|
-
import {
|
|
4
|
+
import { ParentContext } from '../context/trace-context-propagation';
|
|
5
5
|
/**
|
|
6
6
|
* Provides OpenTelemetry tracing scope for generative AI inference operations.
|
|
7
7
|
*/
|
|
@@ -13,12 +13,13 @@ export declare class InferenceScope extends OpenTelemetryScope {
|
|
|
13
13
|
* @param tenantDetails The tenant details
|
|
14
14
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
15
15
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
16
|
-
* @param
|
|
16
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
17
|
+
* Accepts a ParentSpanRef (manual traceId/spanId) or an OTel Context (e.g. from extractTraceContext).
|
|
17
18
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
18
19
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
|
|
19
20
|
* @returns A new InferenceScope instance
|
|
20
21
|
*/
|
|
21
|
-
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">,
|
|
22
|
+
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">, parentContext?: ParentContext, startTime?: TimeInput, endTime?: TimeInput): InferenceScope;
|
|
22
23
|
private constructor();
|
|
23
24
|
/**
|
|
24
25
|
* Records the input messages for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE;;GAEG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;;;;OAYG;WACW,KAAK,CACjB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,EAC7D,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,cAAc;IAIjB,OAAO;IAkCP;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpD;;;OAGG;IACI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrD;;;OAGG;IACI,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD;;;OAGG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIrD;;;OAGG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMjD;;;OAGG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;CAM1D"}
|
|
@@ -17,16 +17,17 @@ class InferenceScope extends OpenTelemetryScope_1.OpenTelemetryScope {
|
|
|
17
17
|
* @param tenantDetails The tenant details
|
|
18
18
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
19
19
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
20
|
-
* @param
|
|
20
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
21
|
+
* Accepts a ParentSpanRef (manual traceId/spanId) or an OTel Context (e.g. from extractTraceContext).
|
|
21
22
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
22
23
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
|
|
23
24
|
* @returns A new InferenceScope instance
|
|
24
25
|
*/
|
|
25
|
-
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata,
|
|
26
|
-
return new InferenceScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata,
|
|
26
|
+
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentContext, startTime, endTime) {
|
|
27
|
+
return new InferenceScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentContext, startTime, endTime);
|
|
27
28
|
}
|
|
28
|
-
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata,
|
|
29
|
-
super(api_1.SpanKind.CLIENT, details.operationName.toString(), `${details.operationName} ${details.model}`, agentDetails, tenantDetails,
|
|
29
|
+
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentContext, startTime, endTime) {
|
|
30
|
+
super(api_1.SpanKind.CLIENT, details.operationName.toString(), `${details.operationName} ${details.model}`, agentDetails, tenantDetails, parentContext, startTime, endTime);
|
|
30
31
|
// Set core inference information matching C# implementation
|
|
31
32
|
this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY, details.operationName.toString());
|
|
32
33
|
this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_REQUEST_MODEL_KEY, details.model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InferenceScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAAyD;AACzD,6DAA0D;AAC1D,4CAAsD;AAStD;;GAEG;AACH,MAAa,cAAe,SAAQ,uCAAkB;IACpD
|
|
1
|
+
{"version":3,"file":"InferenceScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TimeInput } from '@opentelemetry/api';
|
|
2
2
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
3
3
|
import { InvokeAgentDetails, TenantDetails, CallerDetails, AgentDetails } from '../contracts';
|
|
4
|
-
import {
|
|
4
|
+
import { ParentContext } from '../context/trace-context-propagation';
|
|
5
5
|
/**
|
|
6
6
|
* Provides OpenTelemetry tracing scope for AI agent invocation operations.
|
|
7
7
|
*/
|
|
@@ -12,12 +12,13 @@ export declare class InvokeAgentScope extends OpenTelemetryScope {
|
|
|
12
12
|
* @param tenantDetails The tenant details.
|
|
13
13
|
* @param callerAgentDetails The details of the caller agent.
|
|
14
14
|
* @param callerDetails The details of the non-agentic caller.
|
|
15
|
-
* @param
|
|
15
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
16
|
+
* Accepts a ParentSpanRef (manual traceId/spanId) or an OTel Context (e.g. from extractTraceContext).
|
|
16
17
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
17
18
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
|
|
18
19
|
* @returns A new InvokeAgentScope instance.
|
|
19
20
|
*/
|
|
20
|
-
static start(invokeAgentDetails: InvokeAgentDetails, tenantDetails: TenantDetails, callerAgentDetails?: AgentDetails, callerDetails?: CallerDetails,
|
|
21
|
+
static start(invokeAgentDetails: InvokeAgentDetails, tenantDetails: TenantDetails, callerAgentDetails?: AgentDetails, callerDetails?: CallerDetails, parentContext?: ParentContext, startTime?: TimeInput, endTime?: TimeInput): InvokeAgentScope;
|
|
21
22
|
private constructor();
|
|
22
23
|
/**
|
|
23
24
|
* Records response information for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeAgentScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"InvokeAgentScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;;;;OAWG;WACW,KAAK,CACjB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,kBAAkB,CAAC,EAAE,YAAY,EACjC,aAAa,CAAC,EAAE,aAAa,EAC7B,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,gBAAgB;IAInB,OAAO;IAwEP;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7C;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpD;;;OAGG;IACI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;CAGtD"}
|
|
@@ -16,18 +16,19 @@ class InvokeAgentScope extends OpenTelemetryScope_1.OpenTelemetryScope {
|
|
|
16
16
|
* @param tenantDetails The tenant details.
|
|
17
17
|
* @param callerAgentDetails The details of the caller agent.
|
|
18
18
|
* @param callerDetails The details of the non-agentic caller.
|
|
19
|
-
* @param
|
|
19
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
20
|
+
* Accepts a ParentSpanRef (manual traceId/spanId) or an OTel Context (e.g. from extractTraceContext).
|
|
20
21
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime).
|
|
21
22
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime).
|
|
22
23
|
* @returns A new InvokeAgentScope instance.
|
|
23
24
|
*/
|
|
24
|
-
static start(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails,
|
|
25
|
-
return new InvokeAgentScope(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails,
|
|
25
|
+
static start(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentContext, startTime, endTime) {
|
|
26
|
+
return new InvokeAgentScope(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentContext, startTime, endTime);
|
|
26
27
|
}
|
|
27
|
-
constructor(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails,
|
|
28
|
+
constructor(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentContext, startTime, endTime) {
|
|
28
29
|
super(api_1.SpanKind.CLIENT, constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails.agentName
|
|
29
30
|
? `${constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME} ${invokeAgentDetails.agentName}`
|
|
30
|
-
: constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails, tenantDetails,
|
|
31
|
+
: constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails, tenantDetails, parentContext, startTime, endTime);
|
|
31
32
|
// Set session ID and endpoint information
|
|
32
33
|
this.setTagMaybe(constants_1.OpenTelemetryConstants.SESSION_ID_KEY, invokeAgentDetails.sessionId);
|
|
33
34
|
if (invokeAgentDetails.endpoint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeAgentScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAAyD;AACzD,6DAA0D;AAQ1D,4CAAsD;AAEtD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,uCAAkB;IACtD
|
|
1
|
+
{"version":3,"file":"InvokeAgentScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SpanKind, Span, AttributeValue, SpanContext, TimeInput } from '@opentelemetry/api';
|
|
2
2
|
import { AgentDetails, TenantDetails } from '../contracts';
|
|
3
|
-
import {
|
|
3
|
+
import { ParentContext } from '../context/trace-context-propagation';
|
|
4
4
|
/**
|
|
5
5
|
* Base class for OpenTelemetry tracing scopes
|
|
6
6
|
*/
|
|
@@ -20,14 +20,16 @@ export declare abstract class OpenTelemetryScope implements Disposable {
|
|
|
20
20
|
* @param spanName The name of the span for display purposes
|
|
21
21
|
* @param agentDetails Optional agent details
|
|
22
22
|
* @param tenantDetails Optional tenant details
|
|
23
|
-
* @param
|
|
23
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
24
|
+
* Accepts a {@link ParentSpanRef} (manual traceId/spanId) or an OTel {@link Context}
|
|
25
|
+
* (e.g. from {@link extractTraceContext} for W3C header propagation).
|
|
24
26
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime). When provided the span
|
|
25
27
|
* records this timestamp instead of "now", which is useful when recording an operation after it
|
|
26
28
|
* has already completed (e.g. a tool call whose start time was captured earlier).
|
|
27
29
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime). When provided the span will
|
|
28
30
|
* use this timestamp when {@link dispose} is called instead of the current wall-clock time.
|
|
29
31
|
*/
|
|
30
|
-
protected constructor(kind: SpanKind, operationName: string, spanName: string, agentDetails?: AgentDetails, tenantDetails?: TenantDetails,
|
|
32
|
+
protected constructor(kind: SpanKind, operationName: string, spanName: string, agentDetails?: AgentDetails, tenantDetails?: TenantDetails, parentContext?: ParentContext, startTime?: TimeInput, endTime?: TimeInput);
|
|
31
33
|
/**
|
|
32
34
|
* Makes this span active for the duration of the async callback execution
|
|
33
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenTelemetryScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,IAAI,EAAuC,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExI,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenTelemetryScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,IAAI,EAAuC,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExI,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAmB,MAAM,sCAAsC,CAAC;AAGtF;;GAEG;AACH,8BAAsB,kBAAmB,YAAW,UAAU;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAuD;IAErF,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,aACP,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,aAAa,EAC7B,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS;IAuDrB;;OAEG;IACI,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKrE;;;;OAIG;IACI,cAAc,IAAI,WAAW;IAIpC;;;OAGG;IACI,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAkBtC;;;OAGG;IACI,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IA2BjI;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAM3G;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAI3C;;OAEG;IACH,OAAO,CAAC,GAAG;IA8BX;;OAEG;IACI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAW/B;;OAEG;IACI,OAAO,IAAI,IAAI;CAIvB"}
|
|
@@ -9,6 +9,7 @@ exports.OpenTelemetryScope = void 0;
|
|
|
9
9
|
const api_1 = require("@opentelemetry/api");
|
|
10
10
|
const constants_1 = require("../constants");
|
|
11
11
|
const parent_span_context_1 = require("../context/parent-span-context");
|
|
12
|
+
const trace_context_propagation_1 = require("../context/trace-context-propagation");
|
|
12
13
|
const logging_1 = __importDefault(require("../../utils/logging"));
|
|
13
14
|
/**
|
|
14
15
|
* Base class for OpenTelemetry tracing scopes
|
|
@@ -21,20 +22,29 @@ class OpenTelemetryScope {
|
|
|
21
22
|
* @param spanName The name of the span for display purposes
|
|
22
23
|
* @param agentDetails Optional agent details
|
|
23
24
|
* @param tenantDetails Optional tenant details
|
|
24
|
-
* @param
|
|
25
|
+
* @param parentContext Optional parent context for cross-async-boundary tracing.
|
|
26
|
+
* Accepts a {@link ParentSpanRef} (manual traceId/spanId) or an OTel {@link Context}
|
|
27
|
+
* (e.g. from {@link extractTraceContext} for W3C header propagation).
|
|
25
28
|
* @param startTime Optional explicit start time (ms epoch, Date, or HrTime). When provided the span
|
|
26
29
|
* records this timestamp instead of "now", which is useful when recording an operation after it
|
|
27
30
|
* has already completed (e.g. a tool call whose start time was captured earlier).
|
|
28
31
|
* @param endTime Optional explicit end time (ms epoch, Date, or HrTime). When provided the span will
|
|
29
32
|
* use this timestamp when {@link dispose} is called instead of the current wall-clock time.
|
|
30
33
|
*/
|
|
31
|
-
constructor(kind, operationName, spanName, agentDetails, tenantDetails,
|
|
34
|
+
constructor(kind, operationName, spanName, agentDetails, tenantDetails, parentContext, startTime, endTime) {
|
|
32
35
|
this.hasEnded = false;
|
|
33
36
|
// Determine the context to use for span creation
|
|
34
37
|
let currentContext = api_1.context.active();
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
if (parentContext) {
|
|
39
|
+
if ((0, trace_context_propagation_1.isParentSpanRef)(parentContext)) {
|
|
40
|
+
// Existing ParentSpanRef path (backward compatible)
|
|
41
|
+
currentContext = (0, parent_span_context_1.createContextWithParentSpanRef)(currentContext, parentContext);
|
|
42
|
+
logging_1.default.info(`[A365Observability] Using explicit parent span: traceId=${parentContext.traceId}, spanId=${parentContext.spanId}`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// OTel Context path (from extractTraceContext or propagation.extract)
|
|
46
|
+
currentContext = parentContext;
|
|
47
|
+
}
|
|
38
48
|
}
|
|
39
49
|
logging_1.default.info(`[A365Observability] Starting span: ${spanName}, operation: ${operationName} for tenantId: ${tenantDetails?.tenantId || 'unknown'}, agentId: ${agentDetails?.agentId || 'unknown'}`);
|
|
40
50
|
// Start span with current context to establish parent-child relationship
|