@microsoft/agents-a365-observability 0.1.0-preview.92 → 0.1.0-preview.93
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 +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tracing/context/parent-span-context.d.ts +37 -0
- package/dist/cjs/tracing/context/parent-span-context.d.ts.map +1 -0
- package/dist/cjs/tracing/context/parent-span-context.js +63 -0
- package/dist/cjs/tracing/context/parent-span-context.js.map +1 -0
- package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts +3 -1
- package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/ExecuteToolScope.js +5 -4
- package/dist/cjs/tracing/scopes/ExecuteToolScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/InferenceScope.d.ts +3 -1
- package/dist/cjs/tracing/scopes/InferenceScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/InferenceScope.js +5 -4
- package/dist/cjs/tracing/scopes/InferenceScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts +3 -1
- package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/InvokeAgentScope.js +5 -4
- package/dist/cjs/tracing/scopes/InvokeAgentScope.js.map +1 -1
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts +10 -2
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.js +17 -2
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.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 +37 -0
- package/dist/esm/tracing/context/parent-span-context.d.ts.map +1 -0
- package/dist/esm/tracing/context/parent-span-context.js +56 -0
- package/dist/esm/tracing/context/parent-span-context.js.map +1 -0
- package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts +3 -1
- package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/ExecuteToolScope.js +5 -4
- package/dist/esm/tracing/scopes/ExecuteToolScope.js.map +1 -1
- package/dist/esm/tracing/scopes/InferenceScope.d.ts +3 -1
- package/dist/esm/tracing/scopes/InferenceScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/InferenceScope.js +5 -4
- package/dist/esm/tracing/scopes/InferenceScope.js.map +1 -1
- package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts +3 -1
- package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/InvokeAgentScope.js +5 -4
- package/dist/esm/tracing/scopes/InvokeAgentScope.js.map +1 -1
- package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts +10 -2
- package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/esm/tracing/scopes/OpenTelemetryScope.js +17 -2
- package/dist/esm/tracing/scopes/OpenTelemetryScope.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { Agent365ExporterOptions } from './tracing/exporter/Agent365ExporterOpti
|
|
|
4
4
|
export { OpenTelemetryConstants } from './tracing/constants';
|
|
5
5
|
export { BaggageBuilder, BaggageScope } from './tracing/middleware/BaggageBuilder';
|
|
6
6
|
export { runWithExportToken, getExportToken } from './tracing/context/token-context';
|
|
7
|
+
export { ParentSpanRef, runWithParentSpanRef, createContextWithParentSpanRef } from './tracing/context/parent-span-context';
|
|
7
8
|
export { ExecutionType, InvocationRole, SourceMetadata, AgentRequest, AgentDetails, TenantDetails, ToolCallDetails, InvokeAgentDetails, CallerDetails, EnhancedAgentDetails, ServiceEndpoint, InferenceDetails, InferenceOperationType, InferenceResponse } from './tracing/contracts';
|
|
8
9
|
export { OpenTelemetryScope } from './tracing/scopes/OpenTelemetryScope';
|
|
9
10
|
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;AAG7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGrF,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,EAClB,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,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,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;AAG7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGrF,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,EAClB,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,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
4
|
// ------------------------------------------------------------------------------
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.formatError = exports.logger = exports.InferenceScope = exports.InvokeAgentScope = exports.ExecuteToolScope = exports.OpenTelemetryScope = exports.InferenceOperationType = exports.InvocationRole = exports.ExecutionType = exports.getExportToken = exports.runWithExportToken = exports.BaggageScope = exports.BaggageBuilder = exports.OpenTelemetryConstants = exports.Agent365ExporterOptions = exports.Builder = exports.ObservabilityManager = void 0;
|
|
6
|
+
exports.formatError = exports.logger = exports.InferenceScope = exports.InvokeAgentScope = exports.ExecuteToolScope = exports.OpenTelemetryScope = exports.InferenceOperationType = exports.InvocationRole = exports.ExecutionType = exports.createContextWithParentSpanRef = exports.runWithParentSpanRef = exports.getExportToken = exports.runWithExportToken = exports.BaggageScope = exports.BaggageBuilder = exports.OpenTelemetryConstants = exports.Agent365ExporterOptions = exports.Builder = exports.ObservabilityManager = void 0;
|
|
7
7
|
// Main SDK classes
|
|
8
8
|
var ObservabilityManager_1 = require("./ObservabilityManager");
|
|
9
9
|
Object.defineProperty(exports, "ObservabilityManager", { enumerable: true, get: function () { return ObservabilityManager_1.ObservabilityManager; } });
|
|
@@ -22,6 +22,10 @@ Object.defineProperty(exports, "BaggageScope", { enumerable: true, get: function
|
|
|
22
22
|
var token_context_1 = require("./tracing/context/token-context");
|
|
23
23
|
Object.defineProperty(exports, "runWithExportToken", { enumerable: true, get: function () { return token_context_1.runWithExportToken; } });
|
|
24
24
|
Object.defineProperty(exports, "getExportToken", { enumerable: true, get: function () { return token_context_1.getExportToken; } });
|
|
25
|
+
// Parent span context utilities
|
|
26
|
+
var parent_span_context_1 = require("./tracing/context/parent-span-context");
|
|
27
|
+
Object.defineProperty(exports, "runWithParentSpanRef", { enumerable: true, get: function () { return parent_span_context_1.runWithParentSpanRef; } });
|
|
28
|
+
Object.defineProperty(exports, "createContextWithParentSpanRef", { enumerable: true, get: function () { return parent_span_context_1.createContextWithParentSpanRef; } });
|
|
25
29
|
// Contracts and interfaces
|
|
26
30
|
var contracts_1 = require("./tracing/contracts");
|
|
27
31
|
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;AAE/B,kBAAkB;AAClB,sEAAmF;AAA1E,gHAAA,cAAc,OAAA;AAAE,8GAAA,YAAY,OAAA;AAErC,+BAA+B;AAC/B,iEAAqF;AAA5E,mHAAA,kBAAkB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAE3C,2BAA2B;AAC3B,iDAe6B;AAd3B,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AAWd,mHAAA,sBAAsB,OAAA;AAIxB,SAAS;AACT,0EAAyE;AAAhE,wHAAA,kBAAkB,OAAA;AAC3B,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,kEAAgE;AAAvD,gHAAA,cAAc,OAAA;AACvB,2CAAsD;AAA7C,iGAAA,MAAM,OAAA;AAAE,sGAAA,WAAW,OAAA"}
|
|
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;AAE/B,kBAAkB;AAClB,sEAAmF;AAA1E,gHAAA,cAAc,OAAA;AAAE,8GAAA,YAAY,OAAA;AAErC,+BAA+B;AAC/B,iEAAqF;AAA5E,mHAAA,kBAAkB,OAAA;AAAE,+GAAA,cAAc,OAAA;AAE3C,gCAAgC;AAChC,6EAA4H;AAApG,2HAAA,oBAAoB,OAAA;AAAE,qIAAA,8BAA8B,OAAA;AAE5E,2BAA2B;AAC3B,iDAe6B;AAd3B,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AAWd,mHAAA,sBAAsB,OAAA;AAIxB,SAAS;AACT,0EAAyE;AAAhE,wHAAA,kBAAkB,OAAA;AAC3B,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,kEAAgE;AAAvD,gHAAA,cAAc,OAAA;AACvB,2CAAsD;AAA7C,iGAAA,MAAM,OAAA;AAAE,sGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Context, TraceFlags } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* Reference to a parent span for explicit parent-child linking across async boundaries.
|
|
4
|
+
* Used when automatic context propagation fails (e.g., WebSocket callbacks, external event handlers).
|
|
5
|
+
*/
|
|
6
|
+
export interface ParentSpanRef {
|
|
7
|
+
/**
|
|
8
|
+
* Trace ID (32-character hex string)
|
|
9
|
+
*/
|
|
10
|
+
traceId: string;
|
|
11
|
+
/**
|
|
12
|
+
* Span ID (16-character hex string)
|
|
13
|
+
*/
|
|
14
|
+
spanId: string;
|
|
15
|
+
/** * Optional trace flags
|
|
16
|
+
*/
|
|
17
|
+
traceFlags?: TraceFlags;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new Context with an explicit parent span reference.
|
|
21
|
+
* This allows child spans to be correctly parented even when async context is broken.
|
|
22
|
+
*
|
|
23
|
+
* @param base The base context to extend (typically context.active())
|
|
24
|
+
* @param parent The parent span reference containing traceId and spanId
|
|
25
|
+
* @returns A new Context with the parent span set
|
|
26
|
+
*/
|
|
27
|
+
export declare function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context;
|
|
28
|
+
/**
|
|
29
|
+
* Runs a callback function within a context that has an explicit parent span reference.
|
|
30
|
+
* This is useful for creating child spans in async callbacks where context propagation is broken.
|
|
31
|
+
*
|
|
32
|
+
* @param parent The parent span reference
|
|
33
|
+
* @param callback The function to execute with the parent context
|
|
34
|
+
* @returns The result of the callback
|
|
35
|
+
*/
|
|
36
|
+
export declare function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T;
|
|
37
|
+
//# sourceMappingURL=parent-span-context.d.ts.map
|
|
@@ -0,0 +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;AAGtF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;OACG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAUD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CA8B5F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAKnF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.createContextWithParentSpanRef = createContextWithParentSpanRef;
|
|
9
|
+
exports.runWithParentSpanRef = runWithParentSpanRef;
|
|
10
|
+
const api_1 = require("@opentelemetry/api");
|
|
11
|
+
const logging_1 = __importDefault(require("../../utils/logging"));
|
|
12
|
+
function isValidTraceId(traceId) {
|
|
13
|
+
return /^[0-9a-f]{32}$/i.test(traceId) && traceId !== '00000000000000000000000000000000';
|
|
14
|
+
}
|
|
15
|
+
function isValidSpanId(spanId) {
|
|
16
|
+
return /^[0-9a-f]{16}$/i.test(spanId) && spanId !== '0000000000000000';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new Context with an explicit parent span reference.
|
|
20
|
+
* This allows child spans to be correctly parented even when async context is broken.
|
|
21
|
+
*
|
|
22
|
+
* @param base The base context to extend (typically context.active())
|
|
23
|
+
* @param parent The parent span reference containing traceId and spanId
|
|
24
|
+
* @returns A new Context with the parent span set
|
|
25
|
+
*/
|
|
26
|
+
function createContextWithParentSpanRef(base, parent) {
|
|
27
|
+
logging_1.default.info(`[ParentSpanContext] Creating context with parent span: traceId=${parent.traceId}, spanId=${parent.spanId}`);
|
|
28
|
+
if (!isValidTraceId(parent.traceId) || !isValidSpanId(parent.spanId)) {
|
|
29
|
+
logging_1.default.warn(`[ParentSpanContext] Invalid parent span reference; returning base context. traceId=${parent.traceId}, spanId=${parent.spanId}`);
|
|
30
|
+
return base;
|
|
31
|
+
}
|
|
32
|
+
// If the base context already has an active span for the same trace, reuse its traceFlags.
|
|
33
|
+
// Otherwise, default to NONE to avoid up-sampling.
|
|
34
|
+
const active = api_1.trace.getSpan(base)?.spanContext();
|
|
35
|
+
const derivedFlags = active?.traceId === parent.traceId ? active.traceFlags : undefined;
|
|
36
|
+
const traceFlags = derivedFlags ?? api_1.TraceFlags.NONE;
|
|
37
|
+
// Create a SpanContext from the parent reference
|
|
38
|
+
const parentSpanContext = {
|
|
39
|
+
traceId: parent.traceId,
|
|
40
|
+
spanId: parent.spanId,
|
|
41
|
+
traceFlags,
|
|
42
|
+
};
|
|
43
|
+
// Create a non-recording span with the parent context
|
|
44
|
+
const parentSpan = api_1.trace.wrapSpanContext(parentSpanContext);
|
|
45
|
+
// Set this span in the base context
|
|
46
|
+
const contextWithParent = api_1.trace.setSpan(base, parentSpan);
|
|
47
|
+
return contextWithParent;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Runs a callback function within a context that has an explicit parent span reference.
|
|
51
|
+
* This is useful for creating child spans in async callbacks where context propagation is broken.
|
|
52
|
+
*
|
|
53
|
+
* @param parent The parent span reference
|
|
54
|
+
* @param callback The function to execute with the parent context
|
|
55
|
+
* @returns The result of the callback
|
|
56
|
+
*/
|
|
57
|
+
function runWithParentSpanRef(parent, callback) {
|
|
58
|
+
const base = api_1.context.active();
|
|
59
|
+
const contextWithParent = createContextWithParentSpanRef(base, parent);
|
|
60
|
+
logging_1.default.info('[ParentSpanContext] Running callback with parent span context.');
|
|
61
|
+
return api_1.context.with(contextWithParent, callback);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=parent-span-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-span-context.js","sourceRoot":"","sources":["../../../../src/tracing/context/parent-span-context.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;AAyClC,wEA8BC;AAUD,oDAKC;AApFD,4CAAsF;AACtF,kEAAyC;AAsBzC,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,2FAA2F;IAC3F,mDAAmD;IACnD,MAAM,MAAM,GAAG,WAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,UAAU,GAAG,YAAY,IAAI,gBAAU,CAAC,IAAI,CAAC;IAEnD,iDAAiD;IACjD,MAAM,iBAAiB,GAAgB;QACrC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;KACX,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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
2
|
import { ToolCallDetails, AgentDetails, TenantDetails, SourceMetadata } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Provides OpenTelemetry tracing scope for AI tool execution operations.
|
|
5
6
|
*/
|
|
@@ -11,9 +12,10 @@ export declare class ExecuteToolScope extends OpenTelemetryScope {
|
|
|
11
12
|
* @param tenantDetails The tenant details
|
|
12
13
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
13
14
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
15
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
14
16
|
* @returns A new ExecuteToolScope instance.
|
|
15
17
|
*/
|
|
16
|
-
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description"
|
|
18
|
+
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">, parentSpanRef?: ParentSpanRef): ExecuteToolScope;
|
|
17
19
|
private constructor();
|
|
18
20
|
/**
|
|
19
21
|
* Records response information for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAKA,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,gCAAgC,CAAC;AAG/D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;;OASG;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,GAC5B,gBAAgB;IAInB,OAAO;IAyCP;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9C"}
|
|
@@ -18,13 +18,14 @@ class ExecuteToolScope extends OpenTelemetryScope_1.OpenTelemetryScope {
|
|
|
18
18
|
* @param tenantDetails The tenant details
|
|
19
19
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
20
20
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
21
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
21
22
|
* @returns A new ExecuteToolScope instance.
|
|
22
23
|
*/
|
|
23
|
-
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
24
|
-
return new ExecuteToolScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata);
|
|
24
|
+
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
25
|
+
return new ExecuteToolScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef);
|
|
25
26
|
}
|
|
26
|
-
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
27
|
-
super(api_1.SpanKind.INTERNAL, constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails);
|
|
27
|
+
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
28
|
+
super(api_1.SpanKind.INTERNAL, constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${constants_1.OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails, parentSpanRef);
|
|
28
29
|
// Destructure the details object to match C# pattern
|
|
29
30
|
const { toolName, arguments: args, toolCallId, description, toolType, endpoint } = details;
|
|
30
31
|
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,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF,4CAA8C;AAC9C,6DAA0D;
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF,4CAA8C;AAC9C,6DAA0D;AAG1D,4CAAsD;AAEtD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,uCAAkB;IACtD;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CACjB,OAAwB,EACxB,YAA0B,EAC1B,aAA4B,EAC5B,cAAuB,EACvB,cAA6D,EAC7D,aAA6B;QAE7B,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACnH,CAAC;IAED,YACE,OAAwB,EACxB,YAA0B,EAC1B,aAA4B,EAC5B,cAAuB,EACvB,cAA6D,EAC7D,aAA6B;QAE7B,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,CACd,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;AAtED,4CAsEC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
2
|
import { InferenceDetails, AgentDetails, TenantDetails, SourceMetadata } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Provides OpenTelemetry tracing scope for generative AI inference operations.
|
|
5
6
|
*/
|
|
@@ -11,9 +12,10 @@ export declare class InferenceScope extends OpenTelemetryScope {
|
|
|
11
12
|
* @param tenantDetails The tenant details
|
|
12
13
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
13
14
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
15
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
14
16
|
* @returns A new InferenceScope instance
|
|
15
17
|
*/
|
|
16
|
-
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description"
|
|
18
|
+
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">, parentSpanRef?: ParentSpanRef): InferenceScope;
|
|
17
19
|
private constructor();
|
|
18
20
|
/**
|
|
19
21
|
* 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":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAKA,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,gCAAgC,CAAC;AAE/D;;GAEG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;OASG;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,GAC5B,cAAc;IAIjB,OAAO;IA8BP;;;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"}
|
|
@@ -18,13 +18,14 @@ class InferenceScope extends OpenTelemetryScope_1.OpenTelemetryScope {
|
|
|
18
18
|
* @param tenantDetails The tenant details
|
|
19
19
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
20
20
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
21
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
21
22
|
* @returns A new InferenceScope instance
|
|
22
23
|
*/
|
|
23
|
-
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
24
|
-
return new InferenceScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata);
|
|
24
|
+
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
25
|
+
return new InferenceScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef);
|
|
25
26
|
}
|
|
26
|
-
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
27
|
-
super(api_1.SpanKind.CLIENT, details.operationName.toString(), `${details.operationName} ${details.model}`, agentDetails, tenantDetails);
|
|
27
|
+
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
28
|
+
super(api_1.SpanKind.CLIENT, details.operationName.toString(), `${details.operationName} ${details.model}`, agentDetails, tenantDetails, parentSpanRef);
|
|
28
29
|
// Set core inference information matching C# implementation
|
|
29
30
|
this.setTagMaybe(constants_1.OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY, details.operationName.toString());
|
|
30
31
|
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,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF,4CAA8C;AAC9C,6DAA0D;AAC1D,4CAAsD;
|
|
1
|
+
{"version":3,"file":"InferenceScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
2
|
import { InvokeAgentDetails, TenantDetails, CallerDetails, AgentDetails } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Provides OpenTelemetry tracing scope for AI agent invocation operations.
|
|
5
6
|
*/
|
|
@@ -10,9 +11,10 @@ export declare class InvokeAgentScope extends OpenTelemetryScope {
|
|
|
10
11
|
* @param tenantDetails The tenant details.
|
|
11
12
|
* @param callerAgentDetails The details of the caller agent.
|
|
12
13
|
* @param callerDetails The details of the non-agentic caller.
|
|
14
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
13
15
|
* @returns A new InvokeAgentScope instance.
|
|
14
16
|
*/
|
|
15
|
-
static start(invokeAgentDetails: InvokeAgentDetails, tenantDetails: TenantDetails, callerAgentDetails?: AgentDetails, callerDetails?: CallerDetails): InvokeAgentScope;
|
|
17
|
+
static start(invokeAgentDetails: InvokeAgentDetails, tenantDetails: TenantDetails, callerAgentDetails?: AgentDetails, callerDetails?: CallerDetails, parentSpanRef?: ParentSpanRef): InvokeAgentScope;
|
|
16
18
|
private constructor();
|
|
17
19
|
/**
|
|
18
20
|
* Records response information for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeAgentScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeAgentScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAKA,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,gCAAgC,CAAC;AAG/D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;OAQG;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,GAC5B,gBAAgB;IAInB,OAAO;IAmEP;;;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"}
|
|
@@ -17,15 +17,16 @@ class InvokeAgentScope extends OpenTelemetryScope_1.OpenTelemetryScope {
|
|
|
17
17
|
* @param tenantDetails The tenant details.
|
|
18
18
|
* @param callerAgentDetails The details of the caller agent.
|
|
19
19
|
* @param callerDetails The details of the non-agentic caller.
|
|
20
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
20
21
|
* @returns A new InvokeAgentScope instance.
|
|
21
22
|
*/
|
|
22
|
-
static start(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails) {
|
|
23
|
-
return new InvokeAgentScope(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails);
|
|
23
|
+
static start(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentSpanRef) {
|
|
24
|
+
return new InvokeAgentScope(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentSpanRef);
|
|
24
25
|
}
|
|
25
|
-
constructor(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails) {
|
|
26
|
+
constructor(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentSpanRef) {
|
|
26
27
|
super(api_1.SpanKind.CLIENT, constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails.agentName
|
|
27
28
|
? `${constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME} ${invokeAgentDetails.agentName}`
|
|
28
|
-
: constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails, tenantDetails);
|
|
29
|
+
: constants_1.OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails, tenantDetails, parentSpanRef);
|
|
29
30
|
// Set session ID and endpoint information
|
|
30
31
|
this.setTagMaybe(constants_1.OpenTelemetryConstants.SESSION_ID_KEY, invokeAgentDetails.sessionId);
|
|
31
32
|
if (invokeAgentDetails.endpoint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeAgentScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF,4CAA8C;AAC9C,6DAA0D;
|
|
1
|
+
{"version":3,"file":"InvokeAgentScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { SpanKind, Span, AttributeValue } from '@opentelemetry/api';
|
|
1
|
+
import { SpanKind, Span, AttributeValue, SpanContext } from '@opentelemetry/api';
|
|
2
2
|
import { AgentDetails, TenantDetails } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Base class for OpenTelemetry tracing scopes
|
|
5
6
|
*/
|
|
@@ -17,12 +18,19 @@ export declare abstract class OpenTelemetryScope implements Disposable {
|
|
|
17
18
|
* @param spanName The name of the span for display purposes
|
|
18
19
|
* @param agentDetails Optional agent details
|
|
19
20
|
* @param tenantDetails Optional tenant details
|
|
21
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing
|
|
20
22
|
*/
|
|
21
|
-
protected constructor(kind: SpanKind, operationName: string, spanName: string, agentDetails?: AgentDetails, tenantDetails?: TenantDetails);
|
|
23
|
+
protected constructor(kind: SpanKind, operationName: string, spanName: string, agentDetails?: AgentDetails, tenantDetails?: TenantDetails, parentSpanRef?: ParentSpanRef);
|
|
22
24
|
/**
|
|
23
25
|
* Makes this span active for the duration of the async callback execution
|
|
24
26
|
*/
|
|
25
27
|
withActiveSpanAsync<T>(callback: () => Promise<T>): Promise<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Gets the span context for this scope.
|
|
30
|
+
* This can be used to create a ParentSpanRef for explicit parent-child linking across async boundaries.
|
|
31
|
+
* @returns The SpanContext containing traceId and spanId
|
|
32
|
+
*/
|
|
33
|
+
getSpanContext(): SpanContext;
|
|
26
34
|
/**
|
|
27
35
|
* Records an error that occurred during the operation
|
|
28
36
|
* @param error The error that occurred
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenTelemetryScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,IAAI,EAAuC,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenTelemetryScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,IAAI,EAAuC,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE7H,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAkC,MAAM,gCAAgC,CAAC;AAG/F;;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,SAAS,CAAS;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;OAQG;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;IA4C/B;;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;;OAEG;IACH,OAAO,CAAC,GAAG;IAsBX;;OAEG;IACI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAO/B;;OAEG;IACI,OAAO,IAAI,IAAI;CAIvB"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.OpenTelemetryScope = void 0;
|
|
10
10
|
const api_1 = require("@opentelemetry/api");
|
|
11
11
|
const constants_1 = require("../constants");
|
|
12
|
+
const parent_span_context_1 = require("../context/parent-span-context");
|
|
12
13
|
const logging_1 = __importDefault(require("../../utils/logging"));
|
|
13
14
|
/**
|
|
14
15
|
* Base class for OpenTelemetry tracing scopes
|
|
@@ -21,10 +22,16 @@ 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
|
|
25
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing
|
|
24
26
|
*/
|
|
25
|
-
constructor(kind, operationName, spanName, agentDetails, tenantDetails) {
|
|
27
|
+
constructor(kind, operationName, spanName, agentDetails, tenantDetails, parentSpanRef) {
|
|
26
28
|
this.hasEnded = false;
|
|
27
|
-
|
|
29
|
+
// Determine the context to use for span creation
|
|
30
|
+
let currentContext = api_1.context.active();
|
|
31
|
+
if (parentSpanRef) {
|
|
32
|
+
currentContext = (0, parent_span_context_1.createContextWithParentSpanRef)(currentContext, parentSpanRef);
|
|
33
|
+
logging_1.default.info(`[A365Observability] Using explicit parent span: traceId=${parentSpanRef.traceId}, spanId=${parentSpanRef.spanId}`);
|
|
34
|
+
}
|
|
28
35
|
logging_1.default.info(`[A365Observability] Starting span: ${spanName}, operation: ${operationName} for tenantId: ${tenantDetails?.tenantId || 'unknown'}, agentId: ${agentDetails?.agentId || 'unknown'}`);
|
|
29
36
|
// Start span with current context to establish parent-child relationship
|
|
30
37
|
this.span = OpenTelemetryScope.tracer.startSpan(spanName, {
|
|
@@ -61,6 +68,14 @@ class OpenTelemetryScope {
|
|
|
61
68
|
const newContext = api_1.trace.setSpan(api_1.context.active(), this.span);
|
|
62
69
|
return api_1.context.with(newContext, callback);
|
|
63
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Gets the span context for this scope.
|
|
73
|
+
* This can be used to create a ParentSpanRef for explicit parent-child linking across async boundaries.
|
|
74
|
+
* @returns The SpanContext containing traceId and spanId
|
|
75
|
+
*/
|
|
76
|
+
getSpanContext() {
|
|
77
|
+
return this.span.spanContext();
|
|
78
|
+
}
|
|
64
79
|
/**
|
|
65
80
|
* Records an error that occurred during the operation
|
|
66
81
|
* @param error The error that occurred
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenTelemetryScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;;;;AAEjF,
|
|
1
|
+
{"version":3,"file":"OpenTelemetryScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { Agent365ExporterOptions } from './tracing/exporter/Agent365ExporterOpti
|
|
|
4
4
|
export { OpenTelemetryConstants } from './tracing/constants';
|
|
5
5
|
export { BaggageBuilder, BaggageScope } from './tracing/middleware/BaggageBuilder';
|
|
6
6
|
export { runWithExportToken, getExportToken } from './tracing/context/token-context';
|
|
7
|
+
export { ParentSpanRef, runWithParentSpanRef, createContextWithParentSpanRef } from './tracing/context/parent-span-context';
|
|
7
8
|
export { ExecutionType, InvocationRole, SourceMetadata, AgentRequest, AgentDetails, TenantDetails, ToolCallDetails, InvokeAgentDetails, CallerDetails, EnhancedAgentDetails, ServiceEndpoint, InferenceDetails, InferenceOperationType, InferenceResponse } from './tracing/contracts';
|
|
8
9
|
export { OpenTelemetryScope } from './tracing/scopes/OpenTelemetryScope';
|
|
9
10
|
export { ExecuteToolScope } from './tracing/scopes/ExecuteToolScope';
|
package/dist/esm/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;AAG7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGrF,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,EAClB,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,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,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;AAG7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGrF,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,EAClB,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,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -11,6 +11,8 @@ export { OpenTelemetryConstants } from './tracing/constants';
|
|
|
11
11
|
export { BaggageBuilder, BaggageScope } from './tracing/middleware/BaggageBuilder';
|
|
12
12
|
// Per-request export utilities
|
|
13
13
|
export { runWithExportToken, getExportToken } from './tracing/context/token-context';
|
|
14
|
+
// Parent span context utilities
|
|
15
|
+
export { runWithParentSpanRef, createContextWithParentSpanRef } from './tracing/context/parent-span-context';
|
|
14
16
|
// Contracts and interfaces
|
|
15
17
|
export { ExecutionType, InvocationRole, InferenceOperationType } from './tracing/contracts';
|
|
16
18
|
// Scopes
|
package/dist/esm/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,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,oBAAoB;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnF,+BAA+B;AAC/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAErF,2BAA2B;AAC3B,OAAO,EACL,aAAa,EACb,cAAc,EAWd,sBAAsB,EAEvB,MAAM,qBAAqB,CAAC;AAE7B,SAAS;AACT,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,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,oBAAoB;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnF,+BAA+B;AAC/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAErF,gCAAgC;AAChC,OAAO,EAAiB,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAE5H,2BAA2B;AAC3B,OAAO,EACL,aAAa,EACb,cAAc,EAWd,sBAAsB,EAEvB,MAAM,qBAAqB,CAAC;AAE7B,SAAS;AACT,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,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Context, TraceFlags } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* Reference to a parent span for explicit parent-child linking across async boundaries.
|
|
4
|
+
* Used when automatic context propagation fails (e.g., WebSocket callbacks, external event handlers).
|
|
5
|
+
*/
|
|
6
|
+
export interface ParentSpanRef {
|
|
7
|
+
/**
|
|
8
|
+
* Trace ID (32-character hex string)
|
|
9
|
+
*/
|
|
10
|
+
traceId: string;
|
|
11
|
+
/**
|
|
12
|
+
* Span ID (16-character hex string)
|
|
13
|
+
*/
|
|
14
|
+
spanId: string;
|
|
15
|
+
/** * Optional trace flags
|
|
16
|
+
*/
|
|
17
|
+
traceFlags?: TraceFlags;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new Context with an explicit parent span reference.
|
|
21
|
+
* This allows child spans to be correctly parented even when async context is broken.
|
|
22
|
+
*
|
|
23
|
+
* @param base The base context to extend (typically context.active())
|
|
24
|
+
* @param parent The parent span reference containing traceId and spanId
|
|
25
|
+
* @returns A new Context with the parent span set
|
|
26
|
+
*/
|
|
27
|
+
export declare function createContextWithParentSpanRef(base: Context, parent: ParentSpanRef): Context;
|
|
28
|
+
/**
|
|
29
|
+
* Runs a callback function within a context that has an explicit parent span reference.
|
|
30
|
+
* This is useful for creating child spans in async callbacks where context propagation is broken.
|
|
31
|
+
*
|
|
32
|
+
* @param parent The parent span reference
|
|
33
|
+
* @param callback The function to execute with the parent context
|
|
34
|
+
* @returns The result of the callback
|
|
35
|
+
*/
|
|
36
|
+
export declare function runWithParentSpanRef<T>(parent: ParentSpanRef, callback: () => T): T;
|
|
37
|
+
//# sourceMappingURL=parent-span-context.d.ts.map
|
|
@@ -0,0 +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;AAGtF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;OACG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAUD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CA8B5F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAKnF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { context, trace, TraceFlags } from '@opentelemetry/api';
|
|
4
|
+
import logger from '../../utils/logging';
|
|
5
|
+
function isValidTraceId(traceId) {
|
|
6
|
+
return /^[0-9a-f]{32}$/i.test(traceId) && traceId !== '00000000000000000000000000000000';
|
|
7
|
+
}
|
|
8
|
+
function isValidSpanId(spanId) {
|
|
9
|
+
return /^[0-9a-f]{16}$/i.test(spanId) && spanId !== '0000000000000000';
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new Context with an explicit parent span reference.
|
|
13
|
+
* This allows child spans to be correctly parented even when async context is broken.
|
|
14
|
+
*
|
|
15
|
+
* @param base The base context to extend (typically context.active())
|
|
16
|
+
* @param parent The parent span reference containing traceId and spanId
|
|
17
|
+
* @returns A new Context with the parent span set
|
|
18
|
+
*/
|
|
19
|
+
export function createContextWithParentSpanRef(base, parent) {
|
|
20
|
+
logger.info(`[ParentSpanContext] Creating context with parent span: traceId=${parent.traceId}, spanId=${parent.spanId}`);
|
|
21
|
+
if (!isValidTraceId(parent.traceId) || !isValidSpanId(parent.spanId)) {
|
|
22
|
+
logger.warn(`[ParentSpanContext] Invalid parent span reference; returning base context. traceId=${parent.traceId}, spanId=${parent.spanId}`);
|
|
23
|
+
return base;
|
|
24
|
+
}
|
|
25
|
+
// If the base context already has an active span for the same trace, reuse its traceFlags.
|
|
26
|
+
// Otherwise, default to NONE to avoid up-sampling.
|
|
27
|
+
const active = trace.getSpan(base)?.spanContext();
|
|
28
|
+
const derivedFlags = active?.traceId === parent.traceId ? active.traceFlags : undefined;
|
|
29
|
+
const traceFlags = derivedFlags ?? TraceFlags.NONE;
|
|
30
|
+
// Create a SpanContext from the parent reference
|
|
31
|
+
const parentSpanContext = {
|
|
32
|
+
traceId: parent.traceId,
|
|
33
|
+
spanId: parent.spanId,
|
|
34
|
+
traceFlags,
|
|
35
|
+
};
|
|
36
|
+
// Create a non-recording span with the parent context
|
|
37
|
+
const parentSpan = trace.wrapSpanContext(parentSpanContext);
|
|
38
|
+
// Set this span in the base context
|
|
39
|
+
const contextWithParent = trace.setSpan(base, parentSpan);
|
|
40
|
+
return contextWithParent;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Runs a callback function within a context that has an explicit parent span reference.
|
|
44
|
+
* This is useful for creating child spans in async callbacks where context propagation is broken.
|
|
45
|
+
*
|
|
46
|
+
* @param parent The parent span reference
|
|
47
|
+
* @param callback The function to execute with the parent context
|
|
48
|
+
* @returns The result of the callback
|
|
49
|
+
*/
|
|
50
|
+
export function runWithParentSpanRef(parent, callback) {
|
|
51
|
+
const base = context.active();
|
|
52
|
+
const contextWithParent = createContextWithParentSpanRef(base, parent);
|
|
53
|
+
logger.info('[ParentSpanContext] Running callback with parent span context.');
|
|
54
|
+
return context.with(contextWithParent, callback);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=parent-span-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-span-context.js","sourceRoot":"","sources":["../../../../src/tracing/context/parent-span-context.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAwB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAsBzC,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,MAAM,UAAU,8BAA8B,CAAC,IAAa,EAAE,MAAqB;IACjF,MAAM,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,MAAM,CAAC,IAAI,CACT,sFAAsF,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,MAAM,EAAE,CAChI,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2FAA2F;IAC3F,mDAAmD;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,UAAU,GAAG,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC;IAEnD,iDAAiD;IACjD,MAAM,iBAAiB,GAAgB;QACrC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;KACX,CAAC;IAEF,sDAAsD;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAI,MAAqB,EAAE,QAAiB;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
2
|
import { ToolCallDetails, AgentDetails, TenantDetails, SourceMetadata } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Provides OpenTelemetry tracing scope for AI tool execution operations.
|
|
5
6
|
*/
|
|
@@ -11,9 +12,10 @@ export declare class ExecuteToolScope extends OpenTelemetryScope {
|
|
|
11
12
|
* @param tenantDetails The tenant details
|
|
12
13
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
13
14
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
15
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
14
16
|
* @returns A new ExecuteToolScope instance.
|
|
15
17
|
*/
|
|
16
|
-
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description"
|
|
18
|
+
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">, parentSpanRef?: ParentSpanRef): ExecuteToolScope;
|
|
17
19
|
private constructor();
|
|
18
20
|
/**
|
|
19
21
|
* Records response information for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAKA,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,gCAAgC,CAAC;AAG/D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;;OASG;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,GAC5B,gBAAgB;IAInB,OAAO;IAyCP;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9C"}
|
|
@@ -15,13 +15,14 @@ export class ExecuteToolScope extends OpenTelemetryScope {
|
|
|
15
15
|
* @param tenantDetails The tenant details
|
|
16
16
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
17
17
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
18
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
18
19
|
* @returns A new ExecuteToolScope instance.
|
|
19
20
|
*/
|
|
20
|
-
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
21
|
-
return new ExecuteToolScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata);
|
|
21
|
+
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
22
|
+
return new ExecuteToolScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef);
|
|
22
23
|
}
|
|
23
|
-
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
24
|
-
super(SpanKind.INTERNAL, OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails);
|
|
24
|
+
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
25
|
+
super(SpanKind.INTERNAL, OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails, parentSpanRef);
|
|
25
26
|
// Destructure the details object to match C# pattern
|
|
26
27
|
const { toolName, arguments: args, toolCallId, description, toolType, endpoint } = details;
|
|
27
28
|
this.setTagMaybe(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,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CACjB,OAAwB,EACxB,YAA0B,EAC1B,aAA4B,EAC5B,cAAuB,EACvB,cAA6D,EAC7D,aAA6B;QAE7B,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACnH,CAAC;IAED,YACE,OAAwB,EACxB,YAA0B,EAC1B,aAA4B,EAC5B,cAAuB,EACvB,cAA6D,EAC7D,aAA6B;QAE7B,KAAK,CACH,QAAQ,CAAC,QAAQ,EACjB,sBAAsB,CAAC,2BAA2B,EAClD,GAAG,sBAAsB,CAAC,2BAA2B,IAAI,OAAO,CAAC,QAAQ,EAAE,EAC3E,YAAY,EACZ,aAAa,EACb,aAAa,CACd,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,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAChG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAG9G,uCAAuC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,sBAAsB,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,sBAAsB,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,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
2
|
import { InferenceDetails, AgentDetails, TenantDetails, SourceMetadata } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Provides OpenTelemetry tracing scope for generative AI inference operations.
|
|
5
6
|
*/
|
|
@@ -11,9 +12,10 @@ export declare class InferenceScope extends OpenTelemetryScope {
|
|
|
11
12
|
* @param tenantDetails The tenant details
|
|
12
13
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
13
14
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
15
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
14
16
|
* @returns A new InferenceScope instance
|
|
15
17
|
*/
|
|
16
|
-
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description"
|
|
18
|
+
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails, conversationId?: string, sourceMetadata?: Pick<SourceMetadata, "name" | "description">, parentSpanRef?: ParentSpanRef): InferenceScope;
|
|
17
19
|
private constructor();
|
|
18
20
|
/**
|
|
19
21
|
* 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":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAKA,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,gCAAgC,CAAC;AAE/D;;GAEG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;OASG;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,GAC5B,cAAc;IAIjB,OAAO;IA8BP;;;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"}
|
|
@@ -15,13 +15,14 @@ export class InferenceScope extends OpenTelemetryScope {
|
|
|
15
15
|
* @param tenantDetails The tenant details
|
|
16
16
|
* @param conversationId Optional conversation id to tag on the span (`gen_ai.conversation.id`).
|
|
17
17
|
* @param sourceMetadata Optional source metadata; only `name` (channel name) and `description` (channel link/URL) are used for tagging.
|
|
18
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
18
19
|
* @returns A new InferenceScope instance
|
|
19
20
|
*/
|
|
20
|
-
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
21
|
-
return new InferenceScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata);
|
|
21
|
+
static start(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
22
|
+
return new InferenceScope(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef);
|
|
22
23
|
}
|
|
23
|
-
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata) {
|
|
24
|
-
super(SpanKind.CLIENT, details.operationName.toString(), `${details.operationName} ${details.model}`, agentDetails, tenantDetails);
|
|
24
|
+
constructor(details, agentDetails, tenantDetails, conversationId, sourceMetadata, parentSpanRef) {
|
|
25
|
+
super(SpanKind.CLIENT, details.operationName.toString(), `${details.operationName} ${details.model}`, agentDetails, tenantDetails, parentSpanRef);
|
|
25
26
|
// Set core inference information matching C# implementation
|
|
26
27
|
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY, details.operationName.toString());
|
|
27
28
|
this.setTagMaybe(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,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InferenceScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
2
|
import { InvokeAgentDetails, TenantDetails, CallerDetails, AgentDetails } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Provides OpenTelemetry tracing scope for AI agent invocation operations.
|
|
5
6
|
*/
|
|
@@ -10,9 +11,10 @@ export declare class InvokeAgentScope extends OpenTelemetryScope {
|
|
|
10
11
|
* @param tenantDetails The tenant details.
|
|
11
12
|
* @param callerAgentDetails The details of the caller agent.
|
|
12
13
|
* @param callerDetails The details of the non-agentic caller.
|
|
14
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
13
15
|
* @returns A new InvokeAgentScope instance.
|
|
14
16
|
*/
|
|
15
|
-
static start(invokeAgentDetails: InvokeAgentDetails, tenantDetails: TenantDetails, callerAgentDetails?: AgentDetails, callerDetails?: CallerDetails): InvokeAgentScope;
|
|
17
|
+
static start(invokeAgentDetails: InvokeAgentDetails, tenantDetails: TenantDetails, callerAgentDetails?: AgentDetails, callerDetails?: CallerDetails, parentSpanRef?: ParentSpanRef): InvokeAgentScope;
|
|
16
18
|
private constructor();
|
|
17
19
|
/**
|
|
18
20
|
* Records response information for telemetry tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeAgentScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeAgentScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAKA,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,gCAAgC,CAAC;AAG/D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;;;OAQG;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,GAC5B,gBAAgB;IAInB,OAAO;IAmEP;;;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"}
|
|
@@ -14,15 +14,16 @@ export class InvokeAgentScope extends OpenTelemetryScope {
|
|
|
14
14
|
* @param tenantDetails The tenant details.
|
|
15
15
|
* @param callerAgentDetails The details of the caller agent.
|
|
16
16
|
* @param callerDetails The details of the non-agentic caller.
|
|
17
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing.
|
|
17
18
|
* @returns A new InvokeAgentScope instance.
|
|
18
19
|
*/
|
|
19
|
-
static start(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails) {
|
|
20
|
-
return new InvokeAgentScope(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails);
|
|
20
|
+
static start(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentSpanRef) {
|
|
21
|
+
return new InvokeAgentScope(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentSpanRef);
|
|
21
22
|
}
|
|
22
|
-
constructor(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails) {
|
|
23
|
+
constructor(invokeAgentDetails, tenantDetails, callerAgentDetails, callerDetails, parentSpanRef) {
|
|
23
24
|
super(SpanKind.CLIENT, OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails.agentName
|
|
24
25
|
? `${OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME} ${invokeAgentDetails.agentName}`
|
|
25
|
-
: OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails, tenantDetails);
|
|
26
|
+
: OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME, invokeAgentDetails, tenantDetails, parentSpanRef);
|
|
26
27
|
// Set session ID and endpoint information
|
|
27
28
|
this.setTagMaybe(OpenTelemetryConstants.SESSION_ID_KEY, invokeAgentDetails.sessionId);
|
|
28
29
|
if (invokeAgentDetails.endpoint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeAgentScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeAgentScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/InvokeAgentScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { SpanKind, Span, AttributeValue } from '@opentelemetry/api';
|
|
1
|
+
import { SpanKind, Span, AttributeValue, SpanContext } from '@opentelemetry/api';
|
|
2
2
|
import { AgentDetails, TenantDetails } from '../contracts';
|
|
3
|
+
import { ParentSpanRef } from '../context/parent-span-context';
|
|
3
4
|
/**
|
|
4
5
|
* Base class for OpenTelemetry tracing scopes
|
|
5
6
|
*/
|
|
@@ -17,12 +18,19 @@ export declare abstract class OpenTelemetryScope implements Disposable {
|
|
|
17
18
|
* @param spanName The name of the span for display purposes
|
|
18
19
|
* @param agentDetails Optional agent details
|
|
19
20
|
* @param tenantDetails Optional tenant details
|
|
21
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing
|
|
20
22
|
*/
|
|
21
|
-
protected constructor(kind: SpanKind, operationName: string, spanName: string, agentDetails?: AgentDetails, tenantDetails?: TenantDetails);
|
|
23
|
+
protected constructor(kind: SpanKind, operationName: string, spanName: string, agentDetails?: AgentDetails, tenantDetails?: TenantDetails, parentSpanRef?: ParentSpanRef);
|
|
22
24
|
/**
|
|
23
25
|
* Makes this span active for the duration of the async callback execution
|
|
24
26
|
*/
|
|
25
27
|
withActiveSpanAsync<T>(callback: () => Promise<T>): Promise<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Gets the span context for this scope.
|
|
30
|
+
* This can be used to create a ParentSpanRef for explicit parent-child linking across async boundaries.
|
|
31
|
+
* @returns The SpanContext containing traceId and spanId
|
|
32
|
+
*/
|
|
33
|
+
getSpanContext(): SpanContext;
|
|
26
34
|
/**
|
|
27
35
|
* Records an error that occurred during the operation
|
|
28
36
|
* @param error The error that occurred
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenTelemetryScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,IAAI,EAAuC,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenTelemetryScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,IAAI,EAAuC,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE7H,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAkC,MAAM,gCAAgC,CAAC;AAG/F;;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,SAAS,CAAS;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;OAQG;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;IA4C/B;;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;;OAEG;IACH,OAAO,CAAC,GAAG;IAsBX;;OAEG;IACI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAO/B;;OAEG;IACI,OAAO,IAAI,IAAI;CAIvB"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// ------------------------------------------------------------------------------
|
|
4
4
|
import { trace, SpanStatusCode, context } from '@opentelemetry/api';
|
|
5
5
|
import { OpenTelemetryConstants } from '../constants';
|
|
6
|
+
import { createContextWithParentSpanRef } from '../context/parent-span-context';
|
|
6
7
|
import logger from '../../utils/logging';
|
|
7
8
|
/**
|
|
8
9
|
* Base class for OpenTelemetry tracing scopes
|
|
@@ -15,10 +16,16 @@ export class OpenTelemetryScope {
|
|
|
15
16
|
* @param spanName The name of the span for display purposes
|
|
16
17
|
* @param agentDetails Optional agent details
|
|
17
18
|
* @param tenantDetails Optional tenant details
|
|
19
|
+
* @param parentSpanRef Optional explicit parent span reference for cross-async-boundary tracing
|
|
18
20
|
*/
|
|
19
|
-
constructor(kind, operationName, spanName, agentDetails, tenantDetails) {
|
|
21
|
+
constructor(kind, operationName, spanName, agentDetails, tenantDetails, parentSpanRef) {
|
|
20
22
|
this.hasEnded = false;
|
|
21
|
-
|
|
23
|
+
// Determine the context to use for span creation
|
|
24
|
+
let currentContext = context.active();
|
|
25
|
+
if (parentSpanRef) {
|
|
26
|
+
currentContext = createContextWithParentSpanRef(currentContext, parentSpanRef);
|
|
27
|
+
logger.info(`[A365Observability] Using explicit parent span: traceId=${parentSpanRef.traceId}, spanId=${parentSpanRef.spanId}`);
|
|
28
|
+
}
|
|
22
29
|
logger.info(`[A365Observability] Starting span: ${spanName}, operation: ${operationName} for tenantId: ${tenantDetails?.tenantId || 'unknown'}, agentId: ${agentDetails?.agentId || 'unknown'}`);
|
|
23
30
|
// Start span with current context to establish parent-child relationship
|
|
24
31
|
this.span = OpenTelemetryScope.tracer.startSpan(spanName, {
|
|
@@ -55,6 +62,14 @@ export class OpenTelemetryScope {
|
|
|
55
62
|
const newContext = trace.setSpan(context.active(), this.span);
|
|
56
63
|
return context.with(newContext, callback);
|
|
57
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Gets the span context for this scope.
|
|
67
|
+
* This can be used to create a ParentSpanRef for explicit parent-child linking across async boundaries.
|
|
68
|
+
* @returns The SpanContext containing traceId and spanId
|
|
69
|
+
*/
|
|
70
|
+
getSpanContext() {
|
|
71
|
+
return this.span.spanContext();
|
|
72
|
+
}
|
|
58
73
|
/**
|
|
59
74
|
* Records an error that occurred during the operation
|
|
60
75
|
* @param error The error that occurred
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenTelemetryScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,KAAK,EAAkB,cAAc,EAAc,OAAO,
|
|
1
|
+
{"version":3,"file":"OpenTelemetryScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/OpenTelemetryScope.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/agents-a365-observability",
|
|
3
|
-
"version": "0.1.0-preview.
|
|
3
|
+
"version": "0.1.0-preview.93",
|
|
4
4
|
"description": "OpenTelemetry tracing and monitoring SDK for AI agents built with TypeScript/Node.js",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.32",
|
|
27
|
-
"@microsoft/agents-a365-runtime": "0.1.0-preview.
|
|
27
|
+
"@microsoft/agents-a365-runtime": "0.1.0-preview.93",
|
|
28
28
|
"@opentelemetry/api": "^1.9.0",
|
|
29
29
|
"@opentelemetry/exporter-trace-otlp-http": "^0.205.0",
|
|
30
30
|
"@opentelemetry/instrumentation": "^0.204.0",
|