RAG observability

Know what your RAG pipeline is actually doing

Obsyn traces every retrieval, score, and generation — so "why did it hallucinate?" becomes a five-minute investigation instead of a research project.

Free tier · no credit card · first trace in 60 seconds

trace · support-rag · prod
98.4
trace_7f3a92782ms total
query.rewrite
12ms
retrieve.pinecone
84ms
rerank.cohere
46ms
generate.gpt-4o
640ms
✓ groundedp50 742ms1,204 tokens$0.0041
0M+spans traced daily
0msmedian trace latency
0.0%avg grounding score
0stime-to-first-trace

Built for production RAG

Everything between the query and the answer

Full-trace retrieval

See every chunk retrieved, its embedding score, and whether the right document won the vector match.

Quality scoring

Faithfulness and relevance scored per response, trended over time, alerted when they slip.

Vector store insights

Cluster drift, dead indexes, and stale embeddings surfaced before they poison answers.

Anomaly detection

Latency spikes, context overflow, and failure clusters classified automatically — not by you.

Instrument once

Two lines. Every span.

Wrap any function — retrievers, rerankers, LLM calls, tools. Obsyn builds the full execution tree automatically: query rewrites, chunk scores, rendered prompts, token costs, everything.

  • Framework-agnostic — LangChain, LlamaIndex, raw SDKs
  • OpenTelemetry-native export
  • Zero-config sampling and PII redaction
from obsyn import observe

@observe()
def answer(question: str):
    chunks = retriever.retrieve(question)
    llm.complete(prompt, chunks)

Your next hallucination is already in the data

Start tracing today. Find out what your retriever is really doing before your users tell you.