@aryasaatvik/motel

中文文档
0.5.10发布于 2026/11/04MITES Module构建来源已验证近 30 天下载 2943

一个本地OpenTeleometry 摄入 + TUI 查看器用于开发,由 SQLite 支持.

中文使用文档
文档目录9 节
  1. 对于代理商:安装汽车旅馆调试技能
  2. 对人类:安装和运行TUI
  3. macOS 服务从维护的退出
  4. 您的应用程序如何连接
  5. 配置
  6. 代理连接方式
  7. TUI 密钥
  8. 隐私说明
  9. 摄取准备

汽车旅馆

本地 OpenTeleometry 摄入 + TUI 浏览器用于开发, 由 SQLite (英语). 将您的应用程序的 OTLP/ HTTP 导入到本地的汽车旅馆服务器 并调试实时证据——来自终端,内置网络 UI,或直接取自AI编码代理.

对于代理商:安装汽车旅馆调试技能

motel 教授克洛德密码 OpenCode的伴奏技巧, 光标、 Codex 和 40 + 其他代理 如何调试运行时的证据 通过查询汽车旅馆的本地OTLP商店。 安装一次,任何未来 项目中的代理会话将知道如何使用它.

# Project-local (adds to .claude/skills, .agents/skills, etc.)
npx skills add aryasaatvik/motel --skill motel-debug

# Or globally, for every project
npx skills add aryasaatvik/motel --skill motel-debug -g

见全能在 skills/motel-debug/SKILL.md。 。 。 .

对人类:安装和运行TUI

汽车旅馆在npm上发行 @aryasaatvik/motel二进制是一个 Bun 剧本,所以Bun一定在你身上 PATH 运行时间 :

# one-off (no install)
bunx @aryasaatvik/motel

# or install globally
bun add -g @aryasaatvik/motel
motel

# npm also works (Bun still required to run it)
npm install -g @aryasaatvik/motel

没有邦?

curl -fsSL https://bun.sh/install | bash -s "bun-v1.4.4"

motel 启动本地 OTLP 摄入服务器 http://127.0.0.1:27686 并发射TUI. 新闻 ? 一次进去 键盘作弊表,或 c 复制粘贴准备设置指令 用于任何您想要跟踪的效果/OTEL应用程序.

所需经费: 阿宝 匹配 package.json engines.bun (单位:千美元)>=1.4.4) (中文(简体) ).

macOS 服务从维护的退出

每个用户的发射代理 ~/.bun/bin/bun ~/.bun/bin/motel server。用于保持核对 安装、准备和链接合并 dev 安装前退出 服务:

bun install --frozen-lockfile
bun run web:build
bun link
motel service install

此服务路径不会发现 npm- global 或任意 PATH 可执行文件 . motel service install 验证两个稳定的 Bun bin 路径 写入或装入发射代理。 重新运行它留下一个等效的加载 服务不变并加载当前相同的定义 已经卸下.

保留设置( MOTEL_OTEL_RETENTION_* 财务报告和审定财务报表 MOTEL_OTEL_MAX_DB_SIZE_MB 变量)在安装环境中设置为 写入发射代理。 替换保存已安装的保留值 安装环境没有设置,以及 motel service status 报告 与已安装的值不同的请求值为 EnvironmentVariables.<name> 漂移 :

MOTEL_OTEL_MAX_DB_SIZE_MB=4096 motel service install --replace

您的应用程序如何连接

一旦汽车旅馆开业,请将您的应用程序的 OTLP/HTTP 出口商指向这些 本地端点 :

http://127.0.0.1:27686/v1/traces
http://127.0.0.1:27686/v1/logs

Motel将一切保存在一个机器全球本地SQLite数据库中 ${XDG_STATE_HOME:-~/.local/state}/motel/telemetry.sqlite一个管理 守护进程在本地项目中共享 。 无多克,无云帐.

