🚀 Want to test your workload? Get a free SigNoz instance on ObsessionDB. Reach out hi@obsessiondb.com
Run SigNoz on scale with ObsessionDB or Clickhouse Cloud.
Quick Start
# 1. Configure connection cp .env.example .env # Edit .env with your ObsessionDB/ClickHouse Cloud credentials # 2. Start services docker compose up -d # 3. Open UI open http://localhost:8081
Send Telemetry
# OTLP gRPC export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 # OTLP HTTP curl -X POST http://localhost:4318/v1/traces -H "Content-Type: application/json" -d @trace.json
Architecture
Your Applications (OpenTelemetry instrumented)
│
▼ OTLP
┌───────────────────────────────┐
│ OTEL Collector │ localhost:4317 (gRPC)
│ Batches & exports │ localhost:4318 (HTTP)
└───────────────┬───────────────┘
│ Native TCP (port 9440)
▼
┌───────────────────────────────┐
│ ObsessionDB / ClickHouse │
│ SharedMergeTree tables │
│ - distributed_logs_v2 │
│ - distributed_signoz_spans │
│ - distributed_samples_v4 │
└───────────────▲───────────────┘
│ Native TCP
│
┌───────────────┴───────────────┐
│ SigNoz Query Service │ localhost:8081
│ UI + API │
└───────────────────────────────┘
How It Works
SigNoz expects a sharded ClickHouse cluster with local + distributed tables. SharedMergeTree (ObsessionDB/ClickHouse Cloud) doesn't use this sharding.
We forked the signoz-otel-collector schema-migrator that creates:
distributed_*tables as SharedMergeTree (OTEL writes here)- Local table names as VIEWs pointing to distributed tables (SigNoz reads here)
Components
| Component | Image | Purpose |
|---|---|---|
| signoz | signoz/signoz |
Query service + UI |
| schema-migrator | ghcr.io/obsessiondb/signoz-schema-migrator |
Creates tables + VIEWs |
| otel-collector | signoz/signoz-otel-collector |
Receives telemetry |
Configuration
See .env.example for connection settings.
Links
- ObsessionDB - Managed SharedMergeTree
- SigNoz - Open source observability
- Schema Migrator Fork - SharedMergeTree support
License
Apache 2.0