活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 交易终端事件时间。 |
| service | Utf8 | 拥有应用服务。 |
| transaction_name | Utf8 | 稳定的逻辑事务类。 |
| release | Utf8 | 应用发布。 |
| duration_ms | Float64 | 从开始到结束的交易持续时间。 |
| outcome | Utf8 | 已承诺,rolled_back 或 timed_out。 |
DataFusion SQL
复制查询
sql
SELECT
service,
transaction_name,
release,
COUNT(*) AS transactions,
approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
MAX(duration_ms) AS max_duration_ms,
SUM(CASE WHEN outcome <> 'committed' THEN 1 ELSE 0 END) AS unsuccessful
FROM database_transaction_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY service, transaction_name, release
ORDER BY p95_duration_ms DESC, unsuccessful DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
p95 交易持续时间
发票最终确定具有最长的尾部和最不成功的结果。
invoice-finalize
6,800 ms
comparison 28 ms
member-import
4,210 ms
comparison 9 ms
| service | transaction_name | release | transactions | p95_duration_ms | max_duration_ms | unsuccessful |
|---|---|---|---|---|---|---|
| billing | invoice-finalize | api-88 | 820 | 6,800 | 24,100 | 28 |
| projects | member-import | api-88 | 240 | 4,210 | 18,200 | 9 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1事务类将持续时间连接到应用程序所有者。
- 2最大程度暴露了稳定百分位旁边的极端资源。
- 3非提交结果包括完整终端视图的回滚和超时。
需要决定的边缘情况
- 缺少终端事件需要单独的开始到终端连接。
- 服务器等待事件和锁定图需要数据库本机诊断。
- 不要记录具有绑定值的语句。
推荐仪表板
- 酒吧:p95_duration_ms(按交易)
- 趋势:发布不成功
- 表:最长安全交易事件
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。