跳转到内容
Telemetry
数据库可靠性 SQL查询示例

通过 SQLSTATE 和版本分析数据库错误

按可移植 SQLSTATE 类、应用程序操作和发布对数据库故障进行分组。

入门database_error_events已审核 2026-07-28测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

应用程序发布后哪些数据库错误类别增加了?

原始错误消息不稳定,可能包含敏感值。 SQLSTATE 加上受控操作名称支持版本比较并路由到正确的所有者。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp数据库故障时间。
database_systemUtf8数据库系统。
operation_nameUtf8受控的应用程序操作。
sqlstateUtf8可移植的 SQLSTATE 代码(如果可用)。
releaseUtf8应用发布。
request_idUtf8安全父请求标识符。
DataFusion SQL

复制查询

sql
SELECT
  database_system,
  release,
  operation_name,
  sqlstate,
  COUNT(*) AS failures,
  COUNT(DISTINCT request_id) AS affected_requests
FROM database_error_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY database_system, release, operation_name, sqlstate
ORDER BY failures DESC, affected_requests DESC;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

SQLSTATE 导致的数据库故障

结帐时的序列化失败在该版本的数据库错误中占主导地位。

database_systemreleaseoperation_namesqlstatefailuresaffected_requests
postgresqlapi-88checkout40001184176
postgresqlapi-88project-create235056262

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Database failures by SQLSTATE:来自 Analyze Database Errors by SQLSTATE and Release 示例结果的合成 failures 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, illustrative 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1SQLSTATE 比对原始错误字符串进行分组更安全、更稳定。
  2. 2操作名称保留应用程序所有权。
  3. 3不同的请求估计面向客户的影响。

需要决定的边缘情况

  • 并非每个驱动程序都一致地公开 SQLSTATE。
  • 相同的 SQLSTATE 可能有不同的原因。
  • 存储经过清理的错误类别,而不是完整的语句值或服务器消息。

推荐仪表板

  • 条形:SQLSTATE 失败
  • 趋势:按版本划分的失败情况
  • 表:受影响的操作和请求计数

警报指导

发布后对新的高容量 SQLSTATE 或已知的关键类(例如连接失败)发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