delta() 函数是一个向量函数,用于计算两个时间序列样本之间的差值。它通常用于计算时间序列在指定时间范围内的变化量。
delta() 函数会计算范围向量的第一个样本和最后一个样本之间的差值,并返回一个新的瞬时向量,其中每个样本的值都是对应时间序列在这个时间范围内的变化量。
注意:delta() 函数只能用于具有相同标签的时间序列样本,因为它计算的是相同时间序列在不同时间点的差值。如果时间序列的标签不同,Prometheus 将无法正确计算差值。
delta() 函数的语法如下:
delta(v range-vector) [step]
参数说明:
v range-vector: 是一个范围向量,表示你想要计算差值的时间序列。
step: 是一个可选参数,表示计算差值时的时间步长。如果不提供,则默认为查询的时间范围除以向量的样本数量。
假设你有一个指标 process_virtual_memory_bytes ,记录了虚拟内存大小,以字节为单位。你想要知道过去 5 分钟内CPU使用率的变化量。你可以使用 delta() 函数来实现:
delta(process_virtual_memory_bytes[5m])
上面查询中,process_virtual_memory_bytes[5m] 是一个范围向量,表示过去 5 分钟内的虚拟内存大小样本。delta() 函数会计算这个范围内第一个和最后一个样本之间的差值,返回一个新的瞬时向量,其中包含一个样本,表示过去 5 分钟内虚拟内存大小使用率的变化量。
运行效果如下图: