Beacon:自托管错误追踪与 LLM 调用可观测工具
开发者发布开源自托管工具 Beacon,提供错误聚合、终端与 Web 仪表盘,并可追踪 LLM 调用的 token、延迟…
Beacon 是一款面向开发者的自托管错误追踪与监控工具,同时集成 LLM 调用可观测能力。它从任意服务采集错误,按根因自动归组,并在终端仪表盘中实时展示,整个过程不依赖第三方服务,数据不离开用户基础设施,也没有按事件计费的费用结构。官方将其定位为「轻量级、可自托管、终端优先」的 Sentry 替代品。
核心功能与部署
Beacon 提供两种启动方式:通过 Docker Compose 一键启动,或直接使用 pip 安装依赖后运行 Python 脚本。默认服务监听 http://localhost:7000,用户可在另一个终端中启动基于 Textual 的实时 TUI 仪表盘,查看错误分组、告警与部署标记等信息。项目同时附带基于 Vite + React 的 Web 仪表盘,构建后由 ingest 服务直接提供,浏览体验与 TUI 数据保持一致。
- 错误归组基于「指纹」机制:取异常类型 + 规范化消息 + 函数调用链的哈希值,忽略行号变化。
- 支持通过环境变量配置
BEACON_API_KEY与SLACK_WEBHOOK_URL,错误组触发阈值时向 Slack 推送告警。 - 存储层使用 SQLite,依赖简单,无需额外部署数据库。
LLM 可观测性
Beacon 的差异化卖点是同时追踪 LLM 调用。Node.js SDK 与 Python SDK 均提供 captureLlm 接口,记录模型名、输入/输出 token 数、延迟与估算成本(按 OpenAI GPT-4o 价格 0.000005/0.000015 美元每 token 计算)。未处理异常与 Promise 拒绝会被自动捕获,业务代码只需在入口处 init 即可启用监控。
- Node.js SDK 零外部依赖,仅使用 Node 内置 http/https 模块。
- Python SDK 依赖
requests,需将sdk/python/beacon/复制到项目中并调用两行初始化代码。 - 任意语言均可通过 HTTP POST 向
/ingest端点上报错误,无需使用 SDK。
技术栈与路线图
当前 ingest 服务使用 Python + Flask,仪表盘基于 Textual,告警通过 Slack Webhook 发送,容器化采用 Docker。官方公布的路线图包括:部署标记关联、环境标签、Spike 速率告警、静默 7 天后重新触发的回归告警、TUI 中直接 resolve/ignore 分组、从错误组一键创建 GitHub Issue,以及用 Go 重写核心服务并引入 Redis 热路径等。
相比 Sentry,Beacon 面向的是希望完全掌控基础设施、避免按事件计费、习惯终端工作流并能阅读修改源码的开发者。
