活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 请求完成时间(UTC)。 |
| feature_flag | Utf8 | 受控功能标志名称。 |
| cohort | Utf8 | 推出或控制分配。 |
| release | Utf8 | 应用程序发布标识符。 |
| status | Utf8 | 终端成功或失败状态。 |
| latency_ms | Int64 | 端到端请求延迟(以毫秒为单位)。 |
| environment | Utf8 | 部署环境。 |
DataFusion SQL
复制查询
sql
SELECT
feature_flag,
cohort,
release,
COUNT(*) AS requests,
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS errors,
100.0 * SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS error_rate_pct,
AVG(latency_ms) AS avg_latency_ms
FROM feature_rollout_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY feature_flag, cohort, release
ORDER BY error_rate_pct DESC, cohort;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
按群组划分的推出错误率
综合推出队列的失败率为 20%,而对照组则没有。
rollout
20%
comparison 5%
control
0%
comparison 5%
| feature_flag | cohort | release | requests | errors | error_rate_pct | avg_latency_ms |
|---|---|---|---|---|---|---|
| new-checkout | rollout | api-88 | 5 | 1 | 20 | 300 |
| new-checkout | control | api-88 | 5 | 0 | 0 | 200 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1功能标志、队列和版本使比较可以在推出边界上重现。
- 2错误率旁边的请求量暴露出的比较太小,无法做出自信的决策。
- 3延迟仍保持相同的结果,因为部署可以在不增加错误的情况下回归体验。
需要决定的边缘情况
- 分配必须足够稳定,以便同一帐户不会在比较窗口内切换群组。
- 比较同等流量和客户组合,或通过审查的有界维度对结果进行细分。
- 使用置信区间和更长的窗口来得出不可逆转的产品结论。
推荐仪表板
- 酒吧:error_rate_pct(按群组)
- 趋势:请求、错误和延迟(按部署百分比)
- 表:按版本和最低样本状态划分的功能标志
让查询示例发挥作用
相关埋点和指南
定义源数据
此分析的事件模式
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。