Traceway
The only tool you need to know what is happening and how to fix it.
Install / Use
npx skills add tracewayapp/tracewayInstalls into whichever agent you are using.
README
Traceway is an OpenTelemetry-native observability platform. It combines logs, traces, metrics, session replay/RUM, exceptions, and AI tracing 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.
<table width="100%"> <tr> <td width="50%" valign="top"><img alt="Traceway Issues" src="./.github/screenshots/issues.png" /></td> <td width="50%" valign="top"><img alt="Traceway Endpoints" src="./.github/screenshots/endpoints.png" /></td> </tr> </table> <p align="center"> <a href="https://discord.gg/RZq9NT62nc"><b>👋 Join the Traceway Community on Discord →</b></a><br> <sub>Chat with the team, shape the roadmap, get help, and meet other folks running Traceway in production.</sub> </p>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).
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-setupreads your repo and wires it up: OTel for backends, Traceway SDKs for web and mobile. Then it verifies data actually arrives./tracewayinstalls thetracewayCLI 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. 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
<table width="100%"> <tbody> <tr> <td align="center" width="150"><a href="https://docs.tracewayapp.com/client/gin-middleware"><img src="./docs/public/gin.png" height="28" alt="Gin" /><br/><b>Gin</b></a></td> <td align="center" width="150"><a href="https://docs.tracewayapp.com/client/chi-middleware"><img src="./docs/public/chi.png" height="28" alt="Chi" /><br/><b>Chi</b></a></td> <td align="center" width="150"><a href="https://docs.tracewayapp.com/client/fiber-middleware"><img src="./docs/public/fiber.svg" height="28" alt="FibRelated Skills
dbx
13.7k20 MB lightweight cross-platform database client for 70+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker.
product
Cloud-agnostic Kubernetes infrastructure with Terraform & Helm for homelabs, edge, and production clusters.
ghidra-mcp
3.2kGhidra MCP Server — 200+ MCP tools for AI-powered reverse engineering. GUI plugin + headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.
radar
2.8kThe missing open-source Kubernetes UI with a built-in MCP server for AI agents. See what's broken, why, and what changed. Issues, Topology, event timeline, Helm, GitOps, live service traffic, and cluster audits - all in one Go binary.
