Introduction Querying Metrics
Querying
Prometheus provides a functional expression language called PromQL
Provides built in operators and functions
Vector-based calculations like Excel
Expressions over time-series vectors
PromQL is read-only
Example:
100 - (avg by (instance) (irate(node_cpu_seconds_total{job='node_exporter',mode="idle"}[5m])) * 100)
Querying - Expressions
Instance vector
a set of time series containing a single sample for each time series, all sharing the same timestamp
Example:
node_cpu_secounds_total
RangeĀ vector
a set of time series containing a range of data points over time for each time series
Example:
node_cpu_seconds_total[5m]
Scalar
a simple numeric floating point value
Example:
-3.14
String
a simple string value; currently unused
Querying - Operators
Arithmetic binary operators
Example:
Operators
description
-
subtraction
*
multiplication
/
division
%
modulo
^
power/exponentiation)
Comparison binary operators
Example:
Operators
description
==
equal
!=
not-equal
>
greater-then
<
less-than
>=
greater-or-equal
<=
less-or-equal
Logical/set binary operators
Example:
Operators
description
and
intersection
or
union
unless
complement
Aggregation operators
Example:
Operators
description
sum
calculate sum over dimensions
min
select minimum over dimensions
max
select maximum over dimensions
avg
calculate the average over dimensions
stddev
calculate population standard deviation over dimensions
stdvar
calculate population standard variance over dimensions
count
count number of elements in the vector
count_values
count number of elements with the same value
bottomk
smallest k elements by sample value
topk
largest k elements by sample value
quantile
calculate
over dimensions