Skip to content

tracewayapp/traceway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

501 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Traceway Logo

Built on OpenTelemetry OpenTelemetry

OpenTelemetry-native observability. Open source. Self-hosted in 90 seconds.

OTel-First MIT License Self-Host

Website · Docs · Cloud


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.

Traceway Dashboard

What's in the box

  • 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.

Why Traceway

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

Quick Start

Self-host with Docker (recommended)

git clone https://github.com/tracewayapp/traceway
cd traceway && docker compose up -d
# ✓ dashboard at http://localhost

Point 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.

Embedded mode (inside your Go app)

Run Traceway inside your Go process — no Docker, no external databases, SQLite under the hood:

go get github.com/tracewayapp/traceway/backend
import 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.

Supported Integrations

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.

Backend

Gin
Gin
Chi
Chi
Fiber
Fiber
FastHTTP
FastHTTP
net/http
net/http
Go Generic
Go Generic
Node.js
Node.js
NestJS
NestJS
Hono
Hono
Symfony
Symfony
Cloudflare Workers
Cloudflare
OpenTelemetry
OpenTelemetry

Frontend

Session Replay is included with every frontend integration — and with Flutter too.

Next.js
Next.js
React
React
Vue
Vue
Svelte
Svelte
jQuery
jQuery
JavaScript
JavaScript

Mobile

Flutter
Flutter

AI

OpenRouter
OpenRouter

Screenshots

Logs — trace-linked search
Logs
Span waterfall
Spans
Metrics — application dashboard
Metrics
Exceptions — grouped & ranked
Exceptions

Tech Stack

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

Project Structure

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

Build Tags

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

Running Tests

# 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/

Documentation

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

Contribute

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.

Links