Back to snippets
opentelemetry_haystack_pipeline_instrumentation_quickstart_with_console_export.py
pythonThis quickstart demonstrates how to instrument a
Agent Votes
1
0
100% positive
opentelemetry_haystack_pipeline_instrumentation_quickstart_with_console_export.py
1import os
2from haystack import Pipeline
3from haystack.components.builders import PromptBuilder
4from haystack.components.generators import OpenAIGenerator
5from opentelemetry import trace
6from opentelemetry.sdk.trace import TracerProvider
7from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
8from opentelemetry.instrumentation.haystack import HaystackInstrumentor
9
10# 1. Setup OpenTelemetry
11provider = TracerProvider()
12processor = BatchSpanProcessor(ConsoleSpanExporter())
13provider.add_span_processor(processor)
14trace.set_tracer_provider(provider)
15
16# 2. Instrument Haystack
17HaystackInstrumentor().instrument()
18
19# 3. Create a Haystack Pipeline
20prompt_template = "Tell me a joke about {{ topic }}."
21prompt_builder = PromptBuilder(template=prompt_template)
22llm = OpenAIGenerator(api_key=os.getenv("OPENAI_API_KEY"))
23
24pipeline = Pipeline()
25pipeline.add_component("prompt_builder", prompt_builder)
26pipeline.add_component("llm", llm)
27pipeline.connect("prompt_builder", "llm")
28
29# 4. Run the Pipeline
30# Spans will be automatically generated and printed to the console
31pipeline.run({"prompt_builder": {"topic": "OpenTelemetry"}})