活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 资源完成时间。 |
| resource_host | Utf8 | 批准的主机名,不带路径或查询值。 |
| resource_type | Utf8 | 脚本、样式表、图像、获取或其他有界类。 |
| duration_ms | Float64 | 资源持续时间。 |
| transfer_bytes | Int64 | 传输响应字节(如果可用)。 |
| status | Utf8 | 成功、失败或被阻止。 |
DataFusion SQL
复制查询
sql
SELECT
resource_host,
resource_type,
COUNT(*) AS resources,
approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
SUM(transfer_bytes) AS transfer_bytes,
SUM(CASE WHEN status <> 'success' THEN 1 ELSE 0 END) AS failures
FROM frontend_resource_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY resource_host, resource_type
HAVING COUNT(*) >= 20
ORDER BY p95_duration_ms DESC, failures DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
按主机划分的 p95 资源持续时间
与第一方提取组相比,分析脚本速度较慢且失败的频率更高。
analytics.example
1,820 ms
comparison 42 ms
api.example
910 ms
comparison 18 ms
| resource_host | resource_type | resources | p95_duration_ms | transfer_bytes | failures |
|---|---|---|---|---|---|
| analytics.example | script | 2,140 | 1,820 | 68,480,000 | 42 |
| api.example | fetch | 8,210 | 910 | 124,200,000 | 18 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1主机和类型保留所有权,而不存储完整的资源 URL。
- 2尾部持续时间显示第三方间歇性缓慢。
- 3传输的字节有助于区分延迟和有效负载增长。
需要决定的边缘情况
- 跨源计时详细信息取决于浏览器策略。
- 缓存的资源需要单独的解释。
- 切勿存储签名的 URL、查询字符串或用户特定的路径。
推荐仪表板
- 酒吧:p95_duration_ms(按主机)
- 趋势:按资源类型划分的故障
- 表:transfer_bytes(按批准的主机)
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。