Warm tip: This article is reproduced from serverfault.com, please click

sum of rate function in prometheus

发布于 2020-11-25 11:27:17

Given the following prometheus time series called requests : enter image description here

the vector query requests[3 seconds] is :
enter image description here

and the rate of the vector query requests[3 seconds], rate(requests[3 sec]) (computed by the shown formula) is :

enter image description here

My question is : what is sum(rate(requests[3 sec])) evaluated at seconds 5, 4 and 3 respectively is it 16.5, 6.5 and 1. Any idea?

Questioner
Mazen Ezzeddine
Viewed
0
Michael Doubez 2020-11-30 01:03:46

You are misunderstanding the purpose of sum. It is not performing a sum over time but over the dimensions for your metric.

In your example, assuming there are multiple requests metrics (with a dimension page by exemple), rate(requests[3 sec]) will give you (at some point in time):

{page="A"}  12.4
{page="B"}  1.5
{page="C"}  0 .... (and so on for each metrics requests with different label set)

The sum function will sum the values of the different rates; and sum(ate(requests[3 sec])) will give you only one value:

{}  42.13 <-- the sum of all rate(requests[3s]) values

BONUS: In the case you metric have multiple dimensions (represented by multiple labels in your metric) you can tell sum() to operate on a subset of them: sum(ate(requests[3 sec])) ON(foo)