@microsoft/opentelemetry 0.1.0-alpha.5 → 0.1.0-beta.1
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/README.md +125 -14
- package/dist/commonjs/a365/configuration/A365Configuration.d.ts +1 -11
- package/dist/commonjs/a365/configuration/A365Configuration.d.ts.map +1 -1
- package/dist/commonjs/a365/configuration/A365Configuration.js +2 -17
- package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +0 -31
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
- package/dist/commonjs/a365/configuration/index.d.ts +1 -1
- package/dist/commonjs/a365/configuration/index.d.ts.map +1 -1
- package/dist/commonjs/a365/constants.d.ts +1 -1
- package/dist/commonjs/a365/constants.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +5 -2
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.js +73 -24
- package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +5 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/commonjs/a365/exporter/utils.d.ts +29 -1
- package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/utils.js +121 -5
- package/dist/commonjs/a365/exporter/utils.js.map +1 -1
- package/dist/commonjs/a365/hosting/activityCompat.d.ts +9 -0
- package/dist/commonjs/a365/hosting/activityCompat.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/activityCompat.js +27 -0
- package/dist/commonjs/a365/hosting/activityCompat.js.map +1 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +58 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.js +229 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -0
- package/dist/commonjs/a365/hosting/baggageMiddleware.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/baggageMiddleware.js +2 -0
- package/dist/commonjs/a365/hosting/baggageMiddleware.js.map +1 -1
- package/dist/commonjs/a365/hosting/configureA365Hosting.d.ts +10 -0
- package/dist/commonjs/a365/hosting/configureA365Hosting.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/configureA365Hosting.js +20 -0
- package/dist/commonjs/a365/hosting/configureA365Hosting.js.map +1 -0
- package/dist/commonjs/a365/hosting/index.d.ts +4 -1
- package/dist/commonjs/a365/hosting/index.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/index.js +6 -1
- package/dist/commonjs/a365/hosting/index.js.map +1 -1
- package/dist/commonjs/a365/hosting/observabilityHostingManager.d.ts +2 -4
- package/dist/commonjs/a365/hosting/observabilityHostingManager.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/observabilityHostingManager.js.map +1 -1
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js +2 -0
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js.map +1 -1
- package/dist/commonjs/a365/hosting/types.d.ts +4 -0
- package/dist/commonjs/a365/hosting/types.d.ts.map +1 -1
- package/dist/commonjs/a365/index.d.ts +3 -3
- package/dist/commonjs/a365/index.d.ts.map +1 -1
- package/dist/commonjs/a365/index.js +4 -1
- package/dist/commonjs/a365/index.js.map +1 -1
- package/dist/commonjs/distro/distro.d.ts +12 -1
- package/dist/commonjs/distro/distro.d.ts.map +1 -1
- package/dist/commonjs/distro/distro.js +93 -10
- package/dist/commonjs/distro/distro.js.map +1 -1
- package/dist/commonjs/distro/loader.d.ts +10 -0
- package/dist/commonjs/distro/loader.d.ts.map +1 -0
- package/dist/commonjs/distro/loader.js +16 -0
- package/dist/commonjs/distro/loader.js.map +1 -0
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +9 -8
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js +40 -15
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.js +259 -75
- package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +72 -37
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts +0 -2
- package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/semconv.js +1 -3
- package/dist/commonjs/genai/instrumentations/openai/semconv.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/utils.d.ts +37 -16
- package/dist/commonjs/genai/instrumentations/openai/utils.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/utils.js +239 -60
- package/dist/commonjs/genai/instrumentations/openai/utils.js.map +1 -1
- package/dist/commonjs/genai/semconv.d.ts +2 -0
- package/dist/commonjs/genai/semconv.d.ts.map +1 -1
- package/dist/commonjs/genai/semconv.js +5 -1
- package/dist/commonjs/genai/semconv.js.map +1 -1
- package/dist/commonjs/index.d.ts +3 -3
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +4 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/types.d.ts +1 -8
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +1 -1
- package/dist/commonjs/types.js.map +1 -1
- package/dist/esm/a365/configuration/A365Configuration.d.ts +1 -11
- package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -1
- package/dist/esm/a365/configuration/A365Configuration.js +2 -17
- package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +0 -31
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
- package/dist/esm/a365/configuration/index.d.ts +1 -1
- package/dist/esm/a365/configuration/index.d.ts.map +1 -1
- package/dist/esm/a365/constants.d.ts +1 -1
- package/dist/esm/a365/constants.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts +5 -2
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.js +74 -25
- package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js +5 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/esm/a365/exporter/utils.d.ts +29 -1
- package/dist/esm/a365/exporter/utils.d.ts.map +1 -1
- package/dist/esm/a365/exporter/utils.js +119 -6
- package/dist/esm/a365/exporter/utils.js.map +1 -1
- package/dist/esm/a365/hosting/activityCompat.d.ts +9 -0
- package/dist/esm/a365/hosting/activityCompat.d.ts.map +1 -0
- package/dist/esm/a365/hosting/activityCompat.js +24 -0
- package/dist/esm/a365/hosting/activityCompat.js.map +1 -0
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts +58 -0
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -0
- package/dist/esm/a365/hosting/agenticTokenCache.js +225 -0
- package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -0
- package/dist/esm/a365/hosting/baggageMiddleware.d.ts.map +1 -1
- package/dist/esm/a365/hosting/baggageMiddleware.js +2 -0
- package/dist/esm/a365/hosting/baggageMiddleware.js.map +1 -1
- package/dist/esm/a365/hosting/configureA365Hosting.d.ts +10 -0
- package/dist/esm/a365/hosting/configureA365Hosting.d.ts.map +1 -0
- package/dist/esm/a365/hosting/configureA365Hosting.js +17 -0
- package/dist/esm/a365/hosting/configureA365Hosting.js.map +1 -0
- package/dist/esm/a365/hosting/index.d.ts +4 -1
- package/dist/esm/a365/hosting/index.d.ts.map +1 -1
- package/dist/esm/a365/hosting/index.js +2 -0
- package/dist/esm/a365/hosting/index.js.map +1 -1
- package/dist/esm/a365/hosting/observabilityHostingManager.d.ts +2 -4
- package/dist/esm/a365/hosting/observabilityHostingManager.d.ts.map +1 -1
- package/dist/esm/a365/hosting/observabilityHostingManager.js.map +1 -1
- package/dist/esm/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
- package/dist/esm/a365/hosting/outputLoggingMiddleware.js +2 -0
- package/dist/esm/a365/hosting/outputLoggingMiddleware.js.map +1 -1
- package/dist/esm/a365/hosting/types.d.ts +4 -0
- package/dist/esm/a365/hosting/types.d.ts.map +1 -1
- package/dist/esm/a365/index.d.ts +3 -3
- package/dist/esm/a365/index.d.ts.map +1 -1
- package/dist/esm/a365/index.js +1 -1
- package/dist/esm/a365/index.js.map +1 -1
- package/dist/esm/distro/distro.d.ts +12 -1
- package/dist/esm/distro/distro.d.ts.map +1 -1
- package/dist/esm/distro/distro.js +91 -10
- package/dist/esm/distro/distro.js.map +1 -1
- package/dist/esm/distro/loader.d.ts +10 -0
- package/dist/esm/distro/loader.d.ts.map +1 -0
- package/dist/esm/distro/loader.js +14 -0
- package/dist/esm/distro/loader.js.map +1 -0
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +9 -8
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.js +41 -16
- package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.js +260 -76
- package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +75 -40
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/semconv.d.ts +0 -2
- package/dist/esm/genai/instrumentations/openai/semconv.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/semconv.js +0 -2
- package/dist/esm/genai/instrumentations/openai/semconv.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/utils.d.ts +37 -16
- package/dist/esm/genai/instrumentations/openai/utils.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/utils.js +233 -57
- package/dist/esm/genai/instrumentations/openai/utils.js.map +1 -1
- package/dist/esm/genai/semconv.d.ts +2 -0
- package/dist/esm/genai/semconv.d.ts.map +1 -1
- package/dist/esm/genai/semconv.js +4 -0
- package/dist/esm/genai/semconv.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +1 -8
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +5 -5
|
@@ -15,21 +15,18 @@ import { BaseTracer, Run } from "@langchain/core/tracers/base";
|
|
|
15
15
|
* - Skips LangChain-internal runs (tagged `langsmith:hidden`, `Branch*`, or
|
|
16
16
|
* unmapped run types) to avoid noisy traces.
|
|
17
17
|
* - Guards against unbounded memory with a hard cap of {@link MAX_RUNS}.
|
|
18
|
-
* - Content
|
|
19
|
-
*
|
|
18
|
+
* - Content attributes (messages, tool args) are always recorded
|
|
19
|
+
* (aligned with Python/.NET SDKs).
|
|
20
20
|
*/
|
|
21
21
|
export declare class LangChainTracer extends BaseTracer {
|
|
22
22
|
/** Hard cap on concurrent tracked runs to prevent memory leaks. */
|
|
23
23
|
private static readonly MAX_RUNS;
|
|
24
24
|
private tracer;
|
|
25
|
-
private isContentRecordingEnabled;
|
|
26
25
|
/** Active runs keyed by LangChain run ID. */
|
|
27
26
|
private runs;
|
|
28
27
|
/** Maps each run ID → its parent run ID for parent-span-context lookup. */
|
|
29
28
|
private parentByRunId;
|
|
30
|
-
constructor(tracer: Tracer
|
|
31
|
-
isContentRecordingEnabled?: boolean;
|
|
32
|
-
});
|
|
29
|
+
constructor(tracer: Tracer);
|
|
33
30
|
name: string;
|
|
34
31
|
protected persistRun(_run: Run): Promise<void>;
|
|
35
32
|
/**
|
|
@@ -45,8 +42,7 @@ export declare class LangChainTracer extends BaseTracer {
|
|
|
45
42
|
protected startTracing(run: Run): void;
|
|
46
43
|
/**
|
|
47
44
|
* Called by LangChain when a run finishes. Sets status, enriches the span
|
|
48
|
-
* with GenAI attributes, and ends it.
|
|
49
|
-
* message bodies, tool arguments, and system instructions are also attached.
|
|
45
|
+
* with GenAI attributes, and ends it.
|
|
50
46
|
*/
|
|
51
47
|
protected _endTrace(run: Run): Promise<void>;
|
|
52
48
|
/**
|
|
@@ -55,5 +51,10 @@ export declare class LangChainTracer extends BaseTracer {
|
|
|
55
51
|
* as a child.
|
|
56
52
|
*/
|
|
57
53
|
private getNearestParentSpanContext;
|
|
54
|
+
/**
|
|
55
|
+
* Walk up the parent run chain to find the nearest ancestor that is an
|
|
56
|
+
* invoke_agent run, returning its name as the caller agent name.
|
|
57
|
+
*/
|
|
58
|
+
private findCallerAgentName;
|
|
58
59
|
}
|
|
59
60
|
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAa/D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,6CAA6C;IAC7C,OAAO,CAAC,IAAI,CAAkC;IAC9C,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAAyC;gBAElD,MAAM,EAAE,MAAM;IAK1B,IAAI,SAAkC;IAEtC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,GAAG;IAM1B;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG;IA2D/B;;;OAGG;cACa,SAAS,CAAC,GAAG,EAAE,GAAG;IA8ElC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAWnC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
|
|
@@ -5,7 +5,7 @@ import { context, trace, SpanKind, SpanStatusCode } from "@opentelemetry/api";
|
|
|
5
5
|
import { BaseTracer } from "@langchain/core/tracers/base";
|
|
6
6
|
import { isTracingSuppressed } from "@opentelemetry/core";
|
|
7
7
|
import { diag } from "@opentelemetry/api";
|
|
8
|
-
import { ATTR_ERROR_MESSAGE, ATTR_GEN_AI_PROVIDER_NAME } from "../../index.js";
|
|
8
|
+
import { ATTR_ERROR_MESSAGE, ATTR_ERROR_TYPE, ATTR_GEN_AI_CALLER_AGENT_NAME, ATTR_GEN_AI_PROVIDER_NAME, } from "../../index.js";
|
|
9
9
|
import * as Utils from "./utils.js";
|
|
10
10
|
/**
|
|
11
11
|
* OpenTelemetry-based tracer for LangChain / LangGraph applications.
|
|
@@ -22,22 +22,20 @@ import * as Utils from "./utils.js";
|
|
|
22
22
|
* - Skips LangChain-internal runs (tagged `langsmith:hidden`, `Branch*`, or
|
|
23
23
|
* unmapped run types) to avoid noisy traces.
|
|
24
24
|
* - Guards against unbounded memory with a hard cap of {@link MAX_RUNS}.
|
|
25
|
-
* - Content
|
|
26
|
-
*
|
|
25
|
+
* - Content attributes (messages, tool args) are always recorded
|
|
26
|
+
* (aligned with Python/.NET SDKs).
|
|
27
27
|
*/
|
|
28
28
|
export class LangChainTracer extends BaseTracer {
|
|
29
29
|
/** Hard cap on concurrent tracked runs to prevent memory leaks. */
|
|
30
30
|
static MAX_RUNS = 10_000;
|
|
31
31
|
tracer;
|
|
32
|
-
isContentRecordingEnabled;
|
|
33
32
|
/** Active runs keyed by LangChain run ID. */
|
|
34
33
|
runs = new Map();
|
|
35
34
|
/** Maps each run ID → its parent run ID for parent-span-context lookup. */
|
|
36
35
|
parentByRunId = new Map();
|
|
37
|
-
constructor(tracer
|
|
36
|
+
constructor(tracer) {
|
|
38
37
|
super();
|
|
39
38
|
this.tracer = tracer;
|
|
40
|
-
this.isContentRecordingEnabled = options?.isContentRecordingEnabled ?? false;
|
|
41
39
|
}
|
|
42
40
|
name = "OpenTelemetryLangChainTracer";
|
|
43
41
|
persistRun(_run) {
|
|
@@ -77,14 +75,18 @@ export class LangChainTracer extends BaseTracer {
|
|
|
77
75
|
: context.active();
|
|
78
76
|
// Build span name: "<operation> <name|model>"
|
|
79
77
|
let spanName = run.name;
|
|
78
|
+
let kind = SpanKind.INTERNAL;
|
|
80
79
|
if (operation === "invoke_agent") {
|
|
81
80
|
spanName = `${operation} ${run.name}`;
|
|
81
|
+
kind = SpanKind.SERVER;
|
|
82
82
|
}
|
|
83
83
|
else if (operation === "execute_tool") {
|
|
84
84
|
spanName = `${operation} ${run.name}`;
|
|
85
|
+
kind = SpanKind.CLIENT;
|
|
85
86
|
}
|
|
86
87
|
else if (operation === "chat") {
|
|
87
88
|
spanName = `${operation} ${Utils.getModel(run) || run.name}`.trim();
|
|
89
|
+
kind = SpanKind.CLIENT;
|
|
88
90
|
}
|
|
89
91
|
if (this.runs.size >= LangChainTracer.MAX_RUNS) {
|
|
90
92
|
diag.warn(`[LangChainTracer] Max runs (${LangChainTracer.MAX_RUNS}) reached, skipping span`);
|
|
@@ -93,7 +95,7 @@ export class LangChainTracer extends BaseTracer {
|
|
|
93
95
|
}
|
|
94
96
|
const startTime = run.start_time ?? Date.now();
|
|
95
97
|
const span = this.tracer.startSpan(spanName, {
|
|
96
|
-
kind
|
|
98
|
+
kind,
|
|
97
99
|
startTime,
|
|
98
100
|
attributes: { [ATTR_GEN_AI_PROVIDER_NAME]: "langchain" },
|
|
99
101
|
}, activeContext);
|
|
@@ -101,8 +103,7 @@ export class LangChainTracer extends BaseTracer {
|
|
|
101
103
|
}
|
|
102
104
|
/**
|
|
103
105
|
* Called by LangChain when a run finishes. Sets status, enriches the span
|
|
104
|
-
* with GenAI attributes, and ends it.
|
|
105
|
-
* message bodies, tool arguments, and system instructions are also attached.
|
|
106
|
+
* with GenAI attributes, and ends it.
|
|
106
107
|
*/
|
|
107
108
|
async _endTrace(run) {
|
|
108
109
|
if (isTracingSuppressed(context.active())) {
|
|
@@ -132,6 +133,11 @@ export class LangChainTracer extends BaseTracer {
|
|
|
132
133
|
if (run.error) {
|
|
133
134
|
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
134
135
|
span.setAttribute(ATTR_ERROR_MESSAGE, String(run.error));
|
|
136
|
+
const errorType = run.error?.name ??
|
|
137
|
+
run.error?.constructor?.name;
|
|
138
|
+
if (typeof errorType === "string" && errorType.length > 0) {
|
|
139
|
+
span.setAttribute(ATTR_ERROR_TYPE, errorType);
|
|
140
|
+
}
|
|
135
141
|
}
|
|
136
142
|
else {
|
|
137
143
|
span.setStatus({ code: SpanStatusCode.OK });
|
|
@@ -139,17 +145,21 @@ export class LangChainTracer extends BaseTracer {
|
|
|
139
145
|
// Always-on attributes: operation type, agent info, model, provider, session, tokens
|
|
140
146
|
Utils.setOperationTypeAttribute(operation, span);
|
|
141
147
|
Utils.setAgentAttributes(run, span);
|
|
148
|
+
if (operation === "invoke_agent") {
|
|
149
|
+
const callerName = this.findCallerAgentName(run);
|
|
150
|
+
if (callerName) {
|
|
151
|
+
span.setAttribute(ATTR_GEN_AI_CALLER_AGENT_NAME, callerName);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
142
154
|
Utils.setModelAttribute(run, span);
|
|
143
155
|
Utils.setProviderNameAttribute(run, span);
|
|
144
156
|
Utils.setSessionIdAttribute(run, span);
|
|
145
157
|
Utils.setTokenAttributes(run, span);
|
|
146
|
-
//
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
Utils.setSystemInstructionsAttribute(run, span);
|
|
152
|
-
}
|
|
158
|
+
// Content attributes — always recorded (aligned with Python/.NET SDKs)
|
|
159
|
+
Utils.setToolAttributes(run, span);
|
|
160
|
+
Utils.setInputMessagesAttribute(run, span);
|
|
161
|
+
Utils.setOutputMessagesAttribute(run, span);
|
|
162
|
+
Utils.setSystemInstructionsAttribute(run, span);
|
|
153
163
|
}
|
|
154
164
|
catch (error) {
|
|
155
165
|
diag.error(`[LangChainTracer] Error setting span attributes for run ${run.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -177,5 +187,20 @@ export class LangChainTracer extends BaseTracer {
|
|
|
177
187
|
}
|
|
178
188
|
return undefined;
|
|
179
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Walk up the parent run chain to find the nearest ancestor that is an
|
|
192
|
+
* invoke_agent run, returning its name as the caller agent name.
|
|
193
|
+
*/
|
|
194
|
+
findCallerAgentName(run) {
|
|
195
|
+
let pid = run.parent_run_id;
|
|
196
|
+
while (pid) {
|
|
197
|
+
const entry = this.runs.get(pid);
|
|
198
|
+
if (entry && Utils.getOperationType(entry.run) === "invoke_agent") {
|
|
199
|
+
return entry.run.name;
|
|
200
|
+
}
|
|
201
|
+
pid = this.parentByRunId.get(pid);
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
180
205
|
}
|
|
181
206
|
//# sourceMappingURL=tracer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,kGAAkG;AAElG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAQ,QAAQ,EAAE,cAAc,EAAU,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAO,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAiC1C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAWjD;AAGD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAEtE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAOtD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA4CrD;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAgC7D;AAmOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA6D9D;AAGD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAarD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAGrD;AAGD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAG5D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAahE;AAGD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,oBA+BlE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAoCtD"}
|