如何计算仪表指标的即时速率?

问题描述 投票:0回答:2

如何在不使用rate()或irate()的情况下计算Prometheus或Grafana中时间序列的每秒即时增长率?

此驱动功能无法帮助实现与 irate 相同的结果

irate(node_cpu_seconds_total[5m]) 

deriv(node_cpu_seconds_total_gauge[5m]) 

实际上我需要计算Gauge指标数据的时间序列的每秒瞬时增长率,这是一种修改后的计数器指标类型数据。

prometheus grafana monitoring metrics
2个回答
5
投票

您可以使用

deriv()
来实现这一点。这是一个例子:

deriv(process_virtual_memory_bytes{job="$job", instance="$instance"}[$__interval])

enter image description here


1
投票

Prometheus 没有为

gauge
时间序列提供 irate() 等效项 :(

如果您仍然需要它,请尝试使用 VictoriaMetrics 的 ideriv 功能。它返回基于时间序列的最后两个样本的导数:

ideriv(metric_name[5m])

请注意,

irate()
ideriv()
函数都不会捕获尖峰,因为它们基于原始样本的子集执行计算,而忽略其余样本。详情请参阅本文。如果您需要捕获峰值,请查看 rollup_deriv 函数。它基于所有原始样本可靠地捕获
min
max
avg
导数,这些样本命中了方括号中给定的后视窗口。

© www.soinside.com 2019 - 2024. All rights reserved.