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"])