Haystack
Describes how to track Haystack pipeline runs using Opik
Haystack is an open-source framework for building production-ready LLM applications, retrieval-augmented generative pipelines and state-of-the-art search systems that work intelligently over large document collections.
Opik integrates with Haystack to log traces for all Haystack pipelines.
Getting started
First, ensure you have both opik
and haystack-ai
installed:
In addition, you can configure Opik using the opik configure
command which will prompt you for the correct local server address or if you are using the Cloud platform your API key:
Logging Haystack pipeline runs
To log a Haystack pipeline run, you can use the OpikConnector
. This connector will log the pipeline run to the Opik platform and add a tracer
key to the pipeline run response with the trace ID:
Each pipeline run will now be logged to the Opik platform:

In order to ensure the traces are correctly logged, make sure you set the environment variable HAYSTACK_CONTENT_TRACING_ENABLED
to true
before running the pipeline.
Advanced usage
Disabling automatic flushing of traces
By default the OpikConnector
will flush the trace to the Opik platform after each component in a thread blocking way. As a result, you may want to disable flushing the data after each component by setting the HAYSTACK_OPIK_ENFORCE_FLUSH
environent variable to false
.
In order to make sure that all traces are logged to the Opik platform before you exit a script, you can use the flush
method:
Disabling this feature may result in data loss if the program crashes before the data is sent to Opik. Make sure you will call the flush()
method explicitly before the program exits.
Updating logged traces
The OpikConnector
returns the logged trace ID in the pipeline run response. You can use this ID to update the trace with feedback scores or other metadata: