traceway is a free, open source monitoring & observability project written in Go and released under MIT. It has 1,753 GitHub stars, 92 forks and 22 open issues, and was last pushed 17 hours ago. On this registry it ranks #184 of 270 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 162 stars over the last 30 tracked days.

What is traceway?

Traceway is an OpenTelemetry-native, MIT-licensed observability platform that combines logs, traces, metrics, session replay, exceptions, AI tracing, and on-call paging in one place, and it is built for engineering teams that want production telemetry without per-language vendor SDKs, a Collector, or glue code.

What it is

Traceway is a single observability platform written in Go and released under the MIT licence. It ingests telemetry over OTLP/HTTP from any OpenTelemetry SDK, then presents it as trace-linked logs, end-to-end span waterfalls, per-route endpoint statistics, host and runtime metrics, normalized exception issues, session replay for web and Flutter, AI conversation analytics, and on-call rotations with escalation policies. Everything ships in the same repository and the same box: the project states there is no BSL and no "open core" edition, so features are not held back behind a commercial tier. It can be self-hosted, or run on Traceway Cloud for teams that would rather not operate the infrastructure.

The problem it solves is the assembly work that normally sits between an application and usable telemetry. In the OpenTelemetry ecosystem, that work usually means running an OpenTelemetry Collector, deploying a separate per-language vendor SDK, and writing glue code to tie logs to traces and traces to alerts. Traceway replaces that Collector-and-vendor-SDK arrangement: an OTLP exporter is pointed at the instance and data arrives, with logs linked to spans and exceptions resolved to original source locations on arrival.

Key capabilities

  • Native OTLP/HTTP ingest from any OpenTelemetry SDK for structured, trace-linked logs with sub-second search.
  • Endpoint analytics with P50/P95/P99 latency percentiles, throughput, and error rate, ranked by Apdex and a five-factor impact score.
  • Exception grouping that normalizes stack traces, assigns each a SHA-256 fingerprint, and source-maps minified output from webpack, esbuild, and Vite.
  • Profiling (marked experimental) with flame graphs for CPU, heap, and goroutines, version-to-version diffing, and ingest of native Go pprof and OTLP profiles.
  • AI observability for LLM cost, tokens, and latency across providers such as OpenRouter and any OTel-compatible gateway, grouping calls into conversations by gen_ai.conversation.id and keying per-customer analytics on user.id.
  • On-call paging with layered rotation schedules, overrides, escalation policies, and one-click acknowledge links delivered over email, Slack, Pushover, Telegram, or SMS.
  • Fleet Overview, one organization-wide page above every project showing live CPU, memory, disk, and network per instance, with Kubernetes nodes grouped by cluster and whole-cluster instrumentation through a single kubectl apply.

Who uses it and how

  • Platform and infrastructure teams running Kubernetes, where one kubectl apply instruments an entire cluster and node health appears grouped by cluster in Fleet Overview.
  • Multi-tenant organizations that need role-based access separated per org, with monitors, issues, and open pages aggregated above individual projects.
  • On-call teams that need pages to escalate until acknowledged, using email, Slack, Pushover, Telegram, or SMS plus login-free acknowledge links.
  • Frontend and mobile teams that need session replay for any JS framework or Flutter, so the interaction immediately preceding an error is visible alongside the stack trace.
  • AI and agent workflows: npx skills add tracewayapp/traceway installs /traceway-setup and /traceway into Claude Code, Cursor, Codex, or any agent reading SKILL.md, and the traceway CLI queries exceptions, logs, endpoints, and metrics with JSON when piped and tables on a TTY.

Getting started

The README describes self-hosting in 90 seconds: point an OTLP exporter at the instance and the platform is in business, or use the hosted Traceway Cloud option at cloud.tracewayapp.com. For agent-driven setup, run npx skills add tracewayapp/traceway, or install the traceway CLI, which is read-only apart from archiving exceptions and requires an explicit --yes for that action.

How it compares

The facts provided do not name any paid products this project replaces, and no comparable tools are named in the topic list or README. Traceway stands alone in this registry on the evidence given.

When to use it — and when not to