该店默认保留了7天的遥测,目标为1GB 使用边框背景批次的活数据上限。 保存最近的数据时 最古老的完成的痕迹和日志先被取出。 配置策略 与 MOTEL_OTEL_RETENTION_HOURS, (中文(简体) ), MOTEL_OTEL_MAX_DB_SIZE_MB, (中文(简体) ), MOTEL_OTEL_RETENTION_TRACE_BATCH, (中文(简体) ), MOTEL_OTEL_RETENTION_ROW_BATCH, (中文(简体) ), MOTEL_OTEL_RETENTION_LOG_BATCH,以及 MOTEL_OTEL_RETENTION_INTERVAL_SECONDS。 。 。 . 未创建的现有数据库 增量自动真空在启动时永远不会默写; 删除页面 重新使用,但缩小这样的历史文件需要明确的离线 SQL 点 VACUUM 由用户选择.

配置

装入的过程 src/config.ts 解析一个基础 URL,顺序为 : MOTEL_OTEL_BASE_URL, (中文(简体) ), MOTEL_OTEL_QUERY_URL, (中文(简体) ), MOTEL_OTEL_COLLECTOR_URL, (中文(简体) ), 接下来 http://127.0.0.1:27686。查询 URL 是该基础 URL。 主机是 MOTEL_OTEL_HOST,或基址主机名。 端口为 MOTEL_OTEL_PORT 何时 它是一个正整数,否则就是基准 URL 端口,否则就是80。 追踪 和日志导出者 URL 默认为该基数 v1/traces 财务报告和审定财务报表 v1/logs。 。 。 .

motel start,而TUI发射的守护进程,则构建收听地址 从 MOTEL_OTEL_BASE_URL,则 MOTEL_OTEL_QUERY_URL,则 http://127.0.0.1:27686. 缺失的港口变为27686个. 产入的服务器 接收该收听地址作为其基础 URL,查询 URL,主机,端口,以及 出口国 URL( 听取源头加 /v1/traces 财务报告和审定财务报表 /v1/logs) (中文(简体) ). 这个 数据库文件分别解决 : MOTEL_OTEL_DB_PATH,或 telemetry.sqlite 在运行时目录中.

整数设置将空白的,非数字的,非正值视为未设置. MOTEL_OTEL_QUERY_CAPACITY 上限为64和 MOTEL_OTEL_QUERY_DEADLINE_MS 在三万块.

变量默认它会做什么
MOTEL_OTEL_BASE_URLhttp://127.0.0.1:27686解析了基础 URL并查询 URL. 以上倒数第一选择.
MOTEL_OTEL_QUERY_URL未设定基准 URL 当 MOTEL_OTEL_BASE_URL 未设定。 查询 URL 等于 已解决的基址 .
MOTEL_OTEL_COLLECTOR_URL未设定只有当上面两个URL都未被设置时,才建立基础 URL 。 管理中的守护进程未使用 .
MOTEL_OTEL_HOST基础 URL 主机名( R)127.0.0.1(中文(简体) )主机名 服务器绑定 .
MOTEL_OTEL_PORT基准 URL 端口( R)27686(中文(简体) )端入服务器绑定 . src/config.ts 当 URL 没有端口时使用 80; 管理守护进程使用 27686.
MOTEL_OTEL_SERVICE_NAMEmotel-otel-tui汽车旅馆自己的出口商和CLI默认服务上的名字. 一个非空白值也是TUI的初始服务. 布兰克保留了记忆中的TUI服务.
MOTEL_OTEL_ENABLEDfalse从TUI和CLI出口汽车旅馆自己的痕迹和日志. 白兰地, 0, (中文(简体) ), false, (中文(简体) ), no,以及 off 关闭; 任何其他值打开.
MOTEL_OTEL_EXPORTER_URL基础 URL + /v1/traces在那些自出口的岗位上.
MOTEL_OTEL_LOGS_EXPORTER_URL基础 URL + /v1/logs那边有自出品记录.
MOTEL_RUNTIME_DIR${XDG_STATE_HOME:-~/.local/state}/motel状态目录:默认数据库,守护进程日志,锁定和实例注册.
MOTEL_OTEL_DB_PATH$MOTEL_RUNTIME_DIR/telemetry.sqliteSQLite 文件 (中文(简体) ). 每台机器一个共享数据库,除非设置此数据库 .
MOTEL_URL未设定MCP客户端的基础URL. 设定时,发现使用它而不是实例登记.
MOTEL_OTEL_TRACE_LOOKBACK_MINUTES1440年龄窗口,在几分钟内, 用于服务发现 和存储查询, 忽略回放。 HTTP 列表和搜索路径发送自己的 lookback (默认为60分,最高为1440分).
MOTEL_OTEL_TRACE_LIMIT100追踪 TUI 和 CLI 追踪命令, 省略一个限制 。 HTTP 列表路由自发 limit。 。 。 .
MOTEL_OTEL_LOG_LIMIT80TUI服务日志的日志计数,TUI追踪日志,以及CLI日志命令. HTTP 日志路径自发 limit。 。 。 .
MOTEL_OTEL_QUERY_CAPACITY8 (最多64个)每次运行时未完成的只读查询 。 过载为 HTTP 503 QUERY_OVERLOADED。 。 。 .
MOTEL_OTEL_QUERY_DEADLINE_MS5000 (最多300 000美元)一个只读查询的队列加启动截止日期 。 过期为 HTTP 504 QUERY_DEADLINE。 。 。 .
MOTEL_OTEL_RETENTION_HOURS168对已完成的痕迹和原木进行年龄限制.
MOTEL_OTEL_MAX_DB_SIZE_MB1024MB 中的活动数据目标 : (page_count - freelist_count) * page_size。不是硬文件大小的盖.
MOTEL_OTEL_RETENTION_TRACE_BATCH100完成的痕迹标记每个清理通道.
MOTEL_OTEL_RETENTION_ROW_BATCH1000每个清理通道删除行,分出痕迹和日志. 捆起行数,不是一地大小.
MOTEL_OTEL_RETENTION_LOG_BATCH5000每个清理通道标记的日志.
MOTEL_OTEL_RETENTION_INTERVAL_SECONDS10闲取清净通后延. 清理工作仍在取得进展,等待100毫秒.

