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

按版本跟踪数据库迁移失败

在完成部署之前,按应用程序版本比较数据库迁移的成功、失败、回滚和持续时间。

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

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

问题已回答

哪些版本包含失败或回滚的数据库迁移?

部署可能看起来很健康,但部分应用的迁移会使后续应用程序请求面临风险。记录一个终端迁移结果可以检查发布准备情况。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp终端迁移时间(UTC)。
migration_idUtf8来自源代码控制的稳定迁移标识符。
serviceUtf8运行迁移的服务或部署作业。
database_nameUtf8批准的逻辑数据库名称。
releaseUtf8应用程序或基础设施发布。
statusUtf8成功、失败或 rolled_back。
duration_msFloat64迁移执行持续时间。
error_typeUtf8没有原始数据库输出的受控故障类别。
environmentUtf8部署环境。
DataFusion SQL

复制查询

sql
SELECT
  release,
  service,
  database_name,
  COUNT(*) AS migrations,
  SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) AS successful,
  SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failed,
  SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END) AS rolled_back,
  100.0 * SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS success_rate_pct,
  AVG(duration_ms) AS average_duration_ms
FROM database_migration_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
  AND environment = 'production'
GROUP BY release, service, database_name
ORDER BY release DESC;

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

查询结果

按版本划分的迁移成功率

较新的版本包含失败的迁移和回滚的迁移,不应视为完成。

releaseservicedatabase_namemigrationssuccessfulfailedrolled_backsuccess_rate_pctaverage_duration_ms
2026.07.2application-apiapp_production5311601,470
2026.07.1application-apiapp_production5500100890

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

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

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1每次迁移的一个终端行可防止启动和重试事件导致分母膨胀。
  2. 2失败和回滚结果仍然是分开的,因为成功回滚仍然意味着迁移未交付。
  3. 3版本、服务和数据库确定了需要审查的确切部署边界。

需要决定的边缘情况

  • 某些迁移工具会自动重试。在发出一个最终结果时单独保留尝试计数。
  • 成功的迁移在逻辑上仍然可能是错误的;将此视图与应用程序运行状况和部署后验证配对。
  • 不要记录原始 DDL、连接字符串或不受限制的数据库错误文本。

推荐仪表板

  • 条形:success_rate_pct(按版本)
  • 表:失败和回滚的迁移 ID
  • 趋势:迁移持续时间和部署计数

警报指导

当任何生产迁移失败或回滚的最终结果时,阻止推出完成。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