跳转到内容
Telemetry
前端可靠性 SQL查询示例

按路由计算浏览器长任务率

通过路由和前端释放来测量主线程阻塞事件及其总阻塞时间。

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

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

问题已回答

哪些路线和版本在浏览器长任务中花费最多时间?

长任务显示即使网络请求很快,主线程工作也会延迟交互。速率和阻塞时间使频率和严重性可见。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp任务完成时间。
route_templateUtf8稳定的页面路由。
releaseUtf8前端构建标识符。
duration_msFloat64观察到的主线程任务持续时间。
interaction_relatedBoolean任务是否与测量的交互重叠。
DataFusion SQL

复制查询

sql
SELECT
  route_template,
  release,
  COUNT(*) AS observed_tasks,
  SUM(CASE WHEN duration_ms > 50 THEN 1 ELSE 0 END) AS long_tasks,
  SUM(CASE WHEN duration_ms > 50 THEN duration_ms - 50 ELSE 0 END)
    AS blocked_time_ms,
  100.0 * SUM(CASE WHEN duration_ms > 50 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS long_task_rate_pct
FROM browser_task_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY route_template, release
ORDER BY blocked_time_ms DESC;

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

查询结果

通过路由阻塞主线程时间

尽管观察到的任务较少,但编辑器创建了两倍以上的阻塞时间。

route_templatereleaseobserved_taskslong_tasksblocked_time_mslong_task_rate_pct
/editorweb-1039,20064452,1807
/dashboardweb-10315,40046223,8603

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

Blocked main-thread time by route:来自 Calculate Browser Long-Task Rate by Route 示例结果的合成 blocked_time_ms 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 150 毫秒边界遵循浏览器长任务约定。
  2. 2阻塞时间减去允许的前 50 毫秒,因此严重性是累加的。
  3. 3发布分组支持前后审核。

需要决定的边缘情况

  • 必须记录浏览器支持和采样率。
  • 后台选项卡工作可能会产生误导。
  • 长任务表明阻塞,但在没有补充分析的情况下无法识别负责的功能。

推荐仪表板

  • 酒吧:blocked_time_ms 按路线
  • 趋势:long_task_rate_pct(按版本)
  • 表:交互相关的长任务

警报指导

审查发布后持续的阻塞时间回归;仅当与关键工作流程相关时才显示页面。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