代理连接方式

特工与 motel-debug 已安装的技能将自动使用 汽车旅馆的HTTP API。 完整的 OpenAPI 光谱在 http://127.0.0.1:27686/openapi.json -关键终点是:

GET /api/health                              liveness check
GET /api/services                            services reporting telemetry
GET /api/traces?service=<service>            recent traces for a service
GET /api/traces/<trace-id>                   full trace tree
GET /api/spans/<span-id>                     single span + logs
GET /api/logs?service=<service>              recent logs
GET /api/traces/search?...                   structured trace search
GET /api/logs/search?...                     structured log search
GET /api/ai/calls                            AI SDK call inspector

TUI 密钥

  • ? 键盘作弊表
  • j 编号 : k 或者说 ↑ 编号 : ↓ ——移动选择
  • enter 编号 : esc - 钻入/后出(跟踪-瀑布-跨度细节)
  • [ 编号 : ] ——开关服务
  • tab 切换服务日志
  • / - 过滤器痕迹
  • s 周期类型(最近) 出错
  • t --周期主题
  • c ——复制另一应用程序的粘贴准备设置指令
  • o ——在浏览器中打开所选的跟踪
  • q ——退出

隐私说明

汽车旅馆是本地开发工具 但你的应用可以发出敏感的信号 遥测. 相关日志可能包括秘密、标志或PII,如果您 app登录它们;AI调用痕迹可能包含全部即时内容并 响应文本。 将本地 SQLite 商店视为敏感开发 数据当指汽车旅馆 真正的工作量.

摄取准备

GET /api/health 报告处理身份和活性. GET /api/readiness 报告已缓存 不查询 SQLite 或加入摄取队列的写入诊断 。 它返回 HTTP 200块 ready,503用于 starting, (中文(简体) ), overloaded,或 failed。 。 。 . motel status 包括这个 当守护进程支持它时快照; 旧服务器仍然兼容 .

overloaded 表示等待请求至少5秒或至少64个请求 成绩突出。 这是一个压力信号,而不是重新启动一个共享守护进程的指示. 浪费时间并不意味着失败. failed 需要操作员 检查。 未完成的计数/字节描述等待呼叫者,而非持久排队的数据; 客户端取消无法取消 SQLite 承诺 。 空探测器不推进 lastCommitAt。 。 。 . 维护报告其最近的运行、持续时间和结果,没有遥测有效载荷.

