可观测性基础设施的选型长期面临两难困境:商业 SaaS 方案如 Datadog、New Relic 虽功能完备,但按主机、事件、席位多重计费,峰值流量下的超额费用常在凌晨两点触发告警;而自建开源组合 Prometheus+Grafana+Loki+Tempo+Alertmanager 则需要数周集成与持续运维投入。Traceway 作为 MIT 许可的开源项目,试图以单一产品形态弥合这一鸿沟 —— 它将 Logs、Traces、Metrics、Session Replay、Exceptions、AI Tracing 六大可观测性支柱整合于统一 Trace ID 之下,支持 90 秒内通过 Docker Compose 完成自托管部署。
架构设计:OTel 原生与列式存储的结合
Traceway 的技术选型体现了现代可观测性栈的工程权衡。后端采用 Go 1.25 与 Gin 框架构建,前端基于 SvelteKit 2 与 Tailwind CSS v4 实现单页应用。数据存储层采用分层策略:遥测数据(Traces、Metrics、Logs)写入 ClickHouse 列式数据库,关系型数据(用户、项目、组织权限)由 PostgreSQL 承载。这种分离使高频写入的遥测数据可利用 ClickHouse 的 MergeTree 引擎实现高效压缩,官方数据显示每日 100 万事件约占用 2-3GB 存储空间。
数据采集遵循 OpenTelemetry 标准,通过 OTLP/HTTP(Protobuf 或 JSON 格式)接收数据。这一设计消除了 Vendor Lock-in 风险 —— 任何支持 OTLP 的 SDK 均可直接指向 Traceway 端点,无需专有 SDK。后端暴露的标准端点包括/api/otel/v1/traces、/metrics与/logs,与 OpenTelemetry Collector 的导出配置完全兼容。
部署模式:从 Docker Compose 到嵌入式集成
Traceway 提供两种部署形态以适应不同场景。独立服务器模式通过 Docker Compose 一键启动:
git clone https://github.com/tracewayapp/traceway
cd traceway && docker compose up -d
该命令将启动 Traceway 服务、ClickHouse 与 PostgreSQL 三个容器,完成后访问http://localhost/register即可创建初始账户。此模式适用于团队级部署,支持多租户组织与 RBAC 权限体系(owner/admin/user/readonly 四级角色)。
嵌入式模式则面向开发调试与边缘场景。通过 Go 模块引入,可在应用进程内启动完整的 Traceway 后端,以 SQLite 替代外部数据库:
import tracewaybackend "github.com/tracewayapp/traceway/backend"
go tracewaybackend.Run(
tracewaybackend.WithPort(8082),
tracewaybackend.WithDefaultUser("admin@localhost.com", "admin"),
tracewaybackend.WithDefaultProject("My App", "go", "dev-token"),
)
嵌入式模式零外部依赖,适合本地开发环境或需要内嵌可观测性的单体应用。
功能完整性与差异化特性
Traceway 的功能覆盖度是其与 Sentry、Datadog 等方案竞争的核心。Logs 模块支持结构化日志与 Trace 关联,提供基于 Severity、Service、属性的亚秒级全文检索;Traces 模块实现跨服务 Span 瀑布图,兼容 W3C Trace Context 规范,支持 Kafka、RabbitMQ、SQS 等异步工作流的链路追踪;Metrics 模块通过 Traceway OTel Agent(一行命令安装)采集主机指标,支持 Counter/Gauge/Histogram 三种 OTel 指标类型。
Session Replay 模块基于 rrweb 实现 DOM 回放,自动关联至异常事件,无需额外付费;Exceptions 模块采用 10 步归一化 + SHA-256 哈希算法,将相同逻辑错误跨服务器、环境、运行时值归为一组,支持 webpack/esbuild/Vite 的 Source Map 解析。AI Tracing 模块针对 LLM 应用设计,可追踪 OpenRouter 等服务的成本、Token 用量、延迟与会话上下文,并提供隐私模式以排除敏感 Prompt 数据。
Impact Score 是 Traceway 特有的端点健康评估机制,综合 P50/P95/P99 延迟、错误率、流量、用户影响、异常频率五个信号对端点排序,辅助团队识别优先修复目标。
成本与许可对比
Traceway 的定价策略与商业模式与其技术架构同等重要。MIT 许可意味着代码可自由修改、分发、商用,无 FSL/BSL 类限制条款。自托管版本功能与云端完全对等,无事件量或功能限制。
与商业方案对比,Traceway Cloud 采用固定阶梯定价:Starter(1 万事件 / 月)免费,Pro(10 万事件 / 月)$12.99,Premium(100 万事件 / 月)$24.99,Enterprise(2 亿事件 / 月)$499.99。以 2 亿月事件计算,单价约为 $0.0000025 / 事件,且明确承诺 "No overages, ever"。相比之下,Datadog 按主机、事件、席位、GB 多重计费,同等规模下费用可达数千美元且峰值不可预测。
与 Sentry 对比,Traceway 在许可(MIT vs FSL)、Session Replay(捆绑 vs 单独计费)、移动端录屏(原生支持 vs 付费插件)、前后端 Trace 关联(原生 vs 需配置)等维度均具优势。
生产部署建议
尽管 Traceway 的 Docker Compose 方案可实现快速启动,生产环境仍需关注若干运维要点。ClickHouse 的表 TTL(如metric_points、log_records)在 Schema 层面管理,需根据数据保留策略配置分区与过期策略。对于高基数属性(如用户 ID、请求 UUID),建议在 ClickHouse 中使用 LowCardinality 列类型或字典编码,避免列存储膨胀。
网络层面,OTLP 端点应通过 TLS 加密并配置认证,防止遥测数据泄露。Grafana 与 ClickHouse 的管理接口同样需限制访问范围。若采用嵌入式模式部署于生产,需评估 SQLite 的并发写入能力与备份策略。
Traceway 作为新兴开源项目,社区成熟度与长期维护承诺尚待验证。建议团队先以非关键业务场景试点,验证其在大规模 Trace 数据下的查询性能与存储稳定性,再逐步扩展至核心系统。
资料来源
- Traceway GitHub 仓库: https://github.com/tracewayapp
- Traceway 官方文档(Docker Compose 部署): https://docs.tracewayapp.com/server/docker-compose
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。