@arizeai/openinference-instrumentation-langchain-v0
v0.0.9
Published
OpenInference Instrumentation for LangChain.js Version 0.X
Downloads
491
Keywords
Readme
OpenInference Instrumentation for LangChain.js Version 0.X
This module provides automatic instrumentation for LangChain.js. which may be used in conjunction with @opentelemetry/sdk-trace-node.
Installation
npm install --save @arizeai/openinference-instrumentation-langchain-v0Usage
To load the Langchain instrumentation, manually instrument the @langchain/core/callbacks/manager module. The callbacks manager must be manually instrumented due to the non-traditional module structure in @langchain/core. Additional instrumentations can be registered as usual using the registerInstrumentations function.
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { LangChainInstrumentation } from "@arizeai/openinference-instrumentation-langchain-v0";
import * as CallbackManagerModule from "@langchain/core/callbacks/manager";
const provider = new NodeTracerProvider();
provider.register();
const lcInstrumentation = new LangChainInstrumentation();
// LangChain must be manually instrumented as it doesn't have a traditional module structure
lcInstrumentation.manuallyInstrument(CallbackManagerModule);For more information on OpenTelemetry Node.js SDK, see the OpenTelemetry Node.js SDK documentation.
Using a Custom Tracer Provider
You can specify a custom tracer provider when creating the LangChain instrumentation. This is useful when you want to use a non-global tracer provider or have more control over the tracing configuration.
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { Resource } from "@opentelemetry/resources";
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
import { LangChainInstrumentation } from "@arizeai/openinference-instrumentation-langchain-v0";
import * as CallbackManagerModule from "@langchain/core/callbacks/manager";
// Create a custom tracer provider
const customTracerProvider = new NodeTracerProvider({
resource: new Resource({
[SEMRESATTRS_PROJECT_NAME]: "my-langchain-project",
}),
});
// Pass the custom tracer provider to the instrumentation
const lcInstrumentation = new LangChainInstrumentation({
tracerProvider: customTracerProvider,
});
// Manually instrument the LangChain module
lcInstrumentation.manuallyInstrument(CallbackManagerModule);Alternatively, you can set the tracer provider after creating the instrumentation:
const lcInstrumentation = new LangChainInstrumentation();
lcInstrumentation.setTracerProvider(customTracerProvider);Deprecations
LangChain v0.1 was deprecated on 2025-03-02 due to security vulerabilities in the core package.
