Auto-instrument every FAISS index operation, search, add, and batch queries, with zero code changes. FAISS spans integrate as child spans inside LangChain traces for complete in-memory RAG pipeline observability.
Free tier · No credit card · 2-minute setup
Every index.search() call is a traced span with the number of query vectors, k value, index type, and end-to-end latency for profiling in-memory search performance.
index.add() and index.add_with_ids() are traced with vector counts and timing, measure ingestion throughput as your index grows.
FAISS spans appear as children inside LangChain traces, see how in-memory retrieval latency compares to LLM call time in your RAG pipeline.
import fluiq
fluiq.instrument(api_key="fl_...") # patches FAISS index operations
import faiss
import numpy as np
dimension = 1536 # text-embedding-3-small output size
index = faiss.IndexFlatL2(dimension)
# Add is traced with vector count and timing:
embeddings = np.random.rand(1000, dimension).astype("float32")
index.add(embeddings)
# Search is traced with k, latency, and index type:
query = np.random.rand(1, dimension).astype("float32")
distances, indices = index.search(query, k=5)Every call to these methods is automatically traced, no decorators, no wrappers, no manual spans.
IndexFlat.search() and subclassesIndexFlat.add() / add_with_ids()IndexIVF.search() / train()IndexHNSWFlat.search()IndexIVFPQ.search()faiss.write_index() / read_index()Free tier. No credit card. Full traces, security scanning, and evals on your first FAISS call.
50,000 free traces / month · 1,000 evals / month · 14-day retention