Sazabi

官方

AI 原生可观测性与安全:让你的编码代理搜索生产环境日志、查看检测到的问题并使用实时仪表板。

你可以用 Sazabi MCP 做什么?

  • 自然语言日志搜索 — 用自然语言提问,并获取答案及匹配的日志记录。
  • 结构化日志查询 — 搜索特定日志字段和重复出现的模式,以缩小调查范围。
  • 编码代理日志访问 — 让编码代理通过 CLI 和 MCP 集成,使用自己的工具查询生产环境日志。
  • 自动问题检测 — 无需编写告警规则即可发现日志中的异常,包括无声故障和异常用户行为。
  • 根因分析 — 将相关错误归类,并追溯到产生这些错误的代码。
  • 修复建议 — 获取解决每个已检测问题的方案,供工程师和编码代理使用。

托管 MCP 服务器

npx add-mcp 'https://mcp.sazabi.com/mcp'

可安装到 Claude Code、Codex、Cursor 等客户端

文档

AI 原生可观测性与安全

快速入门:https://docs.sazabi.com/get-started/quickstart

开始使用:npx @sazabi/cli start

自主告警、对话式调试和编码代理集成。Sazabi 会呈现重要问题,并为团队提供解决问题所需的上下文。

深受以下团队信赖

  • Mastra
  • Weave
  • Sandstone
  • Wajo
  • Autumn
  • Agree.com
  • Inth
  • Hoplite
  • Taiga
  • XMTP Labs

Sazabi 是面向快速交付软件团队的 AI 原生可观测性与安全平台。它将生产日志与代码关联起来,无需手动构建监控器即可检测重要问题、调查根本原因,并将有用的上下文发送到工程师的工作工具中。用日常语言提问,了解发生了哪些变化,并让编码代理利用这些上下文帮助解决生产问题。

使用 Sazabi 实现自主告警、对话式调试和编码代理工作流。Sazabi 专为需要发现并修复生产问题、又不想维护大量仪表板和静态监控器的工程团队打造。探索产品、集成、安全实践和开发者资源,了解 Sazabi 如何融入你的技术栈。

功能

零配置检测

捕捉那些你没预料到的问题

监控器只能捕捉你预先设想的故障。Sazabi 会监控每条日志并标记其他问题,从无声故障、用户不满到代理行为失控,从你连接的那一刻起就开始工作。

  • 自动检测: 无需编写告警规则,即可发现日志中的变化。
  • 根因分析: 将相关错误归类,并追溯到代码。
  • 修复建议: 为工程师和编码代理提供解决每个问题的方案。

安全监控

在暴露风险出现时立即知晓

Sazabi 会扫描代码中的安全漏洞,并在新 CVE 影响你运行的组件时立即通知你。当僵尸网络、欺诈或入侵者出现在日志中时,团队会实时收到通知。

  • 代码扫描: 在已连接的代码仓库中查找漏洞。
  • CVE 跟踪: 了解新漏洞何时影响你的依赖项。
  • 威胁检测: 发现日志中的僵尸网络、欺诈和可疑活动。

自然语言搜索

为代理打造的日志

编码代理通过读取日志来调试,因此 Sazabi 会保留所有日志,并让搜索变得快速。存储成本足够低,你永远不必纠结该丢弃哪些数据。

  • 自然语言搜索: 提出问题,即可获得包含匹配日志记录的答案。
  • 结构化查询: 搜索日志字段和重复出现的模式,缩小调查范围。
  • CLI 和 MCP: 让编码代理通过自己的工具查询生产日志。

实时仪表板

将已有日志绘制成图表

只要数据在日志中,就能放到实时仪表板上:p99 延迟、内存、慢查询、注册量。你可以完全跳过指标管道。

  • AI 生成的仪表板: 描述你想跟踪的内容,并将日志转换为图表。
  • 基于日志的指标: 根据已有数据绘制日志量、内存和 CPU 图表。
  • 实时更新: 随着新日志到达,保持图表更新。

Sazabi 的工作方式

  1. 连接 GitHub 和 Slack:只需几次点击即可安装 GitHub 和 Slack 应用。Sazabi 会读取代码库以获取上下文,并加入团队已有的工作频道。
  2. 发送日志:从你已使用的平台转发日志。无论结构化还是非结构化,Sazabi 都会按原样接收。无需构建架构、解析规则或仪表板。
  3. 接收告警:Sazabi 会监控日志中的异常,结合代码调查每个异常,并将已确定根本原因的问题发送到 Slack、Microsoft Teams 或电子邮件。

从数百种信号中发现问题

攻击尝试

身份验证异常

短时间内大量登录失败、凭据填充、异常地理位置跳转、会话重用。

问题类型: 正在进行的攻击(凭据填充、扫描、利用尝试。)

针对 900 个账户的凭据填充攻击

状态: 未解决

描述

一次协同登录尝试正在轮换来源地址,测试数百个账户的凭据。

发生了什么

身份验证日志中记录了针对 900 个账户的 2,000 次登录失败。相同的账户序列出现在不同 IP 上,这与正常登录流量中零散的错误不同。这些失败表明有人在自动尝试接管账户,但不能证明任何账户已被访问。

如何调查

按账户和会话指纹对尝试进行分组,检查其中是否有成功登录,并对滥用流量进行速率限制。

攻击载荷

请求中包含 SQL 注入、路径遍历、SSRF 或模板注入尝试。

问题类型: 正在进行的攻击(凭据填充、扫描、利用尝试。)

针对可观测性工具的 SQL 注入探测

状态: 未解决

描述

未经身份验证的 SQL 注入探测通过一个自托管可观测性工具到达数据库,并绕过了团队的错误跟踪系统。

发生了什么

一个没有会话的人向自托管可观测性工具发送 SQL 注入探测,而该工具将探测直接传递给数据库。团队的错误跟踪系统没有捕捉到这些请求;它们看起来只是几次失败的请求。

如何调查

追踪受影响的请求路径,并检查数据库查询日志中是否存在未经授权的访问。检查暴露工具的版本,并在调查期间限制入口流量。

漏洞利用尝试

与针对你技术栈的已知漏洞利用相匹配的流量。

问题类型: 正在进行的攻击(凭据填充、扫描、利用尝试。)

针对易受攻击端点的探测

状态: 未解决

描述

请求正在针对新安全公告中提到的端点发起攻击,因此需要确认已部署应用是否受到影响。

发生了什么

访问日志显示,反复出现的探测请求与公告中描述的路由和载荷形式相符。这些请求绕过了常规导航,直接访问受影响的端点。匹配的流量表明有人尝试利用漏洞,但尚未确认部署存在漏洞或攻击已成功执行。

如何调查

将已部署的软件包版本和启用的路由与公告进行比对,然后检查响应和下游影响,再决定是否需要修补或隔离。

机器人和抓取

高频客户端、无头浏览器、轮换 IP。

问题类型: 滥用与欺诈(促销或推荐滥用、虚假注册、垃圾信息、抓取。)

目录正在遭到抓取

状态: 未解决

描述

自动化客户端正按顺序遍历公司目录,持续产生读取负载并批量收集个人资料数据。

发生了什么

来自同一网络的请求以固定间隔遍历目录中的每个页面,期间没有其他导航行为。轮换的客户端地址具有相同的页面序列和请求形式。这种活动不同于交互式浏览,会使目录面临系统性数据收集风险。

如何调查

检查哪些字段可公开读取,按行为对客户端进行分组,并针对目录应用专属速率限制,同时避免阻止正常浏览。

可疑访问

访问异常

某个行为主体读取的数据远超正常水平,或按顺序遍历 ID。

问题类型: 可疑访问(账户遭入侵、内部人员滥用、数据外泄。)

按顺序读取记录

状态: 未解决

描述

一个已通过身份验证的账户正在枚举数千条记录,而不是遵循其通常的浏览模式。

发生了什么

该账户按顺序请求记录 ID 1 到 5,000。即使会话没有通过搜索或导航访问这些记录,读取操作仍然成功。这表明存在批量收集行为,应检查访问范围,而不是假定返回的每条记录都已获授权。

如何调查

检查会话、预期工作负载和记录级授权决策。如果访问未经授权,请撤销权限并确认返回了哪些记录。

权限变更

新增管理员、角色升级、新 API 密钥。

问题类型: 可疑访问(账户遭入侵、内部人员滥用、数据外泄。)

凌晨 3 点授予管理员角色

状态: 未解决

描述

一个账户在其正常活动范围之外、从陌生地点获得了管理员权限,从而新增了执行特权操作的途径。

发生了什么

审计记录显示,凌晨 3 点从一个未出现在该行为主体先前会话中的地点授予了管理员权限。之后的访问使用了新角色。这次授权可能是合法维护操作,但在信任该权限之前,需要核实授权者、时间和范围。

如何调查

向账户所有者确认此次授权,检查授权会话,并审查之后的特权操作。如果未经批准,请撤销该角色。

异常数据外传

向单个行为主体发送大量导出数据或响应。

问题类型: 可疑访问(账户遭入侵、内部人员滥用、数据外泄。)

导出量是平时的 50 倍

状态: 未解决

描述

一次导出传输的数据量远超该账户通常获取的数量,可能存在意外或未经授权的批量访问。

发生了什么

CSV 响应的大小是该账户通常导出内容的 50 倍。该请求移除了先前导出中使用的筛选条件,并返回范围更广的记录集。数据量的变化表明存在异常外传;仍需核实授权情况和预期范围。

如何调查

将导出筛选条件、返回字段和账户权限与请求任务进行比对。检查数据目的地;如果导出未经授权,请撤销会话。

失控代理

无论是你自己的还是第三方的 AI 代理,都可能超出其正常范围行事。

问题类型: 代理行为异常(AI 代理超出范围行事、提示注入、循环失控。)

支持代理调用管理员端点

状态: 未解决

描述

一个支持代理正在调用其正常支持任务所用工具和范围之外的管理操作。

发生了什么

工具调用日志显示,该代理访问了一个此前从未使用过的管理员端点。此次调用发生在客户提供的内容之后,而非操作员指令之后。这一顺序表明可能存在越权行为;必须检查响应和审计日志,才能确认该操作是否实际造成了任何更改。

如何调查

检查触发内容、工具参数和授权结果。将代理的工具限制在支持任务范围内,并要求对管理操作进行审批。

漏洞

日志中的机密或个人数据

写入日志的令牌、密钥、电子邮件地址或身份证号。

问题类型: 暴露风险(影响你的 CVE、存在漏洞的代码路径、配置错误、机密泄露。)

错误信息中打印了 API 密钥

状态: 未解决

描述

错误处理程序将凭据复制到诊断输出中,使有权访问日志的系统和人员能够看到该凭据。

发生了什么

一次失败的出站请求在记录的错误消息中包含其 API 密钥。该值随异常一起传递,而没有在日志记录边界进行脱敏。任何能够读取该记录的人都可能在密钥被撤销前重复使用它。

如何调查

撤销泄露的密钥,确认该记录被发送到哪些位置并保留了多久,并在序列化请求错误之前对凭据进行脱敏。

新公告影响你的系统

新发布的 CVE 与你的依赖项或运行时相匹配(通过 cve.now)。

问题类型: 暴露风险(影响你的 CVE、存在漏洞的代码路径、配置错误、机密泄露。)

新公告与 lockfile 中的版本相匹配

状态: 未解决

描述

一份新发布的框架安全公告涉及应用 lockfile 中固定的版本,因此需要检查已部署构建是否受到影响。 发生了什么

该公告中的受影响版本范围与解析出的框架依赖项相符。锁文件匹配结果表明存在潜在易受攻击的制品,但无法说明受影响的功能是否已启用或可被触达。实际暴露情况取决于已部署的构建版本及其路由配置。

如何调查

验证已部署的版本和受影响的功能,查看公告中的缓解措施,然后升级到已修复的版本并测试相关路由。

风险代码

代码扫描会标记新提交中缺少身份验证检查、身份验证绕过或注入风险的问题。

问题类型: 暴露(影响你的 CVE、易受攻击的代码路径、错误配置、泄露的机密。)

主机文件泄露到部署错误中

状态: 开放

描述

部署失败时,构建器主机上的文件通过错误消息暴露给用户,而这些错误消息看起来只是普通的解析失败。

发生了什么

部署构建器读取了自身主机上的文件,并将其放入部署错误消息中返回给用户,其中包括类似 /etc/passwd 的内容。表面上看,这些只是因解析错误而失败的部署。

如何调查

追踪构建输入如何访问主机文件并进入错误输出。检查文件提取边界,并从用户可见的错误消息中移除主机文件内容。

供应链

依赖项易主、遭遇仿冒包攻击,或被标记为恶意软件。

问题类型: 暴露(影响你的 CVE、易受攻击的代码路径、错误配置、泄露的机密。)

遭入侵的软件包版本

状态: 开放

描述

某个依赖项版本已被标记为遭到入侵,锁文件表明它可能包含在应用构建中。

发生了什么

被标记的软件包版本与解析出的依赖项相符,而不只是落在宽松的版本范围内。需要通过构建记录确认该版本安装的位置,以及其代码或安装脚本是否运行过。匹配结果意味着存在暴露风险,但不能证明凭据或数据已被窃取。

如何调查

找出受影响的构建,将该软件包与可信版本进行比较,替换该软件包,并且仅在执行过程可能导致凭据暴露时轮换凭据。

日志模式

事件消失

流量正常,但通常会发生的事情停止了。

问题类型: 静默故障(功能看似正常但实际不起作用:无操作、异常被吞掉、部分完成、结果错误、状态卡住。)

应用提交事件不再出现

状态: 开放

描述

用户仍在访问表单,但应用提交事件停止出现,这表明工作可能在没有明确错误的情况下丢失。

发生了什么

下午 2:14 之后,“Application submitted”事件不再出现,但表单浏览和提交尝试仍在继续。通常会在这些尝试之后出现的完成事件也不再出现。单看流量似乎一切正常,但缺少这一状态转换意味着应用可能没有进入已存储状态。

如何调查

追踪一次提交尝试经过验证、持久化和事件发出的全过程。将已存储的应用与提交尝试进行比较,以区分日志缺失和提交丢失。

数量变化

某个事件的发生率远超其正常模式地上升或下降。

问题类型: 滥用与欺诈(促销或推荐滥用、虚假注册、垃圾信息、抓取。)

