Traceway is an OpenTelemetry-native observability platform that stitches logs, traces, metrics, session replay, exceptions, and AI tracing together with one trace ID. Point an OTLP exporter at it and you're in business — no Collector, no glue code, no per-language vendor SDK.
MIT licensed. No BSL. No "open core." Every feature is in the box. Self-host it for free, or run it on Traceway Cloud if you'd rather not babysit infra.
- Logs — Structured, trace-linked, sub-second search. Native OTLP/HTTP ingest from any OTel SDK.
- Traces — End-to-end span waterfalls across every service. Click a log, jump to its span.
- Metrics — Host, runtime, and custom metrics. Any dimension, any chart, with custom widget groups.
- Exceptions — SHA-256 normalized stack traces grouped into ranked issues. Source-mapped (webpack, esbuild, Vite).
- Session Replay — Watch what the user did right before the error. Available for web (any JS framework) and Flutter.
- AI Observability — LLM cost, tokens, latency, and full conversations across providers (OpenRouter and any OTel-compatible AI gateway).
Plus: configurable alerts (Slack / GitHub / email / webhook), Apdex + Impact-Score endpoint ranking, multi-tenant orgs with role-based access, and a per-endpoint slow-threshold override.
| Enterprise (Datadog / New Relic) | DIY OSS stack (Prometheus + Loki + Tempo + ...) | Traceway | |
|---|---|---|---|
| Pricing | Per-event, per-host, per-seat | Free + ops time | Self-host free, fixed cloud tiers |
| Setup | Vendor SDK per language | Glue 6 tools together | docker compose up -d |
| License | Proprietary | Mixed (some BSL / open-core) | MIT — no asterisks |
| OTel | Wrapped in vendor SDK | OTel Collector required | Native OTLP/HTTP ingest |
| Replay + traces + AI | 3 separate products | Wire it yourself | One system, one trace ID |
git clone https://github.com/tracewayapp/traceway
cd traceway && docker compose up -d
# ✓ dashboard at http://localhostPoint any OTel SDK at http://localhost/api/otel/v1/traces (or /metrics, /logs) and traces start flowing. See the self-hosting docs for production deployment, TLS, and storage configuration.
Run Traceway inside your Go process — no Docker, no external databases, SQLite under the hood:
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 its OTel exporter to http://localhost:8082/api/otel/v1/traces
}Open http://localhost:8082, log in, and hit your app to see traces appear. Full walkthrough in the embedded mode guide, or check the working example.
Traceway integrates with the tools you already use. Every integration ships traces, metrics, and logs over OTLP/HTTP — no proprietary SDK required.
View the full list in the documentation. Missing a framework? Open an issue to request it.
Gin |
Chi |
Fiber |
FastHTTP |
net/http |
Go Generic |
Node.js |
NestJS |
Hono |
Symfony |
Cloudflare |
OpenTelemetry |
Session Replay is included with every frontend integration — and with Flutter too.
Next.js |
React |
Vue |
Svelte |
jQuery |
JavaScript |
Flutter |
OpenRouter |
Logs — trace-linked search![]() |
Span waterfall![]() |
Metrics — application dashboard![]() |
Exceptions — grouped & ranked![]() |
| 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) |
| Ingest | OTLP/HTTP (Protobuf + JSON) for traces, metrics, logs |
| Directory | Description |
|---|---|
backend/ |
Go/Gin API server — OTLP ingest, REST API, notifications, migrations |
frontend/ |
SvelteKit 2 dashboard SPA |
docs/ |
Documentation site (Nextra) |
examples/ |
Working examples — embedded mode and OTel-instrumented apps (Express, NestJS, Next.js, Hono) |
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.sh
# OTEL trace converter tests (no DB required)
cd backend && go test -v -count=1 ./app/controllers/otelcontrollers/
# Update OTEL golden files after intentional converter changes
cd backend && go test -v -count=1 -args -update ./app/controllers/otelcontrollers/Full documentation at docs.tracewayapp.com:
- Client SDKs — OpenTelemetry, Go, Node.js, Python, and more
- Self-Hosting — Docker Compose and production deployment
- Concepts — How tracing, exception grouping, metrics, and alerts work
- Embedded Mode — Run Traceway inside your Go app
Contributions are welcome — pull requests get reviewed and merged. If you're not sure where to start or want to discuss an idea first, open an issue and we'll talk it through.
- Website
- Documentation
- Traceway Cloud — managed hosting (same MIT code, run by us)




