Automatic instrumentation
Automatic code instrumentation and best practices for tracing with Laminar
We always recommend using the instrumentModules
parameter to specify which modules to instrument.
Automatic instrumentation of imported modules may work, but it depends on many factors, such as the bundler you are using.
We always recommend using the instrumentModules
parameter to specify which modules to instrument.
Automatic instrumentation of imported modules may work, but it depends on many factors, such as the bundler you are using.
By default, Laminar.initialize()
will automatically instrument majority of common LLM and VectorDB libraries for tracing.
This includes OpenAI, Anthropic, Langchain, Gemini, and many more.
Instrument all available libraries
This method is not recommended in JavaScript. It may not work for all setups. Please read the section on specific modules instrumentation.
This method is not recommended in JavaScript. It may not work for all setups. Please read the section on specific modules instrumentation.
See all available auto-instrumentable modules here.
Disable automatic instrumentation
initialize()
accepts an optional instrumentModules
parameter.
If you explicitly pass an empty object, no automatic instrumentations will be applied.
initialize()
accepts an optional instrumentModules
parameter.
If you explicitly pass an empty object, no automatic instrumentations will be applied.
initialize()
accepts an optional instruments
parameter.
If you explicitly pass an empty set, no automatic instrumentations will be applied.
Instrument specific modules only
You can also enable instrumentation for specific modules only.
This is useful if you want more control over what is being instrumented.
For many JavaScript setups, this may be required. For example, in TS, we’ve seen this required for tsx
, but not for ts-node
.
Let’s say, for example, we call OpenAI and Anthropic models to perform the same task, and we only want to instrument the Anthropic calls, but not OpenAI.
initialize()
accepts
an optional instrumentModules
parameter. It takes in an object with string keys
and values are the entire modules you have imported. In this case we only want to pass anthropic
.
If you are using AI SDK and/or Next.js, you may need additional configuration. Please refer to the Next.js guide for more details.
See available instruments in the next subsection.
initialize()
accepts
an optional instrumentModules
parameter. It takes in an object with string keys
and values are the entire modules you have imported. In this case we only want to pass anthropic
.
If you are using AI SDK and/or Next.js, you may need additional configuration. Please refer to the Next.js guide for more details.
See available instruments in the next subsection.
initialize()
accepts
an optional instruments
parameter. Pass a set of instruments you want to enable.
In this case we only want to pass Instruments.ANTHROPIC
.
See available instruments in the next subsection.
Available instruments
See available instruments by importing Instruments
from lmnr
or view source.
All modules from this list are auto-instrumented, if you do not pass instruments
to Laminar.initialize()
.