跳转到内容
Telemetry
基础设施 SQL查询示例

计算事件检测和恢复时间

计算检测结构化事件生命周期事件的时间和恢复时间。

高级incident_lifecycle_events已审核 2026-07-28测试用 阿帕奇 DataFusion 45.2.0

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

问题已回答

每项服务需要多长时间来检测事件并从事件中恢复?

事件时间表应将客户影响、检测和解决分开。在计算服务级别检测和恢复平均值之前,此查询将生命周期事件转换为每个事件的一条记录。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp生命周期事件时间(UTC)。
incident_idUtf8稳定的事件标识符。
serviceUtf8主要受影响的服务。
event_nameUtf8impact_started,已检测到或已解决。
severityUtf8审查了事件的严重性。
environmentUtf8部署环境。
DataFusion SQL

复制查询

sql
WITH incident_times AS (
  SELECT
    incident_id,
    service,
    MIN(CASE WHEN event_name = 'impact_started' THEN timestamp_utc END)
      AS impact_started_at,
    MIN(CASE WHEN event_name = 'detected' THEN timestamp_utc END)
      AS detected_at,
    MAX(CASE WHEN event_name = 'resolved' THEN timestamp_utc END)
      AS resolved_at
  FROM incident_lifecycle_events
  WHERE timestamp_utc >= now() - INTERVAL '90 days'
    AND environment = 'production'
  GROUP BY incident_id, service
)
SELECT
  service,
  COUNT(*) AS incidents,
  AVG(date_part('epoch', detected_at - impact_started_at) / 60.0)
    AS average_detection_minutes,
  AVG(date_part('epoch', resolved_at - detected_at) / 60.0)
    AS average_recovery_minutes
FROM incident_times
WHERE impact_started_at IS NOT NULL
  AND detected_at IS NOT NULL
  AND resolved_at IS NOT NULL
GROUP BY service
ORDER BY average_recovery_minutes DESC, service;

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

查询结果

事件检测和恢复时间

Billing-worker 的观察到的检测和恢复间隔较长。

serviceincidentsaverage_detection_minutesaverage_recovery_minutes
billing-worker11560
checkout-api27.532.5

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

Incident detection and recovery time:来自 Calculate Incident Detection and Recovery Time 示例结果的合成 average_recovery_minutes 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1在计算持续时间之前,生命周期事件将转为每个事件一行。
  2. 2检测措施影响检测开始;恢复措施检测到解决。
  3. 3不完整的事件不包括在完成持续时间平均值中,并且应单独报告。

需要决定的边缘情况

  • 定义恢复是在缓解、完全恢复还是事件结束时结束,并一致地使用一项规则。
  • 重新开启的事件可能需要多个影响间隔,而不是一个最长解决时间。
  • 平均值是说明性的;当事件量足够时报告中位数和百分位数。

推荐仪表板

  • 条形图:按服务划分的平均检测和恢复分钟数
  • 趋势:按月列出的已完成事件持续时间
  • 表:缺少已解决事件的开放事件

警报指导

使用操作警报来产生实时影响;使用此结果作为响应质量审核和趋势指标。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