@microsoft/opentelemetry 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -16
- package/dist/commonjs/a365/configuration/A365Configuration.js +2 -2
- package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +1 -1
- package/dist/commonjs/a365/constants.d.ts +109 -2
- package/dist/commonjs/a365/constants.d.ts.map +1 -1
- package/dist/commonjs/a365/constants.js +108 -1
- package/dist/commonjs/a365/constants.js.map +1 -1
- package/dist/commonjs/a365/contracts.d.ts +138 -0
- package/dist/commonjs/a365/contracts.d.ts.map +1 -1
- package/dist/commonjs/a365/contracts.js +33 -0
- package/dist/commonjs/a365/contracts.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +33 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.js +83 -4
- package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +8 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts +3 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/ExporterEventNames.js +3 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.js.map +1 -1
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +24 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/agenticTokenCache.js +40 -3
- package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -1
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js.map +1 -1
- package/dist/commonjs/a365/hosting/types.d.ts +47 -1
- package/dist/commonjs/a365/hosting/types.d.ts.map +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js +1 -3
- package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
- package/dist/commonjs/azureMonitor/generated/models/models.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/generated/models/models.js.map +1 -1
- package/dist/commonjs/azureMonitor/index.d.ts +2 -2
- package/dist/commonjs/azureMonitor/logs/batchLogRecordProcessor.js +1 -1
- package/dist/commonjs/azureMonitor/logs/batchLogRecordProcessor.js.map +1 -1
- package/dist/commonjs/azureMonitor/logs/handler.d.ts +3 -3
- package/dist/commonjs/azureMonitor/logs/handler.js +3 -3
- package/dist/commonjs/azureMonitor/metrics/handler.d.ts +1 -1
- package/dist/commonjs/azureMonitor/metrics/handler.js +1 -1
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts +2 -2
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.js +8 -16
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/filtering/validator.js +2 -2
- package/dist/commonjs/azureMonitor/metrics/quickpulse/filtering/validator.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +3 -3
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js +21 -9
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/standardMetrics.d.ts +1 -1
- package/dist/commonjs/azureMonitor/metrics/standardMetrics.js +1 -1
- package/dist/commonjs/azureMonitor/traces/sampler.js +1 -1
- package/dist/commonjs/azureMonitor/traces/sampler.js.map +1 -1
- package/dist/commonjs/distro/autoAttach.js +2 -2
- package/dist/commonjs/distro/autoAttach.js.map +1 -1
- package/dist/commonjs/distro/distro.d.ts +2 -2
- package/dist/commonjs/distro/distro.d.ts.map +1 -1
- package/dist/commonjs/distro/distro.js +32 -17
- package/dist/commonjs/distro/distro.js.map +1 -1
- package/dist/commonjs/distro/instrumentations.d.ts +2 -2
- package/dist/commonjs/distro/instrumentations.d.ts.map +1 -1
- package/dist/commonjs/distro/instrumentations.js +14 -2
- package/dist/commonjs/distro/instrumentations.js.map +1 -1
- package/dist/commonjs/distro/loader.d.ts +1 -1
- package/dist/commonjs/distro/loader.js +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +10 -4
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +41 -63
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +16 -3
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js +31 -8
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts +3 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.js +137 -13
- package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/commonjs/genai/mainAgent/constants.d.ts +5 -0
- package/dist/commonjs/genai/mainAgent/constants.d.ts.map +1 -1
- package/dist/commonjs/genai/mainAgent/constants.js +5 -0
- package/dist/commonjs/genai/mainAgent/constants.js.map +1 -1
- package/dist/commonjs/genai/mainAgent/processor.d.ts +25 -0
- package/dist/commonjs/genai/mainAgent/processor.d.ts.map +1 -1
- package/dist/commonjs/genai/mainAgent/processor.js +25 -0
- package/dist/commonjs/genai/mainAgent/processor.js.map +1 -1
- package/dist/commonjs/genai/semconv.d.ts +1 -0
- package/dist/commonjs/genai/semconv.d.ts.map +1 -1
- package/dist/commonjs/genai/semconv.js +2 -1
- package/dist/commonjs/genai/semconv.js.map +1 -1
- package/dist/commonjs/otlp/handler.d.ts.map +1 -1
- package/dist/commonjs/otlp/handler.js +5 -20
- package/dist/commonjs/otlp/handler.js.map +1 -1
- package/dist/commonjs/sdkstats/constants.d.ts +45 -0
- package/dist/commonjs/sdkstats/constants.d.ts.map +1 -0
- package/dist/commonjs/sdkstats/constants.js +77 -0
- package/dist/commonjs/sdkstats/constants.js.map +1 -0
- package/dist/commonjs/sdkstats/index.d.ts +5 -6
- package/dist/commonjs/sdkstats/index.d.ts.map +1 -1
- package/dist/commonjs/sdkstats/index.js +15 -8
- package/dist/commonjs/sdkstats/index.js.map +1 -1
- package/dist/commonjs/sdkstats/manager.js +7 -7
- package/dist/commonjs/sdkstats/manager.js.map +1 -1
- package/dist/commonjs/sdkstats/metrics.d.ts.map +1 -1
- package/dist/commonjs/sdkstats/metrics.js +41 -7
- package/dist/commonjs/sdkstats/metrics.js.map +1 -1
- package/dist/commonjs/sdkstats/networkStats.d.ts +38 -16
- package/dist/commonjs/sdkstats/networkStats.d.ts.map +1 -1
- package/dist/commonjs/sdkstats/networkStats.js +95 -30
- package/dist/commonjs/sdkstats/networkStats.js.map +1 -1
- package/dist/commonjs/sdkstats/state.d.ts +5 -5
- package/dist/commonjs/sdkstats/state.js +3 -3
- package/dist/commonjs/sdkstats/state.js.map +1 -1
- package/dist/commonjs/shared/config.d.ts +1 -1
- package/dist/commonjs/shared/config.js +1 -1
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts +1 -0
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.js +14 -6
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist/commonjs/types.d.ts +14 -3
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +2 -3
- package/dist/commonjs/types.js.map +1 -1
- package/dist/commonjs/utils/sdkStats.d.ts.map +1 -1
- package/dist/commonjs/utils/sdkStats.js +14 -3
- package/dist/commonjs/utils/sdkStats.js.map +1 -1
- package/dist/esm/a365/configuration/A365Configuration.js +2 -2
- package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +1 -1
- package/dist/esm/a365/constants.d.ts +109 -2
- package/dist/esm/a365/constants.d.ts.map +1 -1
- package/dist/esm/a365/constants.js +108 -1
- package/dist/esm/a365/constants.js.map +1 -1
- package/dist/esm/a365/contracts.d.ts +138 -0
- package/dist/esm/a365/contracts.d.ts.map +1 -1
- package/dist/esm/a365/contracts.js +33 -0
- package/dist/esm/a365/contracts.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts +33 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.js +84 -5
- package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +8 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/esm/a365/exporter/ExporterEventNames.d.ts +3 -0
- package/dist/esm/a365/exporter/ExporterEventNames.d.ts.map +1 -1
- package/dist/esm/a365/exporter/ExporterEventNames.js +3 -0
- package/dist/esm/a365/exporter/ExporterEventNames.js.map +1 -1
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts +24 -0
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -1
- package/dist/esm/a365/hosting/agenticTokenCache.js +40 -3
- package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -1
- package/dist/esm/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
- package/dist/esm/a365/hosting/outputLoggingMiddleware.js.map +1 -1
- package/dist/esm/a365/hosting/types.d.ts +47 -1
- package/dist/esm/a365/hosting/types.d.ts.map +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.js +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
- package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js +1 -3
- package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
- package/dist/esm/azureMonitor/generated/models/models.d.ts.map +1 -1
- package/dist/esm/azureMonitor/generated/models/models.js.map +1 -1
- package/dist/esm/azureMonitor/index.d.ts +2 -2
- package/dist/esm/azureMonitor/logs/batchLogRecordProcessor.js +1 -1
- package/dist/esm/azureMonitor/logs/batchLogRecordProcessor.js.map +1 -1
- package/dist/esm/azureMonitor/logs/handler.d.ts +3 -3
- package/dist/esm/azureMonitor/logs/handler.js +3 -3
- package/dist/esm/azureMonitor/metrics/handler.d.ts +1 -1
- package/dist/esm/azureMonitor/metrics/handler.js +1 -1
- package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts +2 -2
- package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts.map +1 -1
- package/dist/esm/azureMonitor/metrics/performanceCounters.js +8 -16
- package/dist/esm/azureMonitor/metrics/performanceCounters.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/filtering/validator.js +2 -2
- package/dist/esm/azureMonitor/metrics/quickpulse/filtering/validator.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +3 -3
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js +21 -9
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.js +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/standardMetrics.d.ts +1 -1
- package/dist/esm/azureMonitor/metrics/standardMetrics.js +1 -1
- package/dist/esm/azureMonitor/traces/sampler.js +1 -1
- package/dist/esm/azureMonitor/traces/sampler.js.map +1 -1
- package/dist/esm/distro/autoAttach.js +2 -2
- package/dist/esm/distro/autoAttach.js.map +1 -1
- package/dist/esm/distro/distro.d.ts +2 -2
- package/dist/esm/distro/distro.d.ts.map +1 -1
- package/dist/esm/distro/distro.js +28 -13
- package/dist/esm/distro/distro.js.map +1 -1
- package/dist/esm/distro/instrumentations.d.ts +2 -2
- package/dist/esm/distro/instrumentations.d.ts.map +1 -1
- package/dist/esm/distro/instrumentations.js +14 -2
- package/dist/esm/distro/instrumentations.js.map +1 -1
- package/dist/esm/distro/loader.d.ts +1 -1
- package/dist/esm/distro/loader.js +1 -1
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +10 -4
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +41 -30
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +16 -3
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.js +31 -8
- package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.d.ts +3 -1
- package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.js +137 -15
- package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/esm/genai/mainAgent/constants.d.ts +5 -0
- package/dist/esm/genai/mainAgent/constants.d.ts.map +1 -1
- package/dist/esm/genai/mainAgent/constants.js +5 -0
- package/dist/esm/genai/mainAgent/constants.js.map +1 -1
- package/dist/esm/genai/mainAgent/processor.d.ts +25 -0
- package/dist/esm/genai/mainAgent/processor.d.ts.map +1 -1
- package/dist/esm/genai/mainAgent/processor.js +25 -0
- package/dist/esm/genai/mainAgent/processor.js.map +1 -1
- package/dist/esm/genai/semconv.d.ts +1 -0
- package/dist/esm/genai/semconv.d.ts.map +1 -1
- package/dist/esm/genai/semconv.js +1 -0
- package/dist/esm/genai/semconv.js.map +1 -1
- package/dist/esm/otlp/handler.d.ts.map +1 -1
- package/dist/esm/otlp/handler.js +5 -20
- package/dist/esm/otlp/handler.js.map +1 -1
- package/dist/esm/sdkstats/constants.d.ts +45 -0
- package/dist/esm/sdkstats/constants.d.ts.map +1 -0
- package/dist/esm/sdkstats/constants.js +74 -0
- package/dist/esm/sdkstats/constants.js.map +1 -0
- package/dist/esm/sdkstats/index.d.ts +5 -6
- package/dist/esm/sdkstats/index.d.ts.map +1 -1
- package/dist/esm/sdkstats/index.js +4 -5
- package/dist/esm/sdkstats/index.js.map +1 -1
- package/dist/esm/sdkstats/manager.js +7 -7
- package/dist/esm/sdkstats/manager.js.map +1 -1
- package/dist/esm/sdkstats/metrics.d.ts.map +1 -1
- package/dist/esm/sdkstats/metrics.js +42 -8
- package/dist/esm/sdkstats/metrics.js.map +1 -1
- package/dist/esm/sdkstats/networkStats.d.ts +38 -16
- package/dist/esm/sdkstats/networkStats.d.ts.map +1 -1
- package/dist/esm/sdkstats/networkStats.js +79 -26
- package/dist/esm/sdkstats/networkStats.js.map +1 -1
- package/dist/esm/sdkstats/state.d.ts +5 -5
- package/dist/esm/sdkstats/state.js +3 -3
- package/dist/esm/sdkstats/state.js.map +1 -1
- package/dist/esm/shared/config.d.ts +1 -1
- package/dist/esm/shared/config.js +1 -1
- package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts +1 -0
- package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
- package/dist/esm/shared/logging/diagFileConsoleLogger.js +14 -6
- package/dist/esm/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist/esm/types.d.ts +14 -3
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -2
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/sdkStats.d.ts.map +1 -1
- package/dist/esm/utils/sdkStats.js +14 -3
- package/dist/esm/utils/sdkStats.js.map +1 -1
- package/package.json +49 -39
- package/dist/commonjs/sdkstats/otlpWrapper.d.ts +0 -56
- package/dist/commonjs/sdkstats/otlpWrapper.d.ts.map +0 -1
- package/dist/commonjs/sdkstats/otlpWrapper.js +0 -121
- package/dist/commonjs/sdkstats/otlpWrapper.js.map +0 -1
- package/dist/esm/sdkstats/otlpWrapper.d.ts +0 -56
- package/dist/esm/sdkstats/otlpWrapper.d.ts.map +0 -1
- package/dist/esm/sdkstats/otlpWrapper.js +0 -115
- package/dist/esm/sdkstats/otlpWrapper.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentations.js","sourceRoot":"","sources":["../../../src/distro/instrumentations.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;
|
|
1
|
+
{"version":3,"file":"instrumentations.js","sourceRoot":"","sources":["../../../src/distro/instrumentations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ESM loader entry point for Microsoft OpenTelemetry
|
|
2
|
+
* ESM loader entry point for Microsoft OpenTelemetry.
|
|
3
3
|
*
|
|
4
4
|
* For ESM applications, this loader should be preloaded with the --import flag
|
|
5
5
|
* so OpenTelemetry import hooks are registered before application modules load.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
/**
|
|
6
|
-
* ESM loader entry point for Microsoft OpenTelemetry
|
|
6
|
+
* ESM loader entry point for Microsoft OpenTelemetry.
|
|
7
7
|
*
|
|
8
8
|
* For ESM applications, this loader should be preloaded with the --import flag
|
|
9
9
|
* so OpenTelemetry import hooks are registered before application modules load.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type * as CallbackManagerModule from "@langchain/core/callbacks/manager";
|
|
2
2
|
import { Tracer } from "@opentelemetry/api";
|
|
3
|
-
import
|
|
3
|
+
import { LangChainTracer } from "./tracer.js";
|
|
4
4
|
type CallbackManagerModuleType = typeof CallbackManagerModule;
|
|
5
|
-
type LangChainTracerCtor = new (tracer: Tracer) => LangChainTracer;
|
|
5
|
+
type LangChainTracerCtor = new (tracer: Tracer, enableSensitiveData?: boolean) => LangChainTracer;
|
|
6
6
|
/**
|
|
7
7
|
* Static wrapper for LangChain tracing instrumentation
|
|
8
8
|
*/
|
|
@@ -12,8 +12,14 @@ export declare class LangChainTraceInstrumentor {
|
|
|
12
12
|
* Initialize and auto-instrument for LangChain
|
|
13
13
|
* @param module The CallbackManager module to instrument
|
|
14
14
|
* @param options Optional configuration options
|
|
15
|
+
* @param options.enableSensitiveData When true, sensitive message content
|
|
16
|
+
* (prompts, completions, tool arguments/results, system instructions) is
|
|
17
|
+
* captured on spans. Defaults to false. Only enable in trusted,
|
|
18
|
+
* non-production environments.
|
|
15
19
|
*/
|
|
16
|
-
static instrument(module: CallbackManagerModuleType
|
|
20
|
+
static instrument(module: CallbackManagerModuleType, options?: {
|
|
21
|
+
enableSensitiveData?: boolean;
|
|
22
|
+
}): void;
|
|
17
23
|
/**
|
|
18
24
|
* Enable LangChain instrumentation
|
|
19
25
|
*/
|
|
@@ -27,6 +33,6 @@ export declare class LangChainTraceInstrumentor {
|
|
|
27
33
|
*/
|
|
28
34
|
static resetInstance(): void;
|
|
29
35
|
}
|
|
30
|
-
export declare function addTracerToHandlers(tracer: Tracer, handlers: CallbackManagerModule.Callbacks | undefined, tracerCtor: LangChainTracerCtor): CallbackManagerModule.Callbacks;
|
|
36
|
+
export declare function addTracerToHandlers(tracer: Tracer, handlers: CallbackManagerModule.Callbacks | undefined, tracerCtor: LangChainTracerCtor, enableSensitiveData?: boolean): CallbackManagerModule.Callbacks;
|
|
31
37
|
export {};
|
|
32
38
|
//# sourceMappingURL=langchainTraceInstrumentor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchainTraceInstrumentor.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/langchainTraceInstrumentor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAOzD,OAAO,
|
|
1
|
+
{"version":3,"file":"langchainTraceInstrumentor.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/langchainTraceInstrumentor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAOzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,yBAAyB,GAAG,OAAO,qBAAqB,CAAC;AAC9D,KAAK,mBAAmB,GAAG,KAAK,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,KAAK,eAAe,CAAC;AAwIlG;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,IAAI;IAOP;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAOrB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAOtB;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;CAG7B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,qBAAqB,CAAC,SAAS,GAAG,SAAS,EACrD,UAAU,EAAE,mBAAmB,EAC/B,mBAAmB,UAAQ,GAC1B,qBAAqB,CAAC,SAAS,CAyBjC"}
|
|
@@ -3,53 +3,31 @@
|
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
// Vendored from microsoft/Agent365-nodejs packages/agents-a365-observability-extensions-langchain
|
|
5
5
|
// Adapted: removed ObservabilityManager dependency, uses diag logger instead of A365 logger
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
7
|
exports.LangChainTraceInstrumentor = void 0;
|
|
41
8
|
exports.addTracerToHandlers = addTracerToHandlers;
|
|
42
9
|
const api_1 = require("@opentelemetry/api");
|
|
43
10
|
const instrumentation_1 = require("@opentelemetry/instrumentation");
|
|
11
|
+
const tracer_js_1 = require("./tracer.js");
|
|
44
12
|
class LangChainTraceInstrumentorImpl extends instrumentation_1.InstrumentationBase {
|
|
45
13
|
static _instance = null;
|
|
46
14
|
_hasBeenEnabled = false;
|
|
47
15
|
_isPatched = false;
|
|
48
16
|
otelTracer;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
17
|
+
// Statically bound at module load. A previous lazy `import("./tracer.js")`
|
|
18
|
+
// resolved on a later microtask, so any `_configureSync` call that landed
|
|
19
|
+
// in that window (typically the first compiled-graph `invoke` after distro
|
|
20
|
+
// startup) silently fell through with no tracer attached, dropping the
|
|
21
|
+
// outer `invoke_agent LangGraph` wrapper span and fragmenting the trace.
|
|
22
|
+
// A static import is safe: by the time `patch()` runs, the callbacks
|
|
23
|
+
// manager module is already loaded (it is the `module` argument).
|
|
24
|
+
_tracerCtor = tracer_js_1.LangChainTracer;
|
|
25
|
+
/**
|
|
26
|
+
* When true, the attached {@link LangChainTracer} captures sensitive message
|
|
27
|
+
* content on spans regardless of the OTel GenAI content-capture environment
|
|
28
|
+
* variables.
|
|
29
|
+
*/
|
|
30
|
+
_enableSensitiveData = false;
|
|
53
31
|
constructor() {
|
|
54
32
|
if (LangChainTraceInstrumentorImpl._instance !== null) {
|
|
55
33
|
throw new Error("LangChainTraceInstrumentor can only be instantiated once.");
|
|
@@ -102,27 +80,12 @@ class LangChainTraceInstrumentorImpl extends instrumentation_1.InstrumentationBa
|
|
|
102
80
|
if (!CallbackManager || !("_configureSync" in CallbackManager)) {
|
|
103
81
|
return module;
|
|
104
82
|
}
|
|
105
|
-
// Now that the hooks are registered and @langchain/core/callbacks/manager
|
|
106
|
-
// is loaded, it is safe to load tracer.js (and its transitive
|
|
107
|
-
// @langchain/core/tracers/base dependency). The promise resolves in the
|
|
108
|
-
// next microtask — well before any user code invokes a LangChain
|
|
109
|
-
// chain/agent/tool (which is what triggers _configureSync).
|
|
110
|
-
void Promise.resolve().then(() => __importStar(require("./tracer.js"))).then((m) => {
|
|
111
|
-
this._tracerCtor = m.LangChainTracer;
|
|
112
|
-
}, (err) => {
|
|
113
|
-
api_1.diag.error(`[LangChainTraceInstrumentor] Failed to load LangChainTracer: ${err instanceof Error ? err.message : String(err)}`);
|
|
114
|
-
});
|
|
115
83
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
116
84
|
const instrumentor = this;
|
|
117
85
|
this._wrap(CallbackManager, "_configureSync", (original) => {
|
|
118
86
|
return function (...args) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
api_1.diag.debug("[LangChainTraceInstrumentor] _configureSync wrapped to add LangChainTracer");
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
api_1.diag.debug("[LangChainTraceInstrumentor] LangChainTracer not yet loaded, skipping");
|
|
125
|
-
}
|
|
87
|
+
args[0] = addTracerToHandlers(instrumentor.otelTracer, args[0], instrumentor._tracerCtor, instrumentor._enableSensitiveData);
|
|
88
|
+
api_1.diag.debug("[LangChainTraceInstrumentor] _configureSync wrapped to add LangChainTracer");
|
|
126
89
|
return original.apply(this, args);
|
|
127
90
|
};
|
|
128
91
|
});
|
|
@@ -130,7 +93,8 @@ class LangChainTraceInstrumentorImpl extends instrumentation_1.InstrumentationBa
|
|
|
130
93
|
this._isPatched = true;
|
|
131
94
|
return module;
|
|
132
95
|
}
|
|
133
|
-
manuallyInstrumentImpl(module) {
|
|
96
|
+
manuallyInstrumentImpl(module, enableSensitiveData = false) {
|
|
97
|
+
this._enableSensitiveData = enableSensitiveData;
|
|
134
98
|
api_1.diag.info("[LangChainTraceInstrumentor] Manually instrumenting CallbackManagerModule");
|
|
135
99
|
this.patch(module);
|
|
136
100
|
}
|
|
@@ -163,9 +127,13 @@ class LangChainTraceInstrumentor {
|
|
|
163
127
|
* Initialize and auto-instrument for LangChain
|
|
164
128
|
* @param module The CallbackManager module to instrument
|
|
165
129
|
* @param options Optional configuration options
|
|
130
|
+
* @param options.enableSensitiveData When true, sensitive message content
|
|
131
|
+
* (prompts, completions, tool arguments/results, system instructions) is
|
|
132
|
+
* captured on spans. Defaults to false. Only enable in trusted,
|
|
133
|
+
* non-production environments.
|
|
166
134
|
*/
|
|
167
|
-
static instrument(module) {
|
|
168
|
-
LangChainTraceInstrumentorImpl.getInstance().manuallyInstrumentImpl(module);
|
|
135
|
+
static instrument(module, options) {
|
|
136
|
+
LangChainTraceInstrumentorImpl.getInstance().manuallyInstrumentImpl(module, options?.enableSensitiveData ?? false);
|
|
169
137
|
}
|
|
170
138
|
/**
|
|
171
139
|
* Enable LangChain instrumentation
|
|
@@ -193,18 +161,28 @@ class LangChainTraceInstrumentor {
|
|
|
193
161
|
}
|
|
194
162
|
}
|
|
195
163
|
exports.LangChainTraceInstrumentor = LangChainTraceInstrumentor;
|
|
196
|
-
function addTracerToHandlers(tracer, handlers, tracerCtor) {
|
|
164
|
+
function addTracerToHandlers(tracer, handlers, tracerCtor, enableSensitiveData = false) {
|
|
197
165
|
if (handlers == null) {
|
|
198
|
-
return [new tracerCtor(tracer)];
|
|
166
|
+
return [new tracerCtor(tracer, enableSensitiveData)];
|
|
199
167
|
}
|
|
200
168
|
if (Array.isArray(handlers)) {
|
|
201
|
-
|
|
202
|
-
|
|
169
|
+
const existing = handlers.find((h) => h instanceof tracerCtor);
|
|
170
|
+
if (existing) {
|
|
171
|
+
// Reconcile an already-attached tracer with the latest config so the flag
|
|
172
|
+
// never goes stale across re-instrumentation.
|
|
173
|
+
existing.setEnableSensitiveData(enableSensitiveData);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
handlers.push(new tracerCtor(tracer, enableSensitiveData));
|
|
203
177
|
}
|
|
204
178
|
return handlers;
|
|
205
179
|
}
|
|
206
|
-
|
|
207
|
-
|
|
180
|
+
const existing = handlers.inheritableHandlers.find((h) => h instanceof tracerCtor);
|
|
181
|
+
if (existing) {
|
|
182
|
+
existing.setEnableSensitiveData(enableSensitiveData);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
handlers.addHandler(new tracerCtor(tracer, enableSensitiveData), true);
|
|
208
186
|
}
|
|
209
187
|
return handlers;
|
|
210
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchainTraceInstrumentor.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/langchainTraceInstrumentor.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAClC,kGAAkG;AAClG,4FAA4F
|
|
1
|
+
{"version":3,"file":"langchainTraceInstrumentor.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/langchainTraceInstrumentor.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,18 +15,31 @@ 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 attributes (messages, tool args) are
|
|
19
|
-
*
|
|
18
|
+
* - Content attributes (messages, tool args/results, system instructions) are
|
|
19
|
+
* only recorded when {@link enableSensitiveData} is enabled. Sensitive data
|
|
20
|
+
* is hidden by default.
|
|
20
21
|
*/
|
|
21
22
|
export declare class LangChainTracer extends BaseTracer {
|
|
22
23
|
/** Hard cap on concurrent tracked runs to prevent memory leaks. */
|
|
23
24
|
private static readonly MAX_RUNS;
|
|
24
25
|
private tracer;
|
|
26
|
+
/**
|
|
27
|
+
* When true, sensitive message content (prompts, completions, tool
|
|
28
|
+
* arguments/results, system instructions) is captured on spans. Hidden by
|
|
29
|
+
* default.
|
|
30
|
+
*/
|
|
31
|
+
private enableSensitiveData;
|
|
25
32
|
/** Active runs keyed by LangChain run ID. */
|
|
26
33
|
private runs;
|
|
27
34
|
/** Maps each run ID → its parent run ID for parent-span-context lookup. */
|
|
28
35
|
private parentByRunId;
|
|
29
|
-
constructor(tracer: Tracer);
|
|
36
|
+
constructor(tracer: Tracer, enableSensitiveData?: boolean);
|
|
37
|
+
/**
|
|
38
|
+
* Update whether sensitive message content is captured on spans. Used to
|
|
39
|
+
* reconcile an already-attached tracer with the latest instrumentation
|
|
40
|
+
* configuration (e.g. on re-instrumentation) so the flag never goes stale.
|
|
41
|
+
*/
|
|
42
|
+
setEnableSensitiveData(enableSensitiveData: boolean): void;
|
|
30
43
|
name: string;
|
|
31
44
|
protected persistRun(_run: Run): Promise<void>;
|
|
32
45
|
/**
|
|
@@ -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;AAa/D
|
|
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;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAU;IACrC,6CAA6C;IAC7C,OAAO,CAAC,IAAI,CAAkC;IAC9C,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAAyC;gBAElD,MAAM,EAAE,MAAM,EAAE,mBAAmB,UAAQ;IAMvD;;;;OAIG;IACH,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,GAAG,IAAI;IAI1D,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;IA6E/B;;;OAGG;cACa,SAAS,CAAC,GAAG,EAAE,GAAG;IA2FlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
|
|
@@ -58,20 +58,36 @@ const Utils = __importStar(require("./utils.js"));
|
|
|
58
58
|
* - Skips LangChain-internal runs (tagged `langsmith:hidden`, `Branch*`, or
|
|
59
59
|
* unmapped run types) to avoid noisy traces.
|
|
60
60
|
* - Guards against unbounded memory with a hard cap of {@link MAX_RUNS}.
|
|
61
|
-
* - Content attributes (messages, tool args) are
|
|
62
|
-
*
|
|
61
|
+
* - Content attributes (messages, tool args/results, system instructions) are
|
|
62
|
+
* only recorded when {@link enableSensitiveData} is enabled. Sensitive data
|
|
63
|
+
* is hidden by default.
|
|
63
64
|
*/
|
|
64
65
|
class LangChainTracer extends base_1.BaseTracer {
|
|
65
66
|
/** Hard cap on concurrent tracked runs to prevent memory leaks. */
|
|
66
67
|
static MAX_RUNS = 10_000;
|
|
67
68
|
tracer;
|
|
69
|
+
/**
|
|
70
|
+
* When true, sensitive message content (prompts, completions, tool
|
|
71
|
+
* arguments/results, system instructions) is captured on spans. Hidden by
|
|
72
|
+
* default.
|
|
73
|
+
*/
|
|
74
|
+
enableSensitiveData;
|
|
68
75
|
/** Active runs keyed by LangChain run ID. */
|
|
69
76
|
runs = new Map();
|
|
70
77
|
/** Maps each run ID → its parent run ID for parent-span-context lookup. */
|
|
71
78
|
parentByRunId = new Map();
|
|
72
|
-
constructor(tracer) {
|
|
79
|
+
constructor(tracer, enableSensitiveData = false) {
|
|
73
80
|
super();
|
|
74
81
|
this.tracer = tracer;
|
|
82
|
+
this.enableSensitiveData = enableSensitiveData;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Update whether sensitive message content is captured on spans. Used to
|
|
86
|
+
* reconcile an already-attached tracer with the latest instrumentation
|
|
87
|
+
* configuration (e.g. on re-instrumentation) so the flag never goes stale.
|
|
88
|
+
*/
|
|
89
|
+
setEnableSensitiveData(enableSensitiveData) {
|
|
90
|
+
this.enableSensitiveData = enableSensitiveData;
|
|
75
91
|
}
|
|
76
92
|
name = "OpenTelemetryLangChainTracer";
|
|
77
93
|
persistRun(_run) {
|
|
@@ -210,14 +226,21 @@ class LangChainTracer extends base_1.BaseTracer {
|
|
|
210
226
|
Utils.setModelAttribute(run, span);
|
|
211
227
|
Utils.setChoiceCountAttribute(run, span);
|
|
212
228
|
Utils.setResponseIdAttribute(run, span);
|
|
229
|
+
Utils.setFinishReasonsAttribute(run, span);
|
|
213
230
|
Utils.setProviderNameAttribute(run, span);
|
|
214
231
|
Utils.setSessionIdAttribute(run, span);
|
|
215
232
|
Utils.setTokenAttributes(run, span);
|
|
216
|
-
// Content attributes
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
233
|
+
// Content attributes (messages, tool args/results, system instructions)
|
|
234
|
+
// are sensitive and only recorded when `enableSensitiveData` is set.
|
|
235
|
+
// Non-content tool attributes (name, type, call id) are always set by
|
|
236
|
+
// setToolAttributes.
|
|
237
|
+
const captureContent = this.enableSensitiveData;
|
|
238
|
+
Utils.setToolAttributes(run, span, captureContent);
|
|
239
|
+
if (captureContent) {
|
|
240
|
+
Utils.setInputMessagesAttribute(run, span);
|
|
241
|
+
Utils.setOutputMessagesAttribute(run, span);
|
|
242
|
+
Utils.setSystemInstructionsAttribute(run, span);
|
|
243
|
+
}
|
|
221
244
|
}
|
|
222
245
|
catch (error) {
|
|
223
246
|
api_2.diag.error(`[LangChainTracer] Error setting span attributes for run ${run.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -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,4CAA4F;AAC5F,uDAA+D;AAC/D,8CAA0D;AAC1D,4CAA0C;AAC1C,6CAKwB;AACxB,kDAAoC;AAIpC
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export declare function isString(value: unknown): value is string;
|
|
|
4
4
|
export declare function getOperationType(run: Run): string;
|
|
5
5
|
export declare function setOperationTypeAttribute(operation: string, span: Span): void;
|
|
6
6
|
export declare function setAgentAttributes(run: Run, span: Span): void;
|
|
7
|
-
export declare function setToolAttributes(run: Run, span: Span): void;
|
|
7
|
+
export declare function setToolAttributes(run: Run, span: Span, captureContent?: boolean): void;
|
|
8
8
|
export declare function setInputMessagesAttribute(run: Run, span: Span): void;
|
|
9
9
|
export declare function setOutputMessagesAttribute(run: Run, span: Span): void;
|
|
10
10
|
export declare function getRequestModel(run: Run): string | undefined;
|
|
@@ -15,6 +15,8 @@ export declare function getChoiceCount(run: Run): number | undefined;
|
|
|
15
15
|
export declare function setChoiceCountAttribute(run: Run, span: Span): void;
|
|
16
16
|
export declare function getResponseId(run: Run): string | undefined;
|
|
17
17
|
export declare function setResponseIdAttribute(run: Run, span: Span): void;
|
|
18
|
+
export declare function getFinishReasons(run: Run): string[] | undefined;
|
|
19
|
+
export declare function setFinishReasonsAttribute(run: Run, span: Span): void;
|
|
18
20
|
export declare function setProviderNameAttribute(run: Run, span: Span): void;
|
|
19
21
|
export declare function setSessionIdAttribute(run: Run, span: Span): void;
|
|
20
22
|
export declare function setSystemInstructionsAttribute(run: Run, span: Span): Span | undefined;
|
|
@@ -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;AAqC1C,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,EAAE,cAAc,UAAQ,QAmD7E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA6B7D;AAmOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA0D9D;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW5D;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAuB7D;AAKD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAErD;AAgCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAerD;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW3D;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAK3D;AAcD,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CA2B1D;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAKjE;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,SAAS,CAiD/D;AAmED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAKpE;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"}
|
|
@@ -18,6 +18,8 @@ exports.getChoiceCount = getChoiceCount;
|
|
|
18
18
|
exports.setChoiceCountAttribute = setChoiceCountAttribute;
|
|
19
19
|
exports.getResponseId = getResponseId;
|
|
20
20
|
exports.setResponseIdAttribute = setResponseIdAttribute;
|
|
21
|
+
exports.getFinishReasons = getFinishReasons;
|
|
22
|
+
exports.setFinishReasonsAttribute = setFinishReasonsAttribute;
|
|
21
23
|
exports.setProviderNameAttribute = setProviderNameAttribute;
|
|
22
24
|
exports.setSessionIdAttribute = setSessionIdAttribute;
|
|
23
25
|
exports.setSystemInstructionsAttribute = setSystemInstructionsAttribute;
|
|
@@ -57,7 +59,7 @@ function setAgentAttributes(run, span) {
|
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
// Tool attributes
|
|
60
|
-
function setToolAttributes(run, span) {
|
|
62
|
+
function setToolAttributes(run, span, captureContent = false) {
|
|
61
63
|
if (run.run_type !== "tool") {
|
|
62
64
|
return;
|
|
63
65
|
}
|
|
@@ -67,18 +69,24 @@ function setToolAttributes(run, span) {
|
|
|
67
69
|
if (isString(run.name)) {
|
|
68
70
|
span.setAttribute(index_js_1.ATTR_GEN_AI_TOOL_NAME, run.name);
|
|
69
71
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
:
|
|
72
|
+
// Tool arguments and result are sensitive message content — only recorded
|
|
73
|
+
// when content capture is enabled (`captureContent`, i.e. enableSensitiveData).
|
|
74
|
+
if (captureContent) {
|
|
75
|
+
if (run.inputs) {
|
|
76
|
+
const argsValue = run.inputs?.input ?? run.inputs;
|
|
77
|
+
span.setAttribute(index_js_1.ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, (0, message_utils_js_1.safeSerializeToJson)(typeof argsValue === "object"
|
|
78
|
+
? argsValue
|
|
79
|
+
: String(argsValue), "arguments"));
|
|
80
|
+
}
|
|
81
|
+
// Tool result: v0 uses output.kwargs.content, v1 returns output as a plain string or has content directly
|
|
82
|
+
const toolResult = run.outputs?.output?.kwargs?.content ??
|
|
83
|
+
(isString(run.outputs?.output) ? run.outputs.output : null) ??
|
|
84
|
+
run.outputs?.output?.content;
|
|
85
|
+
if (toolResult != null) {
|
|
86
|
+
span.setAttribute(index_js_1.ATTR_GEN_AI_TOOL_CALL_RESULT, (0, message_utils_js_1.safeSerializeToJson)(typeof toolResult === "object"
|
|
87
|
+
? toolResult
|
|
88
|
+
: String(toolResult), "result"));
|
|
89
|
+
}
|
|
82
90
|
}
|
|
83
91
|
span.setAttribute(index_js_1.ATTR_GEN_AI_TOOL_TYPE, "extension");
|
|
84
92
|
// Tool call ID: v0 uses output.tool_call_id, v1 may have it on inputs
|
|
@@ -543,6 +551,122 @@ function setResponseIdAttribute(run, span) {
|
|
|
543
551
|
span.setAttribute(index_js_1.ATTR_GEN_AI_RESPONSE_ID, responseId);
|
|
544
552
|
}
|
|
545
553
|
}
|
|
554
|
+
// Finish reasons - one per generation, parallel to n. Chat Completions:
|
|
555
|
+
// generationInfo/response_metadata.finish_reason. Responses API: derived from
|
|
556
|
+
// status/incomplete_details (no finish_reason field).
|
|
557
|
+
function getFinishReasons(run) {
|
|
558
|
+
const generations = run.outputs?.generations;
|
|
559
|
+
if (!Array.isArray(generations)) {
|
|
560
|
+
return undefined;
|
|
561
|
+
}
|
|
562
|
+
const reasons = [];
|
|
563
|
+
for (const choice of generations) {
|
|
564
|
+
if (!Array.isArray(choice))
|
|
565
|
+
continue;
|
|
566
|
+
for (const item of choice) {
|
|
567
|
+
if (!item || typeof item !== "object")
|
|
568
|
+
continue;
|
|
569
|
+
const message = item?.message;
|
|
570
|
+
const messageKwargs = message?.kwargs;
|
|
571
|
+
const responseMetadata = message?.response_metadata ??
|
|
572
|
+
messageKwargs?.response_metadata;
|
|
573
|
+
const generationInfo = item?.generationInfo;
|
|
574
|
+
// Native Chat Completions finish_reason (preferred). Pick the first
|
|
575
|
+
// non-blank string candidate; a blank/non-string value in an earlier
|
|
576
|
+
// source must not mask a valid later one (so `??` is not sufficient).
|
|
577
|
+
let reason;
|
|
578
|
+
for (const candidate of [
|
|
579
|
+
generationInfo?.finish_reason,
|
|
580
|
+
responseMetadata?.finish_reason,
|
|
581
|
+
message?.finish_reason,
|
|
582
|
+
messageKwargs?.finish_reason,
|
|
583
|
+
]) {
|
|
584
|
+
if (isString(candidate) && candidate.trim().length > 0) {
|
|
585
|
+
reason = normalizeFinishReason(candidate);
|
|
586
|
+
break;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
// Responses API derivation (no native finish_reason field).
|
|
590
|
+
if (!reason && message) {
|
|
591
|
+
reason = deriveResponsesFinishReason(message, responseMetadata);
|
|
592
|
+
}
|
|
593
|
+
// `gen_ai.response.finish_reasons` is positional and must correspond 1:1
|
|
594
|
+
// with the received generations. OTel string arrays cannot hold gaps, so
|
|
595
|
+
// if any generation lacks a valid reason, omit the attribute entirely
|
|
596
|
+
// rather than emit a compacted/misaligned array.
|
|
597
|
+
if (!reason)
|
|
598
|
+
return undefined;
|
|
599
|
+
reasons.push(reason);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
return reasons.length > 0 ? reasons : undefined;
|
|
603
|
+
}
|
|
604
|
+
// Map a provider-reported finish_reason string to the repo's GenAI
|
|
605
|
+
// `FinishReason` contract value. OpenAI Chat Completions reports the plural
|
|
606
|
+
// `finish_reason: "tool_calls"` (and the legacy `"function_call"`), but the
|
|
607
|
+
// shared contract value is `"tool_call"` (see `FinishReason`, matched by the
|
|
608
|
+
// Python distro's `messages.py`). Unrecognized values are passed through
|
|
609
|
+
// trimmed so legitimate reasons are not dropped.
|
|
610
|
+
const FINISH_REASON_ALIASES = {
|
|
611
|
+
stop: contracts_js_1.FinishReason.STOP,
|
|
612
|
+
length: contracts_js_1.FinishReason.LENGTH,
|
|
613
|
+
content_filter: contracts_js_1.FinishReason.CONTENT_FILTER,
|
|
614
|
+
tool_call: contracts_js_1.FinishReason.TOOL_CALL,
|
|
615
|
+
tool_calls: contracts_js_1.FinishReason.TOOL_CALL,
|
|
616
|
+
function_call: contracts_js_1.FinishReason.TOOL_CALL,
|
|
617
|
+
error: contracts_js_1.FinishReason.ERROR,
|
|
618
|
+
};
|
|
619
|
+
function normalizeFinishReason(value) {
|
|
620
|
+
const trimmed = value.trim();
|
|
621
|
+
return FINISH_REASON_ALIASES[trimmed.toLowerCase()] ?? trimmed;
|
|
622
|
+
}
|
|
623
|
+
// Map a Responses status/incomplete_details to a Chat-Completions-style reason.
|
|
624
|
+
function deriveResponsesFinishReason(message, responseMetadata) {
|
|
625
|
+
const status = responseMetadata?.status;
|
|
626
|
+
if (!isString(status))
|
|
627
|
+
return undefined;
|
|
628
|
+
switch (status) {
|
|
629
|
+
case "completed":
|
|
630
|
+
return messageHasToolCalls(message) ? contracts_js_1.FinishReason.TOOL_CALL : contracts_js_1.FinishReason.STOP;
|
|
631
|
+
case "incomplete": {
|
|
632
|
+
const incompleteDetails = responseMetadata?.incomplete_details;
|
|
633
|
+
const detailReason = incompleteDetails?.reason;
|
|
634
|
+
if (detailReason === "max_output_tokens")
|
|
635
|
+
return contracts_js_1.FinishReason.LENGTH;
|
|
636
|
+
if (detailReason === "content_filter")
|
|
637
|
+
return contracts_js_1.FinishReason.CONTENT_FILTER;
|
|
638
|
+
// No conformant mapping for this status; omit rather than emit a
|
|
639
|
+
// non-standard finish-reason value.
|
|
640
|
+
return undefined;
|
|
641
|
+
}
|
|
642
|
+
case "failed":
|
|
643
|
+
case "cancelled":
|
|
644
|
+
return contracts_js_1.FinishReason.ERROR;
|
|
645
|
+
default:
|
|
646
|
+
return undefined;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
// Any tool calls present, including malformed ones (invalid_tool_calls still
|
|
650
|
+
// count as a tool call, mapped to the "tool_call" contract value).
|
|
651
|
+
function messageHasToolCalls(message) {
|
|
652
|
+
for (const key of ["tool_calls", "invalid_tool_calls"]) {
|
|
653
|
+
const candidates = [
|
|
654
|
+
getNestedValue(message, key),
|
|
655
|
+
getNestedValue(message, "lc_kwargs", key),
|
|
656
|
+
getNestedValue(message, "kwargs", key),
|
|
657
|
+
];
|
|
658
|
+
if (candidates.some((calls) => Array.isArray(calls) && calls.length > 0))
|
|
659
|
+
return true;
|
|
660
|
+
}
|
|
661
|
+
return false;
|
|
662
|
+
}
|
|
663
|
+
// Set gen_ai.response.finish_reasons when any reason is available.
|
|
664
|
+
function setFinishReasonsAttribute(run, span) {
|
|
665
|
+
const finishReasons = getFinishReasons(run);
|
|
666
|
+
if (finishReasons) {
|
|
667
|
+
span.setAttribute(index_js_1.ATTR_GEN_AI_RESPONSE_FINISH_REASONS, finishReasons);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
546
670
|
// Provider
|
|
547
671
|
function setProviderNameAttribute(run, span) {
|
|
548
672
|
const provider = run.extra?.metadata?.ls_provider;
|