密码重置请求激增

状态: 开放

描述

密码重置请求量远高于每周正常水平,增加了邮件负载,并可能向账户所有者大量发送不需要的消息。

发生了什么

重置邮件事件达到平常周二发生率的六倍,而普通登录流量仍接近基线。重复的目标账户和相似的请求序列占了增量的大部分。这更像是滥用或意外的重试循环,而不是用户群体普遍增长。

如何调查

按目标账户和发起方对请求分组,检查客户端是否存在重试循环,并对滥用流量实施每账户重置次数限制。

序列中断

A 通常会跟随 B;现在 A 发生了,但 B 没有发生。

问题类型: 静默故障(功能看似正常但实际不起作用:无操作、异常被吞掉、部分完成、结果错误、状态卡住。)

上传始终无法完成

状态: 开放

描述

上传请求正常开始,但未能到达完成步骤,导致文件不可用,尽管用户已经开始传输。

发生了什么

“Upload started”记录仍在持续出现,但其请求 ID 没有匹配的“upload complete”事件。缺失的完成事件集中出现在存储交接之后。用户只能等待一个尚未完成最终处理的文件,且没有相应的应用错误提示。

如何调查

通过存储和最终处理流程追踪受影响的上传 ID。检查是否存在已放弃的分段上传、失败的回调,以及缺失的超时或错误处理。

顺序或时序变化

步骤顺序错乱,或步骤之间的间隔变长。

问题类型: 数据完整性(写入丢失、重复、损坏、记录不匹配。)

Webhook 在记录创建前已处理

状态: 开放

描述

Webhook 处理与其要更新的记录创建过程发生竞争,导致原本有效的事件因数据缺失而被丢弃。

发生了什么

Webhook 处理程序在相应的创建事务提交之前就查询记录。查询结果为空,但之后再次读取时记录已经存在,却没有应用 Webhook 更新。尽管两个请求都已完成,事件顺序仍导致本地状态落后于服务提供方。

如何调查

将 Webhook 接收时间与事务提交时间关联起来,保留未匹配的事件以便重试,并确保目标记录存在后重放事件是安全的。

字段漂移

事件中的值发生变化:出现新类别、空值、空字符串或异常大小。

问题类型: 数据完整性(写入丢失、重复、损坏、记录不匹配。)

写入记录缺少所属公司

状态: 开放

描述

部分写入记录丢失了公司关联,导致这些记录无法在预期范围内可靠地归属或检索。

发生了什么

此前有值的 company_id 字段在 3% 的写入记录中变成了 null。这些记录都来自同一条输入路径,该路径在持久化之前未提供公司上下文。写入操作成功了,但下游按公司范围查询时,已无法在预期集合中找到这些记录。

如何调查

追踪公司上下文如何传递到该写入路径,拒绝缺少必需所有权字段的记录,并在尝试按范围修复之前找出受影响的记录。

基数激增

某个字段突然出现了更多不同的值。

问题类型: 容量风险(在限制造成影响之前就已逼近上限。)

缓存键不断增加

状态: 开放

描述

对于原本相似的请求,缓存不断创建新键,降低了复用率并增加了存储压力。

发生了什么

每分钟都会为同一小组路由生成数千个不同的缓存键。键值中包含随请求变化的后缀,因此本应复用的条目在重复请求时无法命中。键集合不断扩大,增加了内存使用量,同时也让更多工作落到后端服务上。

如何调查

比较新旧键的构造方式,移除意外加入的请求特定字段,并在清理无法访问的条目之前验证过期机制。

失败事件的措辞不明显

描述失败的事件却被记录为 info 或 debug 级别。

问题类型: 静默故障(功能看似正常但实际不起作用:无操作、异常被吞掉、部分完成、结果错误、状态卡住。)

定价更新跳过了最大账户

状态: 开放

描述

定价任务将一个被跳过的账户视为已成功完成,导致最大账户的用户仍按旧的积分成本付费。

发生了什么

应用定价变更的任务因硬编码上限跳过了最大账户,随后却报告“completed”。跳过操作被记录为 info 级别,因此该客户的用户仍按旧的积分成本付费。

如何调查

检查上限和跳过账户的处理方式,为被排除的账户重新运行更新,并在记录完成之前验证已应用的价格。

重试风暴

同一操作在短时间内反复重试。

问题类型: 后台任务失败(定时工作遗漏、重复、卡住或为空。)

任务陷入紧密重试循环

状态: 开放

描述

后台工作进程反复重试相同的失败记录,却没有取得进展,消耗了其他任务所需的容量。

发生了什么

某个任务在紧密循环中对每条受影响的记录尝试 30 次。各次尝试之间的错误和输入都没有变化,也没有逐渐增加的延迟。反复失败占用了工作进程,使其无法处理独立记录,也无法报告受阻的工作。

如何调查

判断重复错误是暂时性还是永久性,采用有界退避,并将重试耗尽的记录移至可供审核的失败状态。

关联中断

通常同步变化的两个服务出现了偏离。

问题类型: 后台任务失败(定时工作遗漏、重复、卡住或为空。)

工作进程处理速度跟不上

状态: 开放

描述

API 流量不断上升,但工作进程完成量没有相应增加,这表明已接受的工作可能没有进入队列,或没有从队列中完成处理。

发生了什么

API 仍在接受请求,但已完成的工作进程任务数量保持不变。此前这两个计数会同步变化。两者出现偏离意味着 API 成功响应已无法证明所请求的后台工作已经完成,而且两者之间可能隐藏着队列或分发故障。

如何调查

按任务 ID 比较已接受、已入队、已启动和已完成的数量,在重放或扩容工作之前找出中断点。

新事件

从未出现过的一类事件。

问题类型: 回归(特定部署或配置变更导致行为异常。)

部署后草稿被跳过

状态: 开放

描述

发布后,新的保存路径开始跳过已锁定的草稿,导致用户的编辑未被应用,且没有引发异常。

发生了什么

“skipping save, draft locked”消息在部署后首次出现。受影响的请求返回时没有通常的草稿持久化事件,而后续读取仍显示旧版本。新分支阻止了保存,而不只是增加了诊断日志。

如何调查

检查此次发布引入的锁定检查,检查过期锁的清理情况,并确认被拒绝的保存操作会向用户明确报告。

用户行为

操作未生效

点击后没有服务器请求,或请求没有产生持久化结果。

问题类型: 静默故障(功能看似正常但实际不起作用:无操作、异常被吞掉、部分完成、结果错误、状态卡住。)

界面显示已连接,但没有令牌

状态: 开放

描述

账户连接流程显示成功,但 OAuth 令牌从未持久化,导致该连接无法通过身份验证。

发生了什么

用户连接账户时看到了“connected”,但 OAuth 令牌从未保存。重复的回调将用户带到了成功页面,而原始请求却在后台失败。

如何调查

同时检查原始回调和重复回调的结果。只有在令牌存储成功后才报告连接成功,然后重新连接受影响的账户。

疯狂重复点击

同一个控件被反复点击。

问题类型: 静默故障(功能看似正常但实际不起作用:无操作、异常被吞掉、部分完成、结果错误、状态卡住。)

用户不断猛点 Save

状态: 开放

描述 用户反复点击“保存”,因为表单没有确认更改是否已被接受,导致他们重试,而重试可能会造成重复操作。

