Introducing Insights Anomalies
任何负责运维大型生产数据库的人都知道,确保你的数据库运行正常并达到最佳性能可能既困难又耗时。即使拥有经过验证的监控仪表盘、最新的监控工具,以及对你的应用程序的深刻理解,“嘿,数据库是不是出问题了?”这句话仍然会让最有经验的操作者心生恐惧。
今天,我们在 PlanetScale 推出了一套强大的新功能——Insights Anomalies,旨在简化这个问题的答案。它的目标是为你的数据库健康状况提供一个清晰的概览,并在出现问题时让故障排查变得更加轻松。本文将探讨 Insights Anomalies 并展示其实现方式。
Insights Anomalies
当你导航至 PlanetScale 数据库中的 “Insights” 标签页时,你会发现一个新的 “Anomalies” 区域。在这里,你会看到一个图表,该图表根据超过预期执行时间的查询数量衡量你的数据库健康状况随时间的变化。
数据库健康图示:显示两个异常点
任何数据库健康状况不佳的时间段(在图中表现为大值)都会被标记为红色图标,表示性能异常。点击异常图标后,会出现一个详细视图,提供帮助理解异常原因的相关信息。
异常详细信息页面:显示异常指标
数据库健康状况
你可能会好奇,“健康状况不佳” 在这个背景下是什么意思?数据库健康图显示的是什么量化指标?
异常图中的数据表示查询中“异常慢”的百分比。“异常慢”的查询被定义为执行时间超过同模式查询在过去一周平均值的两倍标准差(即 2σ 或第 97.7 百分位)。为了确定这一阈值,我们执行以下步骤:
- 按 SQL 指纹(Fingerprint)聚合查询响应时间分布,并在 MySQL 中存储该分布的概率草图(Probabilistic Sketch)。
- 使用存储的草图确定过去一周内每个查询指纹的 2σ 阈值。
- 运算并统计超过该阈值的每个查询模式的查询数量。
值得注意的是,我们为什么要对每个查询模式计算阈值,而不是使用像全局延迟百分位这样的简单指标作为数据库健康的代理值。在比较每个新查询与其特定查询模式的响应时间基线时,我们实现了每个查询模式的严格对比。那些总是比较慢的查询仅在其性能比过往显著更慢时才会被视为异常。如果我们的异常比例升高,我们就知道同样的查询模式比过去一周执行得更慢。
这种方式为诊断数据库资源瓶颈提供了强信号,并避免了因为数据库工作负载变化而产生的误报。
根据我们在内部 PlanetScale 数据库的实际经验,我们发现这种指标可靠地指示了数据库是否被推到了其运行极限。
故障排查异常
确定一个异常是否正在发生(或并未发生)本身就是一个十分宝贵的能力。但同样重要的是,要找到问题的根本原因。为实现这一点,Insights 会列出每个异常相关的度量指标,具体包括:
- 高级查询指标,例如每秒读取和写入的行数。
- 基础数据库资源利用率的指标,例如 CPU 使用率和磁盘使用情况(IOPS)。
- 发生异常时运行的备份和部署请求的列表,因为这些操作可能会消耗共享资源。
将时间序列的指标与异常期之前、期间和之后数据库的整体健康状况并列展示,通常可以很好地揭示瓶颈位置。例如以下案例中,异常期间每秒写入行数约增加了 300%。
查询级异常指标:显示写入量显著升高的图表
在某些情况下,我们不仅能继续探讨高级汇总指标(例如读/写),还可以告诉你哪些特定查询模式最有可能导致异常的根源。
相关查询
Insights 记录并存储你数据库中所有查询模式的准确查询计数,因此我们可以将每个查询模式的执行速率与整体数据库健康状况指标进行比较,识别出高度相关的查询。在以下示例中,我们可以看到整体数据库健康指标与某个后台任务间歇性运行的代价高昂查询之间存在明显的相关性。
异常的相关查询
为了发现异常中显示的相关查询,我们会计算每个查询模式的执行速率与整体数据库健康状况指标之间的皮尔逊相关系数。在异常发生期间以及之前和之后的固定窗口内,我们返回具有最高相关系数的查询。并非所有异常都具有相关查询,例如由于在配置不足的数据库集群上运行备份导致的异常。因此,我们会排除低于某个相关阈值的结果。
当存在相关查询时,它可以将发现问题根因的时间缩短数小时。
立即试用
现在 PlanetScale 数据库的 Insights 中已经可以访问 Anomalies 标签。你可以在 PlanetScale Insights Anomalies 文档中了解更多信息。用户反馈有助于我们优化系统以提高准确性,因此请在 Twitter 上分享你的使用体验或直接联系我们,无论是正面还是负面反馈。
注释
- 2σ 或第 97.7 百分位 并没什么特别的。这一值之所以被采用,是因为它是定义统计异常的一个相当常见的选择。
- 如果对使用 2σ 统计异常来评估系统健康背后的动机感兴趣,可以参考两位 Google 工程师在 SREcon22 上的精彩演讲。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.choupangxia.com/2025/09/13/introducing-insights-anomalies/