> For the complete documentation index, see [llms.txt](https://docs.layerlens.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.layerlens.ai/6.-build-wire-your-code/instrument-haystack.md).

# Instrument Haystack

Recipe — instrument a Haystack pipeline using manual trace upload.

{% hint style="warning" %}
**Private preview.** This surface is not yet generally available. Adapters live in the Python SDK today and the rendering / configuration UX is under iteration. Contact <support@layerlens.ai> to request access to the private preview.
{% endhint %}

**When to use:** Haystack pipeline (RAG, search) and you want traces in Stratix.

The Stratix SDK does not currently ship a dedicated Haystack adapter. Use manual trace upload after each pipeline run.

```python
import json, uuid
from pathlib import Path
from layerlens import Stratix
client = Stratix()

# Run your Haystack pipeline
result = pipeline.run({"text_embedder": {"text": query}, "prompt_builder": {"query": query}})

# Build a trace record (data is flexible Dict[str, Any])
trace_record = {
 "id": str(uuid.uuid4()),
 "input": query,
 "output": result["llm"]["replies"][0] if "llm" in result else None,
 "data": {
 "haystack_pipeline_outputs": result,
 },
}

Path("haystack_trace.jsonl").write_text(json.dumps(trace_record))
client.traces.upload("haystack_trace.jsonl")
```

## See also

* [Workflow: Instrument](/6.-build-wire-your-code/workflow.md)
* [Integrations](/6.-build-wire-your-code/migration.md)
* [SDK reference: traces](https://github.com/LayerLens/gitbook-full/blob/main/13-reference/sdk-python/traces.md)