发生了什么

在一个会话中,同一控件在十秒内被点击五次。第一个请求仍处于待处理状态时,后续点击又发起了更多请求,而且表单没有显示成功或失败状态。此交互模式表明保存过程可能卡住,或缺少反馈。

如何调查

跟踪第一个保存请求,显示其待处理和失败状态,并在确认重试仍然安全的同时防止重复提交。

漏斗流失

步骤之间的转化率下降。

问题类型: 业务流程中断(关键指标下降,且由技术原因导致。)

注册完成率降至 50%

状态: 开放

描述

开始注册的人数多于完成注册的人数,流失主要发生在提交表单到创建账户之间。

发生了什么

注册完成率从 80% 降至 50%,而已开始的会话数量基本持平。会话到达提交步骤,却没有出现账户创建事件。这一下降反映的是引导流程未完成,而不只是到达网站的访客减少。

如何调查

在第一个缺失步骤处比较失败和成功的注册跟踪记录,然后按验证结果、客户端版本和身份提供方进行细分。

导航循环

用户在相同页面之间来回跳转。

问题类型: 静默失败(功能看似正常但实际无法使用:操作无效、异常被吞掉、部分完成、结果错误、状态卡住。)

用户卡在设置和账单页面之间

状态: 开放

描述

用户在设置和账单页面之间来回跳转,无法到达完成任务所需的页面。

发生了什么

会话反复遵循“设置 → 账单 → 设置”的路径,中间没有任何完成事件。每个目标页面都根据不同的账户状态检查将用户送回。尽管两个路由都返回成功响应,这个循环仍使用户无法访问账单控件。

如何调查

比较两个路由使用的访问条件和账户状态。解决相互冲突的重定向,并从受影响的会话中验证整个流程。

流程死路

会话结束于错误状态、空白屏幕或无限旋转指示器。

问题类型: 前端故障(在特定浏览器、设备或应用版本中无法正常工作。)

仪表板旋转指示器一直不消失

状态: 开放

描述

仪表板一直停留在加载状态,直到用户离开;它没有显示可用内容或错误,而是掩盖了请求卡住的问题。

发生了什么

会话显示仪表板旋转指示器超过 30 秒,随后标签页关闭。初始数据请求始终没有产生已渲染的成功或失败状态。其他页面资源正常加载,因此问题范围缩小到数据加载路径,而非整个页面不可用。

如何调查

检查待处理请求和组件的错误边界,添加可恢复的超时状态,并确认加载失败时用户可以重试。

客户端错误

JavaScript 异常、请求获取失败、水合错误。

问题类型: 回归(特定部署或配置更改导致行为异常。)

发布后出现新的 TypeError

状态: 开放

描述

新发布的页面在渲染期间抛出 TypeError,导致受影响的用户无法访问页面内容。

发生了什么

该异常首次出现在使用新版本的会话中,且都指向同一个堆栈位置。页面渲染前,失败代码尝试读取一个缺失的响应对象中的属性。请求在网络层可能成功,但界面仍无法显示其结果。

如何调查

将堆栈映射到已发布的源代码,检查受影响会话中的响应结构,并在渲染前处理缺失值。

Web Vitals 回归

页面加载和响应速度变差。

问题类型: 性能下降(页面、作业或 API 变慢,可能突然发生,也可能逐渐发生。)

交互延迟翻倍

状态: 开放

描述

某个页面上的交互需要更长时间才能产生视觉响应,尽管服务器仍正常响应。

发生了什么

该页面的交互延迟相较于之前的基线翻倍。浏览器跟踪记录显示,额外等待时间来自用户输入后主线程上的长时间任务,而网络耗时基本持平。用户感受到界面响应延迟,但没有对应的 API 错误或延迟峰值。

如何调查

分析输入后发生的长任务,比较发生变化的渲染路径,并在再次测量响应速度前,将同步工作移出关键路径或减少其工作量。

特定细分群体的行为

仅影响某个浏览器、操作系统、应用版本、地区或客户。

问题类型: 前端故障(在特定浏览器、设备或应用版本中无法正常工作。)

Safari 18 上的结账失败

状态: 开放

描述

Safari 18 会话中的结账失败,而其他浏览器可以完成相同流程,因此整体成功率掩盖了这次回归。

发生了什么

结账失败的会话集中在 Safari 18。其客户端跟踪记录在付款请求发出前就已中断,而其他浏览器中的相同购物车可以进入付款步骤。这个浏览器特有的问题会阻止购买,却不会产生相应的支付服务提供方故障。

如何调查

在 Safari 18 中重现失败的交互,检查浏览器 API 兼容性和客户端异常,然后在正常工作的浏览器中验证修复。

部署和配置

部署后的变化

任何在部署后几分钟内开始、且与提交相关的其他信号。

问题类型: 回归(特定部署或配置更改导致行为异常。)

发布后漏斗转化率下降

状态: 开放

描述

发布后,完成用户流程的人数减少,同时出现新的拒绝事件,这表明回归与请求路径的变化有关。

发生了什么

发布四分钟后,出现了此前从未见过的验证事件,漏斗完成率随之下降。失败会话都到达同一个步骤,并带有新的构建标识;使用旧构建的会话仍能完成流程。对比结果表明,已发布的路径是下一步应调查的方向。

如何调查

比较两个构建版本中的验证和响应处理逻辑。重现受影响的输入,并在隔离变更的同时评估回滚方案。

配置或功能标志变更

功能标志、环境变量或基础设施变更后,行为发生变化。

问题类型: 回归(特定部署或配置更改导致行为异常。)

功能标志发布导致保存失败

状态: 开放

描述

部分启用的功能标志将一部分保存请求导向失败路径,而其余流量仍正常运行。

发生了什么

该标志对 10% 的流量启用,保存失败也占相同比例。失败记录都属于已启用的用户群体;未启用的用户群体仍能持久化更改。发布范围的边界提供了直接对比,有助于定位回归。

如何调查

停用受影响的标志用户群体,比较两条保存路径,并在再次扩大发布范围前验证持久化结果。

依赖项变更

升级的软件包与新行为同时出现。

问题类型: 性能下降(页面、作业或 API 变慢,可能突然发生,也可能逐渐发生。)

ORM 升级后查询变慢

状态: 开放

描述

ORM 升级改变了常见读取操作的执行方式,使请求变慢,但用户请求的数据量并未改变。

发生了什么

慢查询记录从升级后的构建版本开始出现,并集中在一条生成的查询上。旧版本对相同输入使用不同的查询结构,而请求量基本持平。依赖项变更可能导致了新增的数据库工作。

如何调查

比较不同 ORM 版本生成的 SQL 和查询计划,检查加载行为的变化,并测试修正后的查询或回滚依赖项。

新增了吞掉错误的处理逻辑

某次提交在重要路径上添加了兜底错误处理。

问题类型: 静默失败(功能看似正常但实际无法使用:操作无效、异常被吞掉、部分完成、结果错误、状态卡住。)

控制器隐藏所有异常

状态: 开放

描述

控制器现在会将失败的操作转换为成功响应,导致调用方和错误监控无法识别工作并未完成。

发生了什么

