You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HTTP server/client, gRPC, database/sql middleware out of the box
🔗
Context Propagation
Seamless trace context across HTTP, gRPC, and Kafka boundaries
🎯
Adaptive Sampling
Errors and slow requests always captured, hash-based consistent sampling per trace
🚀
Batch Async Export
SDK buffers spans and sends via gRPC in configurable batches
💾
ClickHouse Storage
Column-oriented storage with automatic TTL, materialized views for aggregation
🔍
Query API
Search traces, service topology, latency/throughput statistics via REST
📦
Lightweight SDK
Based on context.Context, zero-config defaults, defer pattern for span lifecycle
📊
Web UI
Built-in dark-themed dashboard with trace search, waterfall timeline, service topology, and statistics
Quick Start
Docker Compose (recommended)
# Start ClickHouse + Redis + Collector + Querycd deploy && docker compose up -d
# Verify services are running
curl http://localhost:28080/health
# Open Web UI
open http://localhost:28080
From Source
# Build (frontend + Go binaries)
make all
# Or build separately
make web # Build frontend
make build # Build Go binaries (embeds frontend via go:embed)# Run Collector (requires ClickHouse + Redis)
./bin/prism-collector -listen=:24317 -clickhouse=localhost:29000 -redis=localhost:26379
# Run Query Server (serves API + Web UI)
./bin/prism-query -listen=:28080 -clickhouse=localhost:29000
Try It Out
# Run the example microservices demo
go run ./examples/microservices/
# Send a request through the call chain
curl http://localhost:8081/api/orders/123
# Search traces via Query API
curl http://localhost:28080/api/v1/traces | jq .# Get service list with stats
curl http://localhost:28080/api/v1/services | jq .# View service dependency topology
curl http://localhost:28080/api/v1/dependencies | jq .
make all # Build everything (proto + frontend + binaries)
make web # Build frontend only
make build # Build collector + query binaries
make test# Run tests
make lint # Run linter
make proto # Regenerate protobuf code
make docker-up # Start docker-compose stack
make docker-down # Stop docker-compose stack
make deps # Run go mod tidy + npm install
# 启动 ClickHouse + Redis + Collector + Querycd deploy && docker compose up -d
# 验证服务运行
curl http://localhost:28080/health
# 打开 Web UI
open http://localhost:28080
从源码构建
# 编译(前端 + Go 二进制)
make all
# 或分步编译
make web # 编译前端
make build # 编译 Go 二进制(通过 go:embed 内嵌前端)# 运行 Collector(需要 ClickHouse + Redis)
./bin/prism-collector -listen=:24317 -clickhouse=localhost:29000 -redis=localhost:26379
# 运行 Query 服务(同时提供 API + Web UI)
./bin/prism-query -listen=:28080 -clickhouse=localhost:29000
make all # 编译所有(proto + 前端 + 二进制)
make web # 仅编译前端
make build # 编译 collector + query 二进制
make test# 运行测试
make lint # 代码检查
make proto # 重新生成 protobuf 代码
make docker-up # 启动 docker-compose
make docker-down # 停止 docker-compose
make deps # 整理依赖 (go mod tidy + npm install)