The Problem

Known conflicts arise when multiple observability solutions use the same OpenInference instrumentation.

Common Conflict Scenarios

This issue can occur when using Atla alongside:
  • Langfuse (with their OpenInference setup)
  • Weights & Biases (when using their OpenInference instrumentation)
  • Other tools using openinference.instrumentation.* packages for instrumentation

Affected Instrumentations

The following Atla instrumentations are built on OpenInference and can conflict: LLM Providers:
  • Anthropic
  • OpenAI
  • Bedrock
  • Google GenAI
Frameworks:
  • Agno
  • SmolAgents
  • CrewAI
  • LangChain
  • OpenAI Agents
  • MCP (Model Context Protocol)

For Langfuse Users

Switch to Langfuse’s OpenLIT instrumentation, which is their current recommended approach and avoids conflicts with Atla.

Old Langfuse Setup (causes conflicts)

# ❌ This approach causes conflicts with Atla
from openinference.instrumentation.agno import AgnoInstrumentor
from opentelemetry import trace as trace_api
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor

LANGFUSE_AUTH = base64.b64encode(
    f"{os.getenv('LANGFUSE_PUBLIC_KEY_AGENTIC')}:{os.getenv('LANGFUSE_SECRET_KEY_AGENTIC')}".encode()
).decode()

os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://cloud.langfuse.com/api/public/otel"
os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Basic {LANGFUSE_AUTH}"

tracer_provider = TracerProvider()
tracer_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter()))
trace_api.set_tracer_provider(tracer_provider=tracer_provider)

# This conflicts with Atla's AgnoInstrumentor
AgnoInstrumentor().instrument()
# ✅ Use Langfuse's OpenLIT instrumentation instead
import os
from langfuse import get_client
import openlit

# Configure Langfuse
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com"  # 🇪🇺 EU region

langfuse = get_client()

# Initialize OpenLIT instrumentation
openlit.init(tracer=langfuse._otel_tracer, disable_batch=True)

For Other Observability Solutions

If you’re using other observability solutions that conflict with Atla:
  1. Check if your tool has an alternative instrumentation method that doesn’t use OpenInference
  2. Use only one observability solution for the same frameworks/LLM providers
  3. Configure different instrumentation scopes if your tool supports it

Need Help?

If you’re still experiencing conflicts:
  • Join our Discord for quick support
  • Schedule a call to walk through your specific setup
  • Check your observability tool’s documentation for their recommended instrumentation approach