变更后的控制器用兜底处理程序包裹主要操作,并返回成功。请求跟踪记录显示响应前发生了异常,但没有对应的持久化结果。新的处理程序掩盖了失败,而不是从失败中恢复,因此用户可能会丢失更改,却看不到错误提示。

如何调查

检查兜底分支,为未成功的操作保留失败响应,并验证只有在写入完成后才返回成功。

迁移影响

架构迁移改变了查询行为。

问题类型: 性能下降(页面、作业或 API 变慢,可能突然发生,也可能逐渐发生。)

迁移后查询慢了 20 倍

状态: 开放

描述

架构迁移移除了频繁查询所用的索引,导致查询执行时间增加,并拖慢依赖该查询的请求。

发生了什么

受影响的查询在迁移后耗时增加了 20 倍。其执行计划从索引查找变为大范围扫描,而请求结构没有变化。缺失的索引使每个请求都要检查更多行,并在正常流量下增加数据库工作量。

如何调查

比较迁移内容和查询计划,确认所需的索引结构,并使用数据库的安全迁移流程恢复合适的索引。

性能

延迟骤变

突然跳升。

问题类型: 回归(特定部署或配置更改导致行为异常。)

页面加载时间跃升至 1.2s

状态: 开放

描述

部署后页面加载速度立即变慢了四倍,为原本正常的用户流程增加了明显的等待时间。

发生了什么

部署后,页面加载时长从 300ms 增至 1.2s。请求跟踪记录显示,增加的耗时来自服务器端数据加载阶段,而非资源下载。响应仍然成功,因此仅查看错误数量会忽略这次体验变慢。

如何调查

比较部署前后的数据加载代码和查询耗时,然后使用相同的请求输入验证慢路径。

延迟逐渐漂移

数天或数周内缓慢变慢,以至于无人察觉。

问题类型: 性能下降(页面、作业或 API 变慢,可能突然发生,也可能逐渐发生。)

搜索每周都变慢

状态: 开放

描述

搜索速度一点点变慢,逐渐累积成用户可感知的延迟,却不会表现为单次事件中的峰值。

发生了什么

相似的搜索每周耗时约增加 5%。排除请求量的影响后,这种变化仍然存在,且主要集中在数据查找阶段,而非响应传输阶段。每次查询的工作量增加可能是原因之一,尽管没有任何一次部署能解释这一趋势。

如何调查

比较基线时段内的查询计划、检查的行数和索引大小。检查数据增长是否改变了常见搜索路径的成本。

尾部延迟

只有最慢的请求变得更慢。

问题类型: 性能下降(页面、作业或 API 变慢,可能突然发生,也可能逐渐发生。)

p99 延迟增至三倍

状态: 开放

描述

最慢的请求耗时大幅增加,而典型请求仍然很快,因此少数用户的体验变差被掩盖了。

发生了什么 p99 延迟增加了三倍,而中位数保持不变。慢速跟踪的大部分额外耗时都花在执行前等待共享资源上。总体平均值掩盖了这些等待,但受影响的请求仍会被阻塞足够长的时间,从而面临客户端超时的风险。

调查方法

按资源和工作负载对慢速跟踪进行分组,将等待时间与执行时间进行比较,并在增加容量之前检查资源争用。

慢查询出现

出现新的慢查询,或新的 N+1 模式。

问题类型: 性能下降(页面、作业或 API 变慢,可能突然发生,也可能逐渐发生。)

一个页面执行 400 次查询

状态: 开放

描述

页面为每个显示的项目分别执行一次数据库查询,随着列表增长,响应时间和数据库负载也随之增加。

发生了什么

现在,一个页面请求会执行 400 次查询,语句结构相同,但记录 ID 不同。这些重复读取在初始列表查询之后串行发生。这种 N+1 模式会使工作量随显示项目数量成比例增加,而不是一次性获取相关数据。

调查方法

跟踪逐项查询,批量获取或联接相关数据,并使用有代表性的列表比较查询次数和响应时间。

启动和冷启动耗时增加

服务启动时间变长。

问题类型: 容量风险(在限制造成影响之前发出预警。)

部署后就绪速度变慢

状态: 开放

描述

新实例需要更长时间才能就绪,导致部署变慢,也降低了服务响应额外需求的速度。

发生了什么

从进程启动到就绪状态的时间间隔是此前基线的三倍。启动日志显示,额外延迟发生在初始化完成之前,而稳定状态下的请求延迟仍然相近。因此,滚动发布和扩容需要更长时间才能获得可用容量。

调查方法

将启动过程拆分为依赖项加载、初始化和就绪检查,与早期版本逐个阶段进行比较,并从就绪路径中移除不必要的工作。

队列等待时间增长

工作开始前的等待时间变长。

问题类型: 后台作业失败(计划任务遗漏、重复、卡住或未执行。)

邮件延迟 20 分钟才发出

状态: 开放

描述

邮件作业在队列中等待很长时间才开始执行,导致消息延迟,即使实际发送仍然成功。

发生了什么

从触发邮件到尝试发送的间隔增长到 20 分钟。工作进程开始执行作业后,处理时间和服务提供商响应时间仍然正常。延迟发生在执行之前,因此仅查看成功送达数量无法发现消息到达过晚。

调查方法

比较队列等待时间、工作进程并发数和相互竞争的作业类型。消除瓶颈,或将紧急邮件分离出来,同时保留安全的重试行为。

基础设施

接近限制

云配额、突发积分、API 速率限制、文件句柄、套餐限制。

问题类型: 容量风险(在限制造成影响之前发出预警。)

突发积分即将耗尽

状态: 开放

描述

文件系统突发积分的消耗速度快于恢复速度,使启动和其他存储密集型工作面临被限流的风险。

发生了什么

随着读取量超过预置基线,积分余额在连续多个时间段内持续下降。新实例启动与这些读取同时发生,并且对可用吞吐量很敏感。这一趋势表明剩余突发容量有限,但并不能证明卷已经受到限流。

调查方法

将存储吞吐量与基线及积分恢复速率进行比较,找出主要读取方,并在积分耗尽前调整预置容量或启动 I/O。

饱和

CPU、内存、连接池、线程池、磁盘。

问题类型: 容量风险(在限制造成影响之前发出预警。)

连接池接近满载

状态: 开放

描述

流量高峰期间,数据库连接池几乎没有余量,导致请求在执行查询前等待。

发生了什么

峰值负载下,连接池利用率达到 95%,获取连接的等待时间也随之上升。一旦获得连接,查询执行时间仍相对稳定。争用发生在连接池边界,可能使正常的请求突发演变为超时。

调查方法

检查连接长时间占用和事务持续时间,确认数据库容量,并在提高连接池上限之前修复不必要的连接占用。

积压增长

队列增长速度快于清空速度。

问题类型: 后台作业失败(计划任务遗漏、重复、卡住或未执行。)

作业队列持续增长 6 小时

状态: 开放

描述

新作业的到达速度超过完成速度,导致等待处理的已接收工作量持续增加。

发生了什么

由于入队数量持续高于完成数量,作业队列连续增长了六小时。尽管工作进程仍在运行,较早的作业等待时间仍不断增加。服务正在处理部分工作,但吞吐量不足以满足传入负载。

调查方法

按作业类型比较到达率和完成率,找出耗时过长或反复重试的工作,并恢复足够的处理能力以清空最早的积压作业。