Adopt it if a team wants OpenTelemetry-native logs, traces, metrics, exception tracking, and paging behind one OTLP endpoint under a permissive MIT licence. The honest caveats are that profiling is explicitly experimental, the README excerpt cuts off mid-sentence in its symbolication section, and the provided facts name no required database, object storage, or SMTP infrastructure, so the operational footprint of a self-hosted deployment cannot be assessed from this material alone. Teams that need managed support commitments or have already standardized on a commercial vendor's agents rather than OTLP should look elsewhere.

project readme (upstream, from github) — read inline

Built on OpenTelemetry

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

OTel-First MIT License Self-Host Join us on Discord

Website · Docs · Cloud · Discord


Traceway is an OpenTelemetry-native observability platform. It combines logs, traces, metrics, session replay/RUM, exceptions, AI tracing, and on-call paging in one place. 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.

👋 Join the Traceway Community on Discord →
Chat with the team, shape the roadmap, get help, and meet other folks running Traceway in production.

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.
  • Endpoints: Per-route latency percentiles (P50/P95/P99), throughput, and error rate, ranked by Apdex and a 5-factor impact score.
  • Metrics: Host, runtime, and custom metrics. Any dimension, any chart, with custom widget groups.
  • Exceptions: Stack traces are normalized, given a SHA-256 fingerprint, and grouped into ranked issues. Source-mapped (webpack, esbuild, Vite).
  • Profiling (experimental): Flame graphs for CPU, heap, and goroutines with version-to-version diffing and a top-functions table. Ingests native Go pprof and OTLP profiles.
  • 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). Calls group into conversations via gen_ai.conversation.id, tool calls are parsed from completions and rendered in the chat view, and multi-language content flagging catches conversations containing terms you care about. Per-customer analytics (conversation length, cost per conversation) key on user.id: set it to a stable customer identifier such as your account or tenant id, the same value across all of that user's conversations, never a session id.
  • On-Call & Paging: Rotation schedules with layers and overrides, escalation policies, and pages that escalate until someone acknowledges. Delivered via email, Slack, Pushover, Telegram, or SMS, with one-click acknowledge links that need no login.
  • Fleet Overview: One organization-wide page above every project: each reporting instance with live CPU, memory, disk and network, plus issues, monitors and open pages across all projects. Kubernetes nodes group by cluster, and a single kubectl apply instruments a whole cluster.

Plus: background-task (job) monitoring, configurable alerts (Slack / GitHub / email / webhook / Pushover / Telegram), multi-tenant orgs with role-based access, and a per-endpoint slow-threshold override.

AI-First

Your agent sets up Traceway, queries production telemetry, and finds the root cause:

npx skills add tracewayapp/traceway

One command installs two skills into Claude Code, Cursor, Codex, or any agent that reads SKILL.md:

  • /traceway-setup reads your repo and wires it up: OTel for backends, Traceway SDKs for web and mobile. Then it verifies data actually arrives.
  • /traceway installs the traceway CLI and uses it to query exceptions, logs, endpoints, and metrics, from bug report to root cause.

The CLI is designed for agents first: JSON when piped, tables on a TTY, stable error identifiers and exit codes, --fields to trim responses. It's read-only apart from archiving exceptions, which needs an explicit --yes. Nothing hangs, nothing gets damaged.

The skills are plain Markdown in skills/, in the same MIT-licensed repo. No marketplace, no lock-in. Learn more →

Symbolication

app.min.js:1:63 tells you nothing. Traceway resolves minified production errors back to the original file, line, and function the moment they arrive. The same engine handles stripped and obfuscated mobile crashes: iOS and Swift against the build's dSYM, Android against its R8 mapping.txt, Dart and Flutter against their obfuscation map.

The symbolicator is pure Go and built to keep up with ingest. Every debug artifact (a source map, a dSYM, an R8 mapping) compiles once into a binary .tw file and is memory-mapped from disk. Opening a compiled map takes under a microsecond, p99 lookup stays under a millisecond on a cold cache, and no map is re-parsed after a restart. The corpus is a disk budget, not a RAM budget.

The same engine ships as a standalone OpenTelemetry Collector processor, drop-in compatible with Honeycomb's source_map_symbolicator: same component type, same attribute contract, same config keys. Use it in your own pipeline, with or without Traceway behind it.

