如何在不使用rate()或irate()的情况下计算Prometheus或Grafana中时间序列的每秒即时增长率?
此驱动功能无法帮助实现与 irate 相同的结果
irate(node_cpu_seconds_total[5m])
deriv(node_cpu_seconds_total_gauge[5m])
实际上我需要计算Gauge指标数据的时间序列的每秒瞬时增长率,这是一种修改后的计数器指标类型数据。
deriv()
来实现这一点。这是一个例子:
deriv(process_virtual_memory_bytes{job="$job", instance="$instance"}[$__interval])
Prometheus 没有为
gauge时间序列提供
irate()
等效项 :(
如果您仍然需要它,请尝试使用 VictoriaMetrics 的 ideriv 功能。它返回基于时间序列的最后两个样本的导数:
ideriv(metric_name[5m])
请注意,
irate()
和ideriv()
函数都不会捕获尖峰,因为它们基于原始样本的子集执行计算,而忽略其余样本。详情请参阅本文。如果您需要捕获峰值,请查看 rollup_deriv 函数。它基于所有原始样本可靠地捕获 min
、max
和 avg
导数,这些样本命中了方括号中给定的后视窗口。