计划任务遗漏

cron 作业未运行、运行了两次或运行时间过长。

问题类型: 后台作业失败(计划任务遗漏、重复、卡住或未执行。)

夜间导出任务被跳过

状态: 开放

描述

计划的导出任务未启动,导致下游使用方无法获得该次运行通常生成的最新数据。

发生了什么

周日的夜间导出没有启动或完成记录,但相邻的计划运行均有记录。该计划时间段也没有输出。这种缺失更符合触发遗漏或任务准入失败,而不是作业运行后返回错误。

调查方法

检查调度器执行情况、时区处理和重叠锁,然后在确认重放不会导致导出重复后,补跑缺失的时间段。

崩溃循环

重启、内存不足终止、健康检查失败。

问题类型: 后台作业失败(计划任务遗漏、重复、卡住或未执行。)

工作进程每 12 分钟重启一次

状态: 开放

描述

工作进程反复重启,无法持续正常处理工作,导致正在执行的作业中断,队列中的工作也被延迟。

发生了什么

工作进程启动并处理作业,然后大约每 12 分钟退出一次。每次重启都会丢失当前进程状态,未完成的工作随后会重新投递。这种模式表明进程反复失败,但必须根据退出原因区分崩溃、资源终止或健康检查失败。

调查方法

检查每次重启前后的退出代码、内存使用情况和健康检查事件。修复故障,并验证中断的作业能够恢复,且不会产生重复副作用。

即将过期

证书、域名、API 令牌、OAuth 授权。

问题类型: 容量风险(在限制造成影响之前发出预警。)

TLS 证书即将过期

状态: 开放

描述

活动服务路径中的证书即将过期,但没有证据表明替换证书已安装。

发生了什么

端点提供的 TLS 证书将在六天后过期。重复检查仍返回同一张证书,因此续期尚未部署到服务层。当前连接仍可正常工作,但如果该证书在有效期结束后仍处于活动状态,连接将无法通过验证。

调查方法

检查续期自动化和证书部署,安装替换证书,并验证客户端实际收到的证书。

云服务提供商错误

来自 AWS 或 GCP API 的限流或错误。

问题类型: 依赖项故障(供应商或上游服务发生故障或变更。)

S3 上传速度变慢

状态: 开放

描述

对象上传花费更多时间重试存储服务提供商的请求,导致用户传输变慢,并占用上传工作进程。

发生了什么

上传期间,S3 请求返回 SlowDown 响应,随后对同一对象进行多次重试。额外耗时发生在存储重试中,而不是本地文件处理过程中。最终成功的响应可能掩盖上传路径上的额外等待和资源消耗。

调查方法

检查请求并发数和重试退避策略,比较受影响的对象前缀,并确认被限流的上传能够安全恢复,而无需重新开始已完成的工作。

第三方服务

Webhook 中断

预期的入站 webhook 不再到达。

问题类型: 依赖项故障(供应商或上游服务发生故障或变更。)

邮件送达 webhook 已停止

状态: 开放

描述

邮件仍在发送,但送达回调已停止,导致本地送达状态无法反映服务提供商的实际处理结果。

发生了什么

一小时内没有收到任何邮件送达事件,但出站发送请求仍然获得了服务提供商 ID。中断仅影响回调,并非所有邮件活动。消息可能已送达或发送失败,但这两种结果都没有传回应用程序。

调查方法

将服务提供商的送达记录与本地 webhook 接收记录进行比较,检查回调端点和签名验证,然后安全地重放缺失事件。

服务提供商性能下降

依赖的服务提供商出现错误或延迟。

问题类型: 依赖项故障(供应商或上游服务发生故障或变更。)

登录验证码未发送

状态: 开放

描述

登录请求看似成功,但邮件服务提供商拒绝了用户完成身份验证所需的邮件。

发生了什么

由于邮件服务提供商不再将发送域名视为已验证,登录验证码始终未能送达。发送操作作为后台任务运行,因此 API 仍返回 200。

调查方法

恢复发送域名验证并检查后台发送结果。明确显示验证码发送被拒绝的情况,不要将 API 的 200 响应视为已送达的证明。

服务提供商速率限制

你受到限流。

问题类型: 依赖项故障(供应商或上游服务发生故障或变更。)

工单 API 配额每天耗尽

状态: 开放

描述

定期执行的工单抓取任务超出了服务提供商配额,导致最后一个区域的数据部分过时,同时仍报告正常完成。

发生了什么

每日抓取任务连续两周每天都触及工单 API 配额,约发出 10.5k 次请求,而上限为 10k。最后一个区域始终未能完全刷新,但每次作业都正常结束。

调查方法

在各区域之间分配请求预算,配额恢复后从未完成的部分继续,并在抓取任务因达到服务提供商限制而停止时记录部分完成状态。

契约变更

服务提供商的响应结构发生变化。

问题类型: 依赖项故障(供应商或上游服务发生故障或变更。)

服务提供商字段返回空值

状态: 开放

描述

服务提供商的响应不再提供应用程序所需的字段,导致处理流程中断,尽管上游请求本身成功。

发生了什么

此前有值的字段现在在成功的服务提供商响应中返回空值。应用程序仍假定该字段存在,因此无法完成相应更新。这一变化发生在集成边界上,没有 HTTP 错误,因此传输层监控仍显示正常。

调查方法

将原始响应结构与预期契约及服务提供商的变更进行比较,验证必需字段,并在重试更新之前明确处理缺失值。

匹配服务提供商事件

提供商状态页上的事故与您的错误相吻合。

问题类型: 依赖故障(供应商或上游服务发生故障或变更。)

登录错误与提供商事故相吻合

状态: 开放

描述

登录失败与身份提供商事故同时发生,这表明问题可能出在上游依赖,而非应用整体故障。

发生了什么

登录错误开始出现的时间段和区域,与身份提供商状态页所述的情况一致。故障发生在与提供商交互期间,而其他无关的应用请求仍在继续。时间和受影响的依赖支持这种关联,但不能排除同时存在本地故障。

如何调查

将失败的交互与提供商事故的影响范围进行比较,检查本地配置,并在监控恢复情况的同时,为用户提供明确的重试方式。

LLM 行为漂移

模型输出发生变化:长度、拒绝响应、格式错误的 JSON、令牌用量。

问题类型: 依赖故障(供应商或上游服务发生故障或变更。)

结构化输出有 4% 的失败率

状态: 开放

描述

模型响应违反结构化输出约定的情况增多,导致下游任务无法使用原本成功生成的结果。

发生了什么

同一功能的结构化输出解析失败率从 0.1% 上升到 4%。无效响应包含缺失字段,或包含预期 JSON 结构之外的文本。提供商请求仍能完成,但应用无法安全使用这些结果,因此必须拒绝或重试受影响的任务。

如何调查

比较变更前后的模型版本、提示词和架构验证,检查无效输出,并在恢复正常处理前验证受约束输出修复方案。

数据完整性

写入但未持久化

保存操作已确认,但之后却找不到数据。

问题类型: 静默故障(功能看似正常但实际不起作用:无操作、异常被吞掉、部分完成、结果错误、状态卡住。)

CI 同步未保存任何内容,却报告成功

状态: 开放

描述