运行 bun scripts/bench-shared-daemon.ts 或增加 --1gib 代表能力简介。 创建和移除自己的数据库, 包括一个持有的阅读器,以及报告要求的延迟百分位数、故障和数据库/WAL大小. 它们从未将共享的机器全球数据库作为基准.

同时期开始在原子上发布完整的共享锁. 确保行动维持生命 摄入缓慢时守护进程; 明确的操作员恢复仍然可以通过 motel restart。 。 。 . 无法读取的锁或中断的 Stale-lock 恢复失败并报告检查路径. 当维修作业重叠时,准备状态显示在完成作业之前运行时间最早的状态.

保留标记在去除所依赖行之前完成了痕迹和过期日志. 公开查询 结果隐藏了整个标记的痕迹,包括相关的日志,同时有限定的清理收益. 标记在重启时持续。 作为驱逐的一部分,有标记的痕迹的抵达被丢弃 而不计为插入的记录;一旦清理完成,后期导出可能会再创建该跟踪. 未选择活动跟踪 。 SQLite表是内部存储;直接的SQL消费者应该 使用该 retained_spans, (中文(简体) ), retained_logs,以及 retained_trace_summaries 查看此可见规则.

MOTEL_OTEL_RETENTION_ROW_BATCH 每个清理批次默认为 1000 个逻辑行, 分拆 痕迹和日志。 它约束了行中枢,而不是一个遥测场的大小. 清理产量 批次间100 ms在进展时,然后返回所配置的闲置间隔. 例行检查站使用PASSIVE,报告忙碌/机身清点情况;实际开垦 被搁置的读者被推迟。 配置的数据库目标和WAL大小限制不是硬盖. 现有无主属性/ FTS 条目用有边框的密钥集扫描进行修复; 正常摄入 维护用于索引清理的反向 FTS 映射.

查询一次使用一个只读的子进程, FIFO 录取上限为8个未完成 默认请求( e)MOTEL_OTEL_QUERY_CAPACITY,最多64个). 五秒期限包括: 队列和启动时间( t)MOTEL_OTEL_QUERY_DEADLINE_MS,最高为3000. 超载返回 HTTP 503 与 code: "QUERY_OVERLOADED"; 过期返回 504 与 code: "QUERY_DEADLINE"; 进程失败 返回 503 与 code: "QUERY_UNAVAILABLE"。成功的响应形状保持不变.

取消或到期执行查询终止其只读进程并等待退出 在发送下一个查询之前。 SQLite 运行在进程内部的线程中, 所以是一个 IPC 拥有者 如果守护进程或TUI死亡,断开也可以终止它. 摄取自有分作一工. HTTP闲置超时超过查询截止日期5秒. TUI 刷新飞行中的份额 负载、 过时的选项丢弃结果, 以及两个键的正面值按顺序排列 .

版本与发布记录

@aryasaatvik/motel 共发布 18 个版本,首次发布于 2026/07/26;过去 12 个月发布了 18 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.10latest2026/11/043 天前
0.5.92026/11/034 天前
0.5.82026/10/317 天前
0.5.72026/10/317 天前
0.5.62026/10/317 天前
0.5.52026/10/317 天前

关于 @aryasaatvik/motel 的常见问题

@aryasaatvik/motel 是什么?

一个本地OpenTeleometry 摄入 + TUI 查看器用于开发,由 SQLite 支持.

如何安装 @aryasaatvik/motel?

在项目目录运行 npm install @aryasaatvik/motel,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 motel、motel-mcp,可以用 npx motel 直接运行。

@aryasaatvik/motel 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/aryasaatvik__motel 是否存在。

@aryasaatvik/motel 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aryasaatvik/motel 可以商用吗?

@aryasaatvik/motel 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aryasaatvik/motel 的下载量有多少?

根据 npm 官方下载统计,@aryasaatvik/motel 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,943 次,日均约 98 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aryasaatvik/motel 还在维护吗?

最新版本 0.5.10 发布于 2026/11/04(3 天前);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/07/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。