Upload source maps from CI with npx traceway-sourcemaps --directory ./dist; dSYMs and R8 mappings post to the same endpoint. Benchmarks live in benchmarks/; run them on your fork. Learn more →

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.

Prefer a single container with no external databases? The SQLite image is the smallest deployment. The DuckDB image keeps the same zero-dependency setup but adds a columnar telemetry store for far more dashboard headroom. Run either with docker compose -f docker-compose.sqlite.yml up -d or -f docker-compose.duckdb.yml.

Docker images are cryptographically signed with Cosign.

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", "opentelemetry", "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 examples (OTel exporter or Go client SDK).

Supported Integrations

Traceway integrates with the tools you already use. Backends report over OTLP/HTTP, so any OpenTelemetry SDK works. Browser and mobile apps use the Traceway SDKs.

View the full list in the documentation. Missing a framework? Open an issue to request it.

Backend

OpenTelemetry is the integration path for every backend language. Point your OTLP exporter at Traceway and you are done.

Go applications use OpenTelemetry too. Point opentelemetry-go at the same OTLP endpoint. See the OpenTelemetry guide.

Frontend

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

A full-stack framework has two halves and two Traceway projects. Next.js and Remix use the React integration below for the browser, SvelteKit uses Svelte, and Nuxt uses Vue. Their server half is a separate OpenTelemetry project from the table above. See Project Structure.

Mobile

AI

Screenshots

Logs: trace-linked search
Span waterfall
Metrics: application dashboard
Exceptions: fingerprinted & ranked

Tech Stack

Component Technology
Backend Go 1.26, Gin
Frontend SvelteKit 2, Svelte 5, Tailwind CSS v4
Telemetry DB ClickHouse (standalone), SQLite or DuckDB (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
cli/ Agent-first traceway command line for querying exceptions, logs, endpoints, and metrics
skills/ Agent skills (/traceway-setup, /traceway) for Claude Code, Cursor, Codex, and any SKILL.md-compatible agent
docs/ Documentation site (Nextra)
examples/ Working examples: embedded mode (OTel, Go client) and OTel-instrumented apps (Express, NestJS, Next.js, Hono)
website/ Landing page

Build Tags

Storage is selected on two axes: the telemetry store and the transactional (relational) store.

Tag Purpose
(none) SQLite storage on both axes: embedded mode, zero dependencies. This is the default.
telemetry_duckdb DuckDB telemetry store: embedded mode with a columnar engine. Requires CGO_ENABLED=1.
transactional_pg telemetry_ch ClickHouse (telemetry) + PostgreSQL (config) for 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

# Embedded mode with DuckDB telemetry
cd backend && CGO_ENABLED=1 go build -tags telemetry_duckdb ./cmd/traceway

# Standalone server (ClickHouse + PostgreSQL)
cd backend && go build -tags "transactional_pg telemetry_ch" ./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

# DuckDB telemetry tests
cd backend && CGO_ENABLED=1 go test -tags telemetry_duckdb -v -count=1 ./app/repositories/...

# 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 ./app/controllers/otelcontrollers/ -args -update

Documentation

Full documentation at docs.tracewayapp.com:

Community

Traceway is built in the open, and the Discord community is where it happens. Come say hi, whether you're kicking the tires, running it in production, or just curious. We use it to:

  • 🗣️ Talk through ideas: feature requests, integration asks, roadmap input
  • 🛟 Help each other out: setup, OTel wiring, deployment questions
  • 🚀 Show & tell: share what you're building and how you're using Traceway
  • 🐛 Catch bugs early: report issues and get fast feedback from maintainers
  • 👀 Get the inside scoop: sneak peeks at what's shipping next

Join the Traceway Community on Discord

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 or drop by the community Discord and we'll talk it through.

Links

Frequently asked questions

Is traceway free to use?

traceway is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does traceway do?

The only tool you need to know what is happening and how to fix it.

What is traceway written in?

traceway is primarily written in Go. Its source is publicly available at https://github.com/tracewayapp/traceway, and it has 1,753 GitHub stars.