CI 同步在获取流水线后报告成功,却没有保存任何内容,导致过时的项目数据看起来像是已正常刷新。

发生了什么

一次 CI 同步运行了整整 30 分钟,获取了数千条流水线,却一条也没有保存,并将自身标记为成功。各项目的错误被吞掉,因此同步历史看起来正常,数据却逐渐过时。

如何调查

检查被吞掉的各项目错误,将获取的流水线与已持久化的记录进行核对,并且仅在确认写入正常后重新运行受影响的项目。

重复处理

同一事件、作业或付款被处理了两次。

问题类型: 数据完整性(写入丢失、重复、损坏、记录不匹配。)

每次注册收到两封欢迎邮件

状态: 开放

描述

每个新账户都会收到两封欢迎邮件,因为同一注册事件可能触发多次发送。

发生了什么

两次已完成的发送尝试具有相同的注册事件 ID 和收件人,但使用了不同的发送 ID。重试的事件再次进入欢迎邮件处理程序,而没有记录发送保护。尽管两次尝试各自都成功,重复的副作用仍然影响了用户。

如何调查

追踪事件重新投递和发送保护逻辑,确保每个注册事件的发送具有幂等性,并验证重放事件只会发送一封邮件。

对账不匹配

不同系统中的计数不一致。

问题类型: 数据完整性(写入丢失、重复、损坏、记录不匹配。)

存款已支付,但从未入账

状态: 开放

描述

提供商此前报告存款失败后,该存款的后续付款未能更新用户钱包。

发生了什么

支付提供商报告一笔存款失败,40 分钟后却将款项支付出去。资金已到账,但用户的钱包从未入账,而且没有任何错误。

如何调查

将提供商的最终存款状态与钱包账本进行比较。补记缺失的款项,并验证后续状态变更能够得到处理且不会重复入账。

业务指标漂移

注册、申请、付款或消息数量远超其通常波动范围。

问题类型: 业务流程中断(关键指标下降,且存在技术原因。)

申请量下降 35%

状态: 开放

描述

尽管入口流量相近,已完成的申请仍低于通常水平,表明提交流程内部可能存在问题。

发生了什么

与上周同一时段相比,申请量下降了 35%,而访问申请表单的次数基本持平。差异出现在提交尝试与已存储申请之间。这种模式表明问题可能出在处理或验证环节,而非需求简单下降。

如何调查

将提交结果和验证原因与基准时段进行比较,然后追踪受影响的尝试在持久化过程中的情况,再判断是否应归因于用户行为。

输出为空

作业报告成功,却没有产生任何结果。

问题类型: 后台作业故障(计划任务遗漏、重复、卡住或无结果。)

保留期限清理未脱敏任何内容

状态: 开放

描述

对于选择退出保留提示词的组织,保留期限清理作业一直能找到待清除的提示词数据,却从未将其脱敏。

发生了什么

对于选择退出提示词保留的组织,清理作业一直能找到待清除的数据,却将脱敏行数记为零后继续运行。该作业连续一个月按计划运行,没有抛出异常,涉及 11 个组织。

如何调查

比较候选数据选择条件、脱敏谓词和受影响行数。确认符合条件的数据已被删除后,再重新运行受影响的清理任务。

数据过时

缓存和同步作业停止刷新。

问题类型: 数据完整性(写入丢失、重复、损坏、记录不匹配。)

目录数据已过时三天

状态: 开放

描述

尽管上游数据源已发生变化,目录读取仍返回旧快照,导致用户看到过时记录。

发生了什么

目录最近一次成功刷新是在三天前。读取操作仍返回该快照,而同步尝试未能更新其新鲜度标记。由于缓存仍能响应,可用性检查保持正常,但新增或变更的条目并未出现。

如何调查

追踪刷新作业和检查点更新,将源记录与缓存快照进行比较,并在安全地重新同步后验证数据新鲜度。

成本

日志量激增

部署后日志突然变得非常嘈杂。

问题类型: 成本异常(日志、云服务或 LLM 用量支出激增。)

调试日志每天记录 4000 万次

状态: 开放

描述

一条新近频繁出现的调试消息占据了大部分日志流,在流量没有相应增长的情况下增加了日志采集和存储工作量。

发生了什么

部署后,一条调试日志每天产生 4000 万条事件。其调用位置处于重复执行的操作中,因此每个请求现在都会输出许多条相同日志。日志量的变化源于日志记录行为,而非有用的应用活动相应增加。

如何调查

找到重复调用的日志语句,减少冗余输出或对其进行采样,并在日志量恢复到基准水平后确认诊断覆盖仍然有效。

云支出异常

某项服务或资源的支出突然增加。

问题类型: 成本异常(日志、云服务或 LLM 用量支出激增。)

数据传输成本翻倍

状态: 开放

描述

数据传输支出翻倍,但流量没有相应增长,这表明请求可能正通过成本更高的路径传输数据。

发生了什么

一夜之间,传输成本翻倍,而应用请求数基本持平。增幅集中在服务之间的流量,而非面向用户的响应大小。路由或部署位置变更可能导致重复传输或跨区域传输,而普通请求指标无法显示这些情况。

如何调查

按来源、目的地和部署变更拆分传输用量,然后确认路由变更或重复获取是否解释了额外的字节数。

LLM 支出激增

按功能或客户划分的令牌用量激增。

问题类型: 成本异常(日志、云服务或 LLM 用量支出激增。)

智能体循环耗尽了一周的预算

状态: 开放

描述

智能体反复发出相似的模型调用,却无法完成任务,导致某个工作流的令牌用量异常偏高。

发生了什么

某个账户的智能体运行在一天内消耗了一周的正常令牌预算。连续调用重复使用相同的工具结果,并携带不断增长的上下文,但没有出现任务终结结果。反复循环增加了成本,却没有带来更多有用进展。

如何调查

检查重复的决策和工具结果,停止无效运行,并在重启任务前添加有界重试和无进展退出机制。

遥测缺口

服务停止发声

某个来源停止发送日志。

问题类型: 可观测性缺口(存在盲区,或遥测本身带来风险。)

工作节点集群停止发出日志

状态: 开放

描述

配置变更后,工作节点集群停止发出日志,导致无法获取了解其当前工作所需的诊断记录。

发生了什么

队列活动显示作业仍在处理,但工作节点日志量降至零。静默始于配置变更,并影响整个集群,而非单台主机。这表明问题可能出在日志记录或传输路径上,并不能证明所有工作节点都已停止运行。

如何调查

将日志记录器和导出器配置与先前版本进行比较,检查传输错误,并验证一个已知工作节点事件从发出到采集的完整链路。

格式无法读取

新的日志格式无法解析。

问题类型: 可观测性缺口(存在盲区,或遥测本身带来风险。)

新日志格式无法读取

状态: 开放

描述

日志记录器升级改变了记录格式,导致传入日志丢失用于分析和关联的结构化字段。

发生了什么

来源仍在发送记录,但解析失败始于日志记录器升级之后。原始行在解析器预期位于顶层的字段外新增了一层封装。事件到达时缺少可靠的严重级别、消息或请求上下文,降低了其诊断价值。

如何调查

比较新旧原始记录,更新解析约定,并在确认来源正常前验证有代表性的多行事件和错误事件。

盲区

重要路由或作业没有遥测数据。

