智能体工作流使用
--json。把凭据保存在受保护的本地配置中。人、工具和智能体之间只传递变量名。开始之前
准备以下内容:- Node.js 18 或更高版本。
- LogBrew CLI v0.1.30 或更高版本。
jq。- Bash 或 Zsh。
- 一个服务端 Node.js 应用的包目录。
quickstart-node、环境 development 和版本 quickstart@1。让这次测试与生产环境分开。其他运行时请参阅 SDK 接入。
发送并读取第一条日志
1
查看账号状态
按使用 CLI 页面中的命令安装 CLI。然后查看它的账号状态。检查点:status 输出显示账号访问已通过认证。如果没有,由人运行一次
logbrew login。然后再次运行 logbrew status --json。当前认证有效时,智能体不得发起新的登录。2
用 CLI 创建一个项目
在仅所有者可访问的目录中选择一个新文件。CLI 会先把项目接入密钥写入该文件,再报告成功。它从不打印密钥或文件路径。创建项目会改变账号状态。目标文件不能已经存在。如果结果不明确,原样再运行一次该命令。CLI 会复用尚未完成的请求标识。只有要开始另一次尝试时,才使用
--abandon-retry。检查点:输出显示 status: "created"、接入状态 created 和接入密钥类型。项目已存在,密钥已保存。这并不说明遥测数据已投递。参见项目与接入。3
安装 Node.js SDK
4
通过 SDK 发送一条安全的日志
发送版本和环境标记,以及一条只含占位内容的 不要在信号中放入凭据、请求头、请求体、客户数据或本地路径。检查点:脚本打印
info 日志。密钥只为这个 Node.js 进程设置。应用身份信息放在 context 中。每次运行都会生成新的事件 ID。如果 SDK 在同一次运行中重试投递,它会用相同的 ID 发送相同的请求体。重试再次发送已接受的信号时,LogBrew 不会重复存储。"ok":true,且 status_code 为 2xx。发生重试时,attempts 大于 1。发送成功并不是最后一项检查。如果投递失败,脚本以退出码 1 退出,并打印一条简短的 JSON 错误,例如 {"ok":false,"error":"unauthenticated"}。它不会打印请求体或密钥。项目密钥被拒绝时会出现 unauthenticated。重新登录 CLI 也无法解决。5
查看项目 doctor 报告
这次读取使用 CLI 已保存的账号访问权限。不要使用项目接入密钥。检查点:报告包含
status: "ready"。同时查看 checks 中的每一项。退出码 0 并不表示所有检查都通过。如果是其他状态,按照 next 和 doctor 报告参考处理。项目为 ready 并不表示这条测试日志已经到达。6
读取测试日志
使用 SDK 批次中的项目、版本和环境。检查点:在该项目、版本和环境下能看到
LogBrew quickstart check。这只说明测试日志已投递。解读测试结果
示例发送了 3 条信号,其中只有 1 条是日志。版本和环境标记为这条日志提供上下文。
测试日志保持
info 级别。不要为了更容易找到而改成 error。改用项目和时间筛选条件。参见严重程度值。
console.log 这一行把投递结果打印到终端。client.log 调用把日志发送到 LogBrew。首次投递成功时会打印:
--project 筛选条件不会移动信号。
这条日志没有链路上下文,因为示例没有创建请求 Span(一次计时操作)。这并不说明日志发送失败。CLI 读取的是快照。再次运行可以读取之后的信号,或者用 logbrew watch logs --json 实时查看。
常见恢复方法
如果遥测数据仍然缺失,按首次遥测检查排查。如果这些检查没有帮助,报告问题。不要附上凭据、原始遥测数据、客户数据、本地路径或源代码。
迁移到你的应用
- 在应用的初始化代码中只创建一次客户端。
- 在包文件中固定 SDK 版本。在生产环境之外测试升级。
- 从现有的机密配置中加载接入密钥。密钥可能已泄露时,轮换密钥。参见轮换接入密钥。
- 使用部署配置中稳定的服务、环境和版本名称。参见版本。
- 日志消息应写明执行的动作及其结果,例如
Report generation completed。不要在消息中包含私密信息。不要把整个请求或用户记录复制到日志中。 - 每条应用日志只保留一个发送方,避免重复记录。添加 LogBrew 之前,先找出已经在发送每条记录的集成。
- 在生产环境上线之前,通过真实的代码路径发送一条安全的信号并读回。检查它的消息、服务、版本和环境。独立的示例无法测试应用的代码路径。
项目与接入
查看接入状态并管理项目接入密钥。
SDK 接入
选择适合你运行时的 SDK 包。
排查问题
沿着链路和相关日志证据排查某个问题。
报告问题
发送安全、私密的支持报告。
