活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | UTC 中的度量采样时间。 |
| source | Utf8 | 稳定的主机、服务或容器标识符。 |
| environment | Utf8 | 部署环境。 |
| cpu_utilization_pct | Float64 | CPU 利用率从 0 到 100。 |
| memory_utilization_pct | Float64 | 内存利用率从 0 到 100。 |
| disk_utilization_pct | Float64 | 磁盘利用率从 0 到 100。 |
DataFusion SQL
复制查询
sql
SELECT
date_trunc('hour', timestamp_utc) AS hour,
source,
COUNT(*) AS samples,
AVG(cpu_utilization_pct) AS average_cpu_pct,
MAX(cpu_utilization_pct) AS maximum_cpu_pct,
AVG(memory_utilization_pct) AS average_memory_pct,
MAX(memory_utilization_pct) AS maximum_memory_pct,
MAX(disk_utilization_pct) AS maximum_disk_pct
FROM system_metrics
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY date_trunc('hour', timestamp_utc), source
HAVING COUNT(*) >= 6
AND (
AVG(cpu_utilization_pct) >= 80.0
OR AVG(memory_utilization_pct) >= 85.0
OR MAX(disk_utilization_pct) >= 90.0
)
ORDER BY average_cpu_pct DESC, average_memory_pct DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
饱和源的平均 CPU 利用率
导入工作程序受到 CPU 限制,而 API 源由于持续的内存压力而输入结果。
worker-imports-03
91.4%
comparison 78.8%
api-primary-02
62.1%
comparison 89.3%
| hour | source | samples | average_cpu_pct | maximum_cpu_pct | average_memory_pct | maximum_memory_pct | maximum_disk_pct |
|---|---|---|---|---|---|---|---|
| 2026-07-27 14:00 | worker-imports-03 | 60 | 91.4 | 99.2 | 78.8 | 84.1 | 66.2 |
| 2026-07-27 14:00 | api-primary-02 | 60 | 62.1 | 88.4 | 89.3 | 93.6 | 72.5 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1每小时分组可减少单个样本的噪音,同时保持受影响的时间窗口可见。
- 2平均CPU和内存识别持续压力;最大磁盘利用率捕获了不应被平均掉的容量边界。
- 3最小样本可以防止部分报告源因数据太少而显得健康或饱和。
需要决定的边缘情况
- 当源报告多个核心的利用率时,容器 CPU 百分比可能会超过 100;首先使合同正常化。
- 内存压力取决于可回收的缓存和工作负载行为,而不仅仅是通用百分比。
- 丢失的样本需要单独的心跳或摄入新鲜度视图。
推荐仪表板
- 条形图:按来源划分的平均 CPU 和内存
- 趋势:最大磁盘利用率
- 表:包含样本数量和拥有服务的饱和来源
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。