问题类型: 可观测性缺口(存在盲区,或遥测本身带来风险。)

支付端点没有日志

状态: 开放

描述

新的支付端点处理请求时没有生成应用遥测数据,导致难以调查故障和未完成的操作。

发生了什么

入口记录显示请求已到达该端点,但日志流中没有匹配的应用启动记录、结果记录或请求 ID。其他支付路由仍会发出这些事件。缺少这些覆盖信息,导致无法追踪请求经过验证、提供商调用和持久化的全过程。

如何调查

追踪路由的日志中间件,添加带有关联 ID 的结构化结果事件,并在不记录支付凭据或敏感负载的前提下验证完整记录链路。

时钟偏差

不同来源的时间戳发生漂移。

问题类型: 可观测性缺口(存在盲区,或遥测本身带来风险。)

主机时间落后 4 分钟

状态: 开放

描述 一台主机的事件时间戳早于其他主机,导致同一个请求在不同服务中的执行顺序看起来错乱。

发生了什么

这台主机的事件时间比其他来源中匹配的请求 ID 晚了四分钟。接收时间仍然接近,因此差异来自记录的事件时间,而非传输延迟。这种时钟偏差会扭曲时间线,并可能误导延迟或顺序分析。

如何调查

检查主机时间同步和时间戳序列化,校准时钟,然后重新比较关联事件,再依赖跨服务的时间信息。

示例来自 Sazabi Detection Catalog。部分信号仍在开发中。

适配你的技术栈

浏览所有集成

聊天服务提供商(3 个集成)

Git 提供商(2 个集成)

问题跟踪与值班(6 个集成)

日志来源(73 个集成)

基础设施工具(17 个集成)

数据库工具(12 个集成)

AI 与工作流工具(32 个集成)

团队与运营工具(43 个集成)

案例研究

阅读案例研究

Weave

Weave 如何通过用 Sazabi 取代手动检测,每周节省 20 多个工程工时

Sazabi 将过去的盲点变成了我们能在客户察觉之前发现并修复的问题。完全避免问题固然最好;其次就是能立即发现问题,而这正是 Sazabi 带给我们的。

Andrew Churchill,Weave 联合创始人兼 CTO

  • 8.5 分钟:定位生产问题根因所需时间
  • 9 分钟:完成设置所需时间

阅读案例研究

Mastra

Mastra 如何借助 Sazabi 的根因告警,将 45 分钟的调查缩短为即时告警

Sazabi 为我们提供了发布所需的生产环境可见性,无需搭建我们通常会配置的可观测性方案。现在,每次部署时,我们都信赖它作为安全网。

Abhi Aiyer,Mastra 联合创始人兼 CTO

  • 45 分钟:使用 Sazabi 前的手动调查时间
  • 150 个问题:两周内发现的生产问题

阅读案例研究

XMTP Labs

XMTP Labs 如何借助 Sazabi 将 Bug 检测时间从数天缩短至数分钟

将 Sazabi 纳入我们的可观测性技术栈后,我们定位根因的速度比以往任何方法都快得多。

Nick Molnar,XMTP Labs CTO

  • 5 分钟:发现重大事件所需时间
  • 20 分钟:为严重问题发布修复所需时间

阅读案例研究

博客精选

查看所有文章

以不同方式实现可观测性与安全

01 一切皆为日志

指标、追踪、应用事件、智能体操作,都在描述发生了什么。日志为人类和智能体提供了理解系统的共同基础。

02 日志驱动异常检测

你不必预测每一种故障才能发现问题。以日志为基础,Sazabi 可以发现系统行为的变化,并调查发生了什么。

03 为 AI 原生世界而构建

AI 正在改变软件的构建和运行方式。Sazabi 让人类和智能体能够共同访问采取行动所需的证据和工具。

客户评价

在最初两天里,Sazabi 就发现了大约 8 个问题;即使使用 Sentry,我们原本也发现不了这些问题。

Bence R.,Hoplite

生活在未来:Sazabi 创建 PR,Cursor 评估风险并批准,CI 全部通过。

Evan,AGREE

并非每条告警都优先级很高,但每条都能采取行动。我对其质量印象非常深刻。

Yash N.,Sandstone

Sazabi 发来的一些问题让我忍不住 🤯,而且确实很有帮助。随着我们的微服务不断增长,这一点越来越重要。

Nanda G.,Taiga

Slack 告警非常出色,我甚至不需要打开仪表板。编码智能体会在 Bug 出现时及时修复。

Charlie L.,Autumn

Sazabi 是我们值班工作的支柱。加上新的安全告警,我们现在可以实时紧急响应。

Ed P.,WAJO

满足企业需求

使用你自己的云

在你自己的 AWS 账户中运行日志接收、处理和存储。部署由 Sazabi 运维。

  • 由你的组织拥有的存储
  • 由你制定的保留策略
  • 可由你撤销的访问权限

阅读 BYOC 公告

合规

安全标准和隐私承诺,助力团队完成审核。

  • SOC 2
  • SOC 1
  • ISO 27017
  • ISO 27001
  • GDPR

访问信任中心

访问与安全

连接你的身份提供商,并管理整个组织的访问权限。

  • 支持 SAML / OIDC 的 SSO
  • SCIM 配置
  • 基于角色的权限
  • 受限的项目访问权限
  • 双重身份验证

了解访问控制

常见问题

什么是 Sazabi?

Sazabi 是面向工程团队和编码智能体的 AI 原生可观测性与安全平台。它会结合你的代码读取生产日志,检测重要问题,逐一调查直至找到根因,并将结果发送到团队已在使用的工具中。

我需要编写监控器或告警规则吗?

不需要。Sazabi 会监控日志,发现值得进一步调查的变化,例如某个事件不再发生、某个步骤开始悄然失败,或部署后延迟突然升高。它的智能体会调查这些信号,确认是否造成实际影响,然后才创建问题;你无需维护监控器、阈值或告警规则。

Sazabi 可以连接哪些日志和工具?

发送来自 Datadog、PostHog、Sentry、Google Cloud、Supabase 和 Cloudflare 等来源的日志,并连接 GitHub 中的代码,让 Sazabi 能将问题追溯到相关的提交和文件。问题会通过 Slack、Microsoft Teams、电子邮件或短信发送给你的团队。

Sazabi 如何与编程代理协作?

每个问题都附有根本原因和修复计划,你可以直接交给 Claude Code、Codex 或 Cursor 等编程代理。代理在工作时也可以通过 CLI 和 MCP 向 Sazabi 查询日志。

我的日志可以保留在自己的云端吗?

可以。使用 Sazabi BYOC 时,日志接收、处理和存储都在你自己的 AWS 账户中运行,日志也会保存在由你的组织拥有的存储空间中,而 Sazabi 负责运行部署。不过,查询结果和日志摘录仍可能发送给 Sazabi 和模型提供商。

Sazabi 的费用是多少?

Hobby 每 30 天周期收费 $50,Startup 收费 $200,Growth 收费 $1,000,每个方案都包含一定用量。Enterprise 的价格和条款可定制。请查看定价页面,了解各方案包含的内容。

如何开始使用?

在终端中运行 npx @sazabi/cli start 来设置 Sazabi,或按照文档中的快速入门指南操作。

规范 URL

https://www.sazabi.com