所有信号,一条清晰的线索。
LogBrew 把日志、链路、问题和版本串联起来,让每次故障都有据可查。
日志
搜索消息;当某条日志能解释故障时,打开对应链路。
POST /webhooks/payments
{ "title": "POST /webhooks/payments", "project": "Checkout API", "duration": "12 ms", "spans": 3, "trace_id": "webhook-8e91", "issue_id": "PAY-1043", "request_id": "req-webhook-8e91", "release": "checkout-api@1.24.0", "environment": "production", "http": { "method": "POST", "route": "/webhooks/payments", "status_code": 400 }, "operations": [ { "span_id": "webhook", "parent_span_id": null, "name": "POST /webhooks/payments", "start_offset_ms": 0, "duration_ms": 12, "status": "error" }, { "span_id": "secret", "parent_span_id": "webhook", "name": "signing_key.load", "start_offset_ms": 0, "duration_ms": 3, "status": "ok" }, { "span_id": "verify", "parent_span_id": "webhook", "name": "signature.verify", "start_offset_ms": 3, "duration_ms": 9, "status": "error", "attributes": { "key_version": "v7", "signature_match": false, "payload_logged": false } } ], "logs": [ { "offset_ms": 0, "severity": "info", "message": "Payment webhook received; provider event evt-9032" }, { "offset_ms": 3, "severity": "info", "message": "Loaded signing key version v7 from runtime configuration" }, { "offset_ms": 12, "severity": "error", "message": "Signature verification failed; returned 400 without updating order state" } ] }
让证据发挥作用。
问题
搜索故障并打开链路上下文。
| 错误 | Checkout API | 3 | ||
| 严重 | Checkout API | 18 | ||
| 警告 | Checkout API | 6 | ||
| 信息 | Checkout API | 12 |
链路
打开一个请求,查看它的路径和相关信号。
| Checkout API | 错误 | 12 ms | 3 | |
| Checkout API | 正常 | 46 ms | 3 | |
| Checkout API | 正常 | 8 ms | 2 | |
| Checkout API | 错误 | 2,548 ms | 4 |
POST /webhooks/payments
{ "title": "POST /webhooks/payments", "project": "Checkout API", "duration": "12 ms", "spans": 3, "trace_id": "webhook-8e91", "issue_id": "PAY-1043", "request_id": "req-webhook-8e91", "release": "checkout-api@1.24.0", "environment": "production", "http": { "method": "POST", "route": "/webhooks/payments", "status_code": 400 }, "operations": [ { "span_id": "webhook", "parent_span_id": null, "name": "POST /webhooks/payments", "start_offset_ms": 0, "duration_ms": 12, "status": "error" }, { "span_id": "secret", "parent_span_id": "webhook", "name": "signing_key.load", "start_offset_ms": 0, "duration_ms": 3, "status": "ok" }, { "span_id": "verify", "parent_span_id": "webhook", "name": "signature.verify", "start_offset_ms": 3, "duration_ms": 9, "status": "error", "attributes": { "key_version": "v7", "signature_match": false, "payload_logged": false } } ], "logs": [ { "offset_ms": 0, "severity": "info", "message": "Payment webhook received; provider event evt-9032" }, { "offset_ms": 3, "severity": "info", "message": "Loaded signing key version v7 from runtime configuration" }, { "offset_ms": 12, "severity": "error", "message": "Signature verification failed; returned 400 without updating order state" } ] }
让每个信号都通向答案。
打开 LogBrew,把下一个线上问题变成一次有重点的排查。
LogBrew 常见问题
了解如何接入你的应用、排查错误,以及和编码智能体协作。
LogBrew 通过归并的问题、日志和链路,帮你排查应用故障。打开一个问题可以查看它采集到的上下文,也可以在日志中搜索某个特定事件。能看到哪些详情,取决于你的集成方式和应用发送的数据。
日志记录的是单个事件,包括正常活动。错误追踪会把相关故障归并成问题,方便你查看重复发生的次数和最近一次发生的时间。先用问题选定要处理的故障,再查看相关日志获取上下文。
从一条采集到的发生记录开始,查看它的环境、版本、消息和堆栈跟踪。如果有相关日志和链路证据,也一并查看。即使无法在本地复现,这些记录也能缩小排查范围,但不能保证找到根本原因。
如果你的集成采集了操作记录(Breadcrumbs)或相关日志,问题详情就能显示故障前后的事件。关联的链路还能补充操作耗时。应用没有采集的活动,LogBrew 无法还原。
日志记录一个事件。堆栈跟踪显示与错误相关的函数调用。分布式链路跟踪一个请求或任务中的相关操作,可能跨越多个服务。调试时,它们分别回答不同的问题。
在“问题”中查看归并后的故障、发生次数和最近一次发生记录。按项目和时间范围缩小结果,再查看单条发生记录。重复出现能帮你发现规律,但它本身并不能衡量对用户的影响。
当你的集成采集并传播匹配的链路上下文时,相关事件就可以关联起来。仅凭相同的时间戳或相似的消息,不足以证明两个事件属于同一个请求。请按照每个集成的链路追踪说明进行配置。
错误可能是在没有活动链路上下文的情况下采集的。查看时,链路也可能暂时不可用。请检查问题详情中的证据状态,以及集成的链路追踪配置。升级 SDK 不会为旧的发生记录补上链路上下文。
可以。使用现有的排查上下文、CLI 或 MCP 工具,为智能体提供限定范围的证据。智能体指南介绍了具体流程。请确认你共享了哪些数据,不要把凭据放进提示词,并在应用修改前审查它提出的更改。
可以直接在控制台中排查,智能体工具是可选的。两种方式都应基于采集到的证据,并让缺失或有限的上下文保持可见。LogBrew 不保证能自动修复。
创建一个项目,为你的语言或框架选择集成,然后按照接入指南操作。发送一个安全的测试事件,确认它出现在目标项目中。不同集成支持的信号和配置有所不同。
先检查所选项目、日期范围和其他筛选条件,再核对项目配置和集成发送的信号。日志、问题和链路是各自独立的数据流,所以“日志”页为空,并不代表没有收到问题。
你可以把遥测数据按项目组织,并在支持的视图中选择一个、多个或你能访问的所有项目。服务用于标识项目内负责上报的组件。比较前端、后端和后台任务的活动时,请分清这些范围。
采集和传输遥测数据会占用资源。影响大小取决于你的 SDK、配置和事件量。请在有代表性的负载下测试集成,并使用该 SDK 文档中提供的控制选项。不要假设开销为零。
不要在消息、属性或错误上下文中包含密钥或不必要的个人数据。检查 SDK 的采集和脱敏选项,在生产环境启用集成前,先查看一个安全的测试事件。不要假设每个字段都会被自动移除。
在“价格”页面查看当前套餐和包含的额度。登录后,在账号和用量页面查看你账号的相关信息。请以当前套餐详情为准,不要默认可以无限采集。