traceway
tracewayapp/traceway · skills.sh
Open source Repository Open in the app JSON README (API)
About
Skill publicada por tracewayapp/traceway no skills.sh. Instale com: npx skills add tracewayapp/traceway@traceway
Details
- Kind
- Agent skills
- Publisher
- tracewayapp
- Origin
- skillssh
- Category
- ferramentas
- Stars
- 1,601
- Forks
- 74
- Open pull requests
- 10
- Last push
- 2026-10-05T18:24:33Z
- Repository state
- ativo
- Language
- Go
- License
- MIT
- Added
- 2026-10-07 05:23:17
- Updated
- 2026-10-07 05:23:17
- Origin id
tracewayapp/traceway/traceway
README
> 🎉 **Traceway 2.0 is here.** More reliable traces, better OpenTelemetry compatibility, and a clearer picture of your app. [Read the V2 release post →](https://tracewayapp.com/blog/traceway-2-0)
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="Traceway%20Logo%20White.png" />
<source media="(prefers-color-scheme: light)" srcset="Traceway%20Logo.png" />
<img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/Traceway Logo.png" alt="Traceway Logo" width="200" />
</picture>
</p>
<p align="center">
<sub>Built on <img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/otel.png" height="14" alt="OpenTelemetry" /> <b>OpenTelemetry</b></sub>
</p>
<h3 align="center">OpenTelemetry-native observability. Open source. Self-hosted in 90 seconds.</h3>
<p align="center">
<a href="https://opentelemetry.io"><img alt="OTel-First" src="https://img.shields.io/badge/OTel--First-Native%20OTLP%2FHTTP-425CC7?logo=opentelemetry&logoColor=white" /></a>
<a href="https://github.com/tracewayapp/traceway/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/100%25%20Open%20Source-MIT-22c55e" /></a>
<a href="https://docs.tracewayapp.com/server/docker-compose"><img alt="Self-Host" src="https://img.shields.io/badge/Self--Host-docker%20compose%20up-2496ed?logo=docker&logoColor=white" /></a>
<a href="https://discord.gg/RZq9NT62nc"><img alt="Join us on Discord" src="https://img.shields.io/badge/Discord-Join%20the%20community-5865F2?logo=discord&logoColor=white" /></a>
</p>
<p align="center">
<a href="https://tracewayapp.com">Website</a> · <a href="https://docs.tracewayapp.com">Docs</a> · <a href="https://cloud.tracewayapp.com">Cloud</a> · <a href="https://discord.gg/RZq9NT62nc">Discord</a>
</p>
---
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](https://cloud.tracewayapp.com) if you'd rather not babysit infra.
<table width="100%">
<tr>
<td width="50%" valign="top"><img alt="Traceway Issues" src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/.github/screenshots/issues.png" /></td>
<td width="50%" valign="top"><img alt="Traceway Endpoints" src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/.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). 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:
```bash
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](https://github.com/tracewayapp/traceway/blob/HEAD/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/`](https://github.com/tracewayapp/traceway/blob/HEAD/skills), in the same MIT-licensed repo. No marketplace, no lock-in. [Learn more →](https://tracewayapp.com/product/agent-skills)
<p align="center">
<img alt="Claude Code fixing a production issue from a Traceway error, end to end" src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/traceway-ai-demo.gif" width="900" />
</p>
## 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](https://github.com/tracewayapp/traceway/blob/HEAD/backend/app/symbolicator/otelprocessor), 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/`](https://github.com/tracewayapp/traceway/blob/HEAD/benchmarks); run them on your fork. [Learn more →](https://tracewayapp.com/product/symbolication)
## 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)
```bash
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](https://docs.tracewayapp.com/server/docker-compose) for production deployment, TLS, and storage configuration.
Prefer a single container with no external databases? The [SQLite image](https://docs.tracewayapp.com/server/sqlite) is the smallest deployment. The [DuckDB image](https://docs.tracewayapp.com/server/duckdb) 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:
```bash
go get github.com/tracewayapp/traceway/backend
```
```go
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](https://docs.tracewayapp.com/learn/embedded-mode), or check the working examples ([OTel exporter](https://github.com/tracewayapp/traceway/blob/HEAD/examples/embedded-backend-otel) or [Go client SDK](https://github.com/tracewayapp/traceway/blob/HEAD/examples/embedded-backend-go-client)).
## 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](https://docs.tracewayapp.com/client). Missing a framework? [Open an issue](https://github.com/tracewayapp/traceway/issues) to request it.
### Backend
OpenTelemetry is the integration path for every backend language. Point your OTLP exporter at Traceway and you are done.
<table>
<tbody>
<tr>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/otel.png" height="28" alt="OpenTelemetry" /><br/><b>OpenTelemetry</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/nodejs"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/node.png" height="28" alt="Node.js" /><br/><b>Node.js</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/nestjs"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/nestjs.png" height="28" alt="NestJS" /><br/><b>NestJS</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/nextjs"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/nextjs.png" height="28" alt="Next.js" /><br/><b>Next.js</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/hono"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/hono.png" height="28" alt="Hono" /><br/><b>Hono</b></a></td>
</tr>
<tr>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/cloudflare"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/cloudflare.png" height="28" alt="Cloudflare Workers" /><br/><b>Cloudflare</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/symfony"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/symfony.png" height="28" alt="Symfony" /><br/><b>Symfony</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/laravel"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/laravel.png" height="28" alt="Laravel" /><br/><b>Laravel</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/otel/django"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/django.png" height="28" alt="Django" /><br/><b>Django</b></a></td>
</tr>
</tbody>
</table>
Go applications use OpenTelemetry too. Point [opentelemetry-go](https://github.com/open-telemetry/opentelemetry-go) at the same OTLP endpoint. See the [OpenTelemetry guide](https://docs.tracewayapp.com/client/otel).
### 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](https://docs.tracewayapp.com/learn/projects).
<table width="100%">
<tbody>
<tr>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/react"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/react.png" height="28" alt="React" /><br/><b>React</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/vue"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/vue.png" height="28" alt="Vue" /><br/><b>Vue</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/svelte"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/svelte.png" height="28" alt="Svelte" /><br/><b>Svelte</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/jquery"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/jquery.png" height="28" alt="jQuery" /><br/><b>jQuery</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/js-sdk"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/javascript.png" height="28" alt="JavaScript" /><br/><b>JavaScript</b></a></td>
</tr>
</tbody>
</table>
### Mobile
<table>
<tbody>
<tr>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/flutter"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/flutter.png" height="28" alt="Flutter" /><br/><b>Flutter</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/android"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/android.png" height="28" alt="Android" /><br/><b>Android</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/ios"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/ios.png" height="28" alt="iOS" /><br/><b>iOS</b></a></td>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/react-native"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/react.png" height="28" alt="React Native" /><br/><b>React Native</b></a></td>
</tr>
</tbody>
</table>
### AI
<table>
<tbody>
<tr>
<td align="center" width="150"><a href="https://docs.tracewayapp.com/client/openrouter"><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/docs/public/openrouter.png" height="28" alt="OpenRouter" style="filter: contrast(0.5);" /><br/><b>OpenRouter</b></a></td>
</tr>
</tbody>
</table>
## Screenshots
<table width="100%">
<tr>
<td width="50%" valign="top"><b>Logs: trace-linked search</b><br><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/.github/screenshots/logs.png" alt="Logs" /></td>
<td width="50%" valign="top"><b>Span waterfall</b><br><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/.github/screenshots/span-waterfall.png" alt="Spans" /></td>
</tr>
<tr>
<td width="50%" valign="top"><b>Metrics: application dashboard</b><br><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/.github/screenshots/metrics.png" alt="Metrics" /></td>
<td width="50%" valign="top"><b>Exceptions: fingerprinted & ranked</b><br><img src="https://raw.githubusercontent.com/tracewayapp/traceway/HEAD/.github/screenshots/issues.png" alt="Exceptions" /></td>
</tr>
</table>
## 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](https://github.com/tracewayapp/traceway/blob/HEAD/examples/embedded-backend-otel), [Go client](https://github.com/tracewayapp/traceway/blob/HEAD/examples/embedded-backend-go-client)) and OTel-instrumented apps ([Express](https://github.com/tracewayapp/traceway/blob/HEAD/examples/express-otel), [NestJS](https://github.com/tracewayapp/traceway/blob/HEAD/examples/nestjs-otel), [Next.js](https://github.com/tracewayapp/traceway/blob/HEAD/examples/nextjs-otel), [Hono](https://github.com/tracewayapp/traceway/blob/HEAD/examples/hono-otel)) |
| `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. |
```bash
# 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
```bash
# 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](https://docs.tracewayapp.com)**:
- [**Client SDKs**](https://docs.tracewayapp.com/client): OpenTelemetry, Go, Node.js, Python, and more
- [**Self-Hosting**](https://docs.tracewayapp.com/server): Docker Compose and production deployment
- [**Concepts**](https://docs.tracewayapp.com/learn): How tracing, exception fingerprinting, metrics, and alerts work
- [**Embedded Mode**](https://docs.tracewayapp.com/learn/embedded-mode): Run Traceway inside your Go app
- [**Kubernetes**](https://docs.tracewayapp.com/learn/kubernetes): Instrument a whole cluster with the manifests in [`examples/kubernetes`](https://github.com/tracewayapp/traceway/blob/HEAD/examples/kubernetes)
- [**Organization Overview**](https://docs.tracewayapp.com/learn/organization-overview): Servers, issues, monitors, and on-call pages across every project, one sidebar click apart
## Community
Traceway is built in the open, and the **[Discord community](https://discord.gg/RZq9NT62nc)** 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
<p>
<a href="https://discord.gg/RZq9NT62nc"><img alt="Join the Traceway Community on Discord" src="https://img.shields.io/badge/Join%20the%20Community-on%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" /></a>
</p>
## 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](https://github.com/tracewayapp/traceway/issues) or drop by the [community Discord](https://discord.gg/RZq9NT62nc) and we'll talk it through.
## Links
- [Website](https://tracewayapp.com)
- [Documentation](https://docs.tracewayapp.com)
- [Traceway Cloud](https://cloud.tracewayapp.com): managed hosting (same MIT code, run by us)
- [Community Discord](https://discord.gg/RZq9NT62nc): chat with the team and other users