活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | UTC 测量时间。 |
| route_template | Utf8 | 没有用户或查询字符串值的稳定路由模板。 |
| release | Utf8 | 前端版本标识符。 |
| metric_name | Utf8 | 受控 LCP、INP 或 CLS 指标名称。 |
| metric_value | Float64 | 以其记录单位表示的度量值。 |
| passed | Boolean | 示例是否通过了产品的版本阈值。 |
| environment | Utf8 | 部署环境。 |
DataFusion SQL
复制查询
sql
SELECT
route_template,
release,
COUNT(*) AS samples,
AVG(CASE WHEN metric_name = 'LCP' THEN metric_value ELSE NULL END) AS avg_lcp_ms,
AVG(CASE WHEN metric_name = 'INP' THEN metric_value ELSE NULL END) AS avg_inp_ms,
AVG(CASE WHEN metric_name = 'CLS' THEN metric_value ELSE NULL END) AS avg_cls,
100.0 * SUM(CASE WHEN passed THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS passing_samples_pct
FROM frontend_vital_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
AND environment = 'production'
GROUP BY route_template, release
ORDER BY passing_samples_pct ASC, route_template, release;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
通过路由传递前端样本
一半的合成 LCP、INP 和 CLS 样品通过 Checkout;搜索通过所有样本。
/checkout
50%
/search
100%
| route_template | release | samples | avg_lcp_ms | avg_inp_ms | avg_cls | passing_samples_pct |
|---|---|---|---|---|---|---|
| /checkout | web-102 | 6 | 2,800 | 220 | 0.1 | 50 |
| /search | web-102 | 6 | 1,850 | 120 | 0.05 | 100 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1路由模板可防止每个原始 URL 或客户标识符出现一个图表系列。
- 2发布维度将性能变化转变为部署范围的调查。
- 3特定指标的平均值保留在单个通过样本摘要旁边,以便审核者可以看到哪个重要部分发生了变化。
需要决定的边缘情况
- 使用经过审查的特定指标阈值,并在定义更改时记录其版本。
- 仅当样本量可以保护比较免受噪声影响时,才对设备类别和地理位置进行细分。
- 当 SQL 引擎和样本量允许时,在生产体验报告中优先使用百分位数而不是平均值。
推荐仪表板
- 酒吧:passing_samples_pct(按路线和发布)
- 趋势:全天 LCP、INP 和 CLS
- 表:包含样本数量和版本变化的路线
让查询示例发挥作用
相关埋点和指南
定义源数据
此分析的事件模式
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。