有人使用 $__interval 来选择固定值的范围吗?
Is anybody using $__interval for range selection over fixed values?
在 PromQL 中,我们使用范围向量选择器来获取 rate()
等函数的范围向量。 Grafana 提供了动态变量$__interval
,它的用法是这样的:
sum(rate(my_metric{foo="bar"}[$__interval]))
它的值是一个近似值,因此生成的范围向量包含大约每个像素(或更多)的一个条目。据我了解,这可以防止过度获取。
到目前为止一切顺利。但是查看 Grafana Cloud 中可用的多个仪表板,或者例如 Robust Perception 的演示仪表板,没有人在使用 $__interval
。相反,即使没有使用记录规则或警报,人们也会选择 1m
或 5m
。
这有什么原因吗?
$__interval
对于可以放大/缩小的图表很有用。在这种情况下,Grafana 会针对当前缩放级别自动调整 $__interval
。例如,$__interval=15s
用于 15s*1000=~4 hours
时间范围内的图表(1000 是 Grafana 请求构建图表的每个时间序列的近似点数;对于水平分辨率为最多 4000 像素),而 $__interval=1h
用于 1h*1000=~40 days
时间范围内的图表。这允许在构建图形时考虑原始时间序列中的所有原始数据点。
如果在方括号中使用固定的 5m
值,则图表的准确性可能会在小于 5m*1000=~3.5 days
的时间范围内受到影响。如果图表的时间范围超过3.5天,那么一些原始数据点将在计算中丢失。
在 PromQL 中,我们使用范围向量选择器来获取 rate()
等函数的范围向量。 Grafana 提供了动态变量$__interval
,它的用法是这样的:
sum(rate(my_metric{foo="bar"}[$__interval]))
它的值是一个近似值,因此生成的范围向量包含大约每个像素(或更多)的一个条目。据我了解,这可以防止过度获取。
到目前为止一切顺利。但是查看 Grafana Cloud 中可用的多个仪表板,或者例如 Robust Perception 的演示仪表板,没有人在使用 $__interval
。相反,即使没有使用记录规则或警报,人们也会选择 1m
或 5m
。
这有什么原因吗?
$__interval
对于可以放大/缩小的图表很有用。在这种情况下,Grafana 会针对当前缩放级别自动调整 $__interval
。例如,$__interval=15s
用于 15s*1000=~4 hours
时间范围内的图表(1000 是 Grafana 请求构建图表的每个时间序列的近似点数;对于水平分辨率为最多 4000 像素),而 $__interval=1h
用于 1h*1000=~40 days
时间范围内的图表。这允许在构建图形时考虑原始时间序列中的所有原始数据点。
如果在方括号中使用固定的 5m
值,则图表的准确性可能会在小于 5m*1000=~3.5 days
的时间范围内受到影响。如果图表的时间范围超过3.5天,那么一些原始数据点将在计算中丢失。