OpenTelemetry
Sending OTEL Traces from Python
How to use OpenTelemetry Python SDK to export traces to Lunary.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
How to use OpenTelemetry Python SDK to export traces to Lunary.
pip install opentelemetry-sdk opentelemetry-exporter-otlp
import os
os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://api.lunary.ai/v1/otel"
os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Bearer {os.environ['LUNARY_PUBLIC_KEY']}"
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry import trace
trace.set_tracer_provider(TracerProvider())
tracer = trace.get_tracer(__name__)
exporter = OTLPSpanExporter()
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(exporter))
with tracer.start_as_current_span("My LLM Call") as span:
# Attach GenAI-related context
span.set_attribute("gen_ai.request.model", "gpt-4.1")
span.set_attribute("gen_ai.prompt.0.content", "Hello, LLM world!")
span.set_attribute("gen_ai.usage.prompt_tokens", 25)
# Call your LLM/model here
span.set_attribute("lunary.user.id", "user-123")
span.set_attribute("lunary.tags", ["my-experiment", "beta"])