Website · Docs · Go Client SDK
Traceway is a self-hosted observability platform that ingests OpenTelemetry traces and metrics, groups exceptions automatically, and gives you endpoint performance, distributed tracing, and alerts — all in a single binary. No OTel Collector or separate time-series database required.
It can run as a standalone server with ClickHouse + PostgreSQL, or embedded directly inside your Go application with SQLite for zero-infrastructure local development.
- OTel-Native — Accepts OTLP/HTTP traces and metrics directly, no Collector needed
- Embedded Mode — Run Traceway inside your Go process with SQLite, zero external dependencies
- Issue Tracking — Automatic exception grouping with normalized stack trace hashing and contextual tags
- Endpoint Performance — P50, P95, P99 latency percentiles with Apdex scoring and impact scores
- Distributed Tracing — Full request traces with span breakdowns
- Alerts & Notifications — Configurable rules (error rate, latency thresholds, Apdex drops, metric thresholds) with email, Slack, GitHub, and webhook delivery
- Session Replay — Replay user sessions to see exactly what happened before an error
- System Metrics — CPU, memory, goroutines, and GC monitoring with custom metric support
- Background Tasks — Track and monitor async job performance
- Multi-Tenant — Organization-based access control with owner, admin, user, and read-only roles
docker compose up --buildOpen http://localhost to access the dashboard.
See the self-hosting docs for configuration and deployment options.
Run Traceway inside your Go process — no Docker, no external databases:
go get github.com/tracewayapp/traceway/backendimport tracewaybackend "github.com/tracewayapp/traceway/backend"
func main() {
go tracewaybackend.Run(
tracewaybackend.WithPort(8082),
tracewaybackend.WithDefaultUser("admin@localhost.com", "admin"),
tracewaybackend.WithDefaultProject("My App", "go", "dev-token"),
)
// ... start your app, point OTel exporter to http://localhost:8082/api/otel/v1/traces
}Open http://localhost:8082, log in, and hit your app to see traces appear.
See the embedded mode guide for the full step-by-step setup with OpenTelemetry, or check the working example.
| Component | Technology |
|---|---|
| Backend | Go 1.25, Gin |
| Frontend | SvelteKit 2, Svelte 5, Tailwind CSS v4 |
| Telemetry DB | ClickHouse (standalone) or SQLite (embedded) |
| Relational DB | PostgreSQL (standalone) or SQLite (embedded) |
| Client SDKs | Go, OpenTelemetry (any language) |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Directory | Description |
|---|---|
backend/ |
Go/Gin API server — telemetry ingestion, REST API, notifications, migrations |
frontend/ |
SvelteKit 2 dashboard SPA |
docs/ |
Documentation site (Nextra) |
examples/ |
Working examples for embedded mode (OTel, Go client) |
website/ |
Landing page |
| Tag | Purpose |
|---|---|
| (none) | SQLite storage — embedded mode, zero dependencies. This is the default. |
pgch |
ClickHouse + PostgreSQL storage — standalone server mode. |
localdist |
Embeds frontend from static/dist/ instead of static/frontend/. Used by traceway-cloud to inject billing UI. |
# Embedded mode (SQLite, default)
cd backend && go build ./cmd/traceway
# Standalone server (ClickHouse + PostgreSQL)
cd backend && go build -tags pgch ./cmd/traceway# SQLite tests (default, no tags needed)
cd backend && go test -v -count=1 ./app/repositories/
# ClickHouse + PostgreSQL tests (requires Docker)
./scripts/test-backend-pgch.shFull documentation at docs.tracewayapp.com:
- Client SDKs — Go, Node.js, and OpenTelemetry integration guides
- Self-Hosting — Docker Compose and deployment options
- Concepts — How tracing, exception grouping, metrics, and alerts work
- Embedded Mode — Run Traceway inside your Go app





