用例是配方,而不是功能。每个用例都使用你已经了解的相同 evlog 基础构件解决一个具体问题:宽事件、结构化错误、drain、enricher。它们作为独立章节存在,是因为每个用例都有足够的内容规模(每个包含多个页面和专门的示例),值得直接导航,但它们不是独立的运行时:使用相同的 logger、相同的 drain pipeline、相同的类型。
| 你想要…… | 查看 |
|---|---|
| 跟踪一个 Node.js 请求,从响应 ID 到 JSON 事件,包括一次失败的支付 | Node.js 请求日志 |
通过批处理、重试和 sendBeacon 回退将浏览器日志发送到你的服务器 | 客户端日志 |
| 捕获每次 AI SDK 调用,包括令牌使用量、工具调用、流式传输指标和成本 | AI SDK |
| 在每个宽事件中识别经过身份验证的用户(以及其组织/角色) | Better Auth |
| 使用哈希链、拒绝记录和支持脱敏的差异构建防篡改审计轨迹 | 审计日志 |
| 使用每次运行一个宽事件、同意和披露来为 CLI 和自动化添加检测 | Telemetry |
| 从 eve agent 回合中导出宽事件(令牌、工具、drain) | eve |
| 为每个事件添加派生上下文(User-Agent、地理位置、请求大小、trace 上下文) | Enrichers |
它们之间的关系
your app code
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ evlog logger │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌──────────────┐ │
│ │ Client logs │ │ AI SDK wrapper │ │ Audit logger │ │
│ │ (browser → API) │ │ (token / tools) │ │ (hash chain) │ │
│ └─────────────────┘ └─────────────────┘ └──────────────┘ │
│ │ │ │ │
│ └─────────────────────┼────────────────────┘ │
│ ▼ │
│ enrich → drain │
│ (User-Agent, geo, trace, …) │
└──────────────────────────────────────────────────────────────────┘
每个用例都是选择启用的。根据应用的需要采用相应的用例。它们共存于相同的 logger、相同的 drain pipeline 和相同的 enrich 链中。
接下来去哪里
- 想从零开始构建一个新用例?先从 宽事件 开始了解概念模型。
- 需要把生成的事件发送到某个地方?选择一个 适配器。
- 想编写你自己的可复用 enricher / 插件用例?参见 自定义 Enrichers 或 插件。