当我们在 grafana 进行查询的时候,一般是范围查询。
range query 的参数:
- start, end timestamp (通常为整数, 比如 5 minutes)
- step, 步长。
如下图所示:
如上的例子,实际返回十一个时间点。
- 12:00:00.获取从 11:58:30 到 12:00:00 的数据
- 12:10:00.获取从 12:08:30 到 12:10:00 的数据
grafana alert 例子
对 go_gc_duration_seconds 进行查询,值为 0.00641。
每 1minute 一个点,查询五分钟,总共六个点。
将告警条件设置为 sum,对这六个点聚合,值为 0.03847。
如果将查询改成 sum_over_time,那么查询的值为 0.0256 = 0.00641 * 4。
这是因为原始的 scrape interval 是每 15s 一个点,1minutes 刚好四个点。
此时告警条件的值为 0.0256 * 6。
如果将 step 修改为 15s,其余条件不变。
那么告警获取的值为 0.13463 = 0.00641 * 21。
21 由 (5 * 60 / 15) + 1 计算得来。