eval Metrics Operator
The eval operator evaluates a time series based on a user-specified arithmetic or mathematical function.
Syntax
eval expr([REDUCER BOOLEAN EXPRESSION | _value] [_granularity])
expris basic arithmetic or mathematical function: +, -, *, /, sin, cos, abs, log, round, ceil, floor, tan, exp, sqrt, min, max_valueis the placeholder for each data point in the time series.REDUCER BOOLEAN EXPRESSIONis an expression that takes all the values of a given time series, uses a function to reduce them to a single value, and evaluates that value. The supported functions are:avg. Returns the average of the time series.min. Returns the minimum value in the time series.max. Returns the maximum value in the time series.sum. Returns the sum of the values in the time series.count. Returns the count of data points in the time series.pct(n). Returns the nth percentile of the values in the time series.latest. Returns the last data point in the time series.stddev. Returns standard deviation of the points in the time series.
_granularity. Returns the length of the quantization bucket in milliseconds. You can use this placeholder in your query.
Examples
Example 1
This query returns the value of the CPU_Idle metric, multiplied by 100.
metric=CPU_Idle | eval _value * 100
Example 2
This query sets the value of each point in a single time series to the average of all values in that time series.
metric=CPU_Idle | eval avg
For example, if you have this series, where the points are (timestamp, value):
m1: (0, 1) (1, 2) (2, 3)
m2: (0, 3) (1, 6) (2, 9)
then eval avg would produce:
m1: (0, 2) (1, 2) (2, 2)
m2: (0, 6) (1, 6) (2, 6)
Example 3
This query returns the rate of change per second for the metric.
metric=CPU_Idle | sum | eval 1000 * _value / _granularity