Skip to main content
LangSight uses two storage backends with distinct responsibilities. This page maps every feature to the backend(s) it requires so you can choose a deployment topology with confidence.

Quick summary

ModePostgreSQLClickHouseUse case
dual (default)RequiredRequiredProduction — all features available
postgresRequiredUser management, security scanning, alerts — no span analytics
clickhouseRequiredSpan analytics, sessions, costs — no user management
sqliteLocal evaluation only; not for production

Full feature matrix

Agent tracing & sessions

FeaturePostgreSQLClickHouseNotes
Ingest spans via SDKRequiredWritten to mcp_tool_calls
langsight sessions CLIRequiredAggregated from mv_agent_sessions
Sessions dashboard pageRequired
Session trace / call treeRequired
Session health tagsRequiredsuccess, loop_detected, budget_exceeded, etc.
Token & cost per sessionRequired
langsight costs CLIRequired
Costs dashboard pageRequired
Anomaly detectionRequiredUses mv_tool_reliability materialized view
Blast radius (lineage DAG)Required
Loop detection (runtime)In-process SDK check; no storage needed
Budget guardrails (runtime)In-process SDK check; no storage needed
Circuit breakerIn-process; Redis optional for multi-worker state sharing

MCP health monitoring

FeaturePostgreSQLClickHouseNotes
langsight mcp-health CLIRequiredHealth results stored in ClickHouse
Health dashboard pageRequired
Schema drift detectionEitherEitherschema_snapshots (Postgres/SQLite) or mcp_schema_snapshots (ClickHouse); whichever backend is active
Uptime / latency historyRequired
MCP server registry (config)RequiredServer metadata stored in PostgreSQL
Per-project server scopingRequired

Security scanning

FeaturePostgreSQLClickHouseNotes
langsight security-scan CLIRequiredReads server config from PostgreSQL
CVE scanning (OSV)Required
OWASP MCP Top 10 checksRequired
Tool poisoning / prompt injection detectionRequired
Auth configuration auditRequired
Security dashboard pageRequired

SLOs & alerting

FeaturePostgreSQLClickHouseNotes
SLO definitionsRequiredStored in agent_slos
SLO evaluationRequiredRequiredConfig from PostgreSQL; span stats from ClickHouse
Alert rulesRequired
Alert history & deduplicationRequired
Slack alertsRequiredConfig in PostgreSQL; payload built at runtime
Webhook alertsRequired
Live view (SSE)RequiredStream built from ClickHouse spans

User management & access control

FeaturePostgreSQLClickHouseNotes
User accountsRequiredusers table; passwords hashed with bcrypt
Invite flowRequiredinvite_tokens table
RBAC (admin / viewer)RequiredEnforced on all write endpoints
ProjectsRequiredprojects + project_members
API keys (admin / viewer scopes)RequiredSHA-256 hash stored; never plaintext
Login lockoutRequiredlogin_failures table; 5 failures → 15 min lockout
Audit logRequiredaudit_logs table

Dashboard & CLI infrastructure

FeaturePostgreSQLClickHouseNotes
Dashboard loginRequiredNextAuth session backed by PostgreSQL users
Model pricing configRequiredmodel_pricing table; editable in dashboard
OTLP span ingestion endpointRequired/api/traces/otlp
Prometheus metrics (/metrics)In-process counters; no storage
Liveness / readiness probes/api/liveness, /api/readiness

Choosing a topology

All features → dual (default)

storage:
  mode: dual
docker compose up -d
Both backends start automatically. No further config needed.

Metadata only (no tracing yet) → postgres

storage:
  mode: postgres
  postgres_url: postgresql://user:pass@localhost:5432/langsight
Available: users, projects, API keys, security scanning, alert config, schema drift. Not available: span ingestion, sessions, costs, anomaly detection, health history, live view. Switch to dual when ready — existing users and projects are preserved.

Analytics only (no auth yet) → clickhouse

storage:
  mode: clickhouse
  clickhouse_url: http://localhost:8123
  clickhouse_database: langsight
Available: span ingestion, sessions, costs, health checks, live view. Not available: user management, RBAC, API keys in DB, SLOs, alerts, security scanning.

Local evaluation → sqlite

storage:
  mode: sqlite
No Docker needed. Metadata features work. No span analytics.
SQLite is not supported for production. Use dual mode for any shared or persistent deployment.