Перейти к основному содержимому
Версия: 9.2

Функции для работы с метриками

COMMUNITYCOREBUSINESSENTERPRISE

Агрегационные функции

Функция в запросеФункция в интерфейсеПодсказка/ОписаниеЗначение по умолчаниюДополнительные параметрыПример
avgAvgВычисляет среднее арифметическое значение метрики в каждый момент времени--avg(<expr>)
countCountПодсчитывает количество временных рядов, имеющих непустое значение в каждый момент времени--count(<expr>)
groupGroupВозвращает 1 для каждой группы, содержащей хотя бы одно непустое значение в каждый момент времени--group(<expr>)
maxMaxВычисляет максимальное значение среди всех временных рядов в каждый момент времени--max(<expr>)
minMinВычисляет минимальное значение среди всех временных рядов в каждый момент времени--max(<expr>)
sumSumВычисляет накопленную сумму значений метрики в каждый момент времени--sum(<expr>)
bottomkBottomkВозвращает k наименьших значений из всех временных рядов1k (обязательный) — количество временных рядов с наибольшими/наименьшими значениямиbottomk(1, <expr>)
topkTopkВозвращает k наибольших значений из всех временных рядов1k (обязательный) — количество временных рядов с наибольшими/наименьшими значениямиtopk(1, <expr>)
count_valuesCount valuesПодсчитывает количество временных рядов, которые в заданный момент времени имеют указанное значение"count"output_label (необязательный) — имя новой метки для значения счётчика. Может быть пустымcount_values("count", <expr>)
quantileQuantileВычисляет значение, ниже которого лежит определенный процент всех данных (указанный квантиль) по всем временным рядам в заданный момент времени1 (максимум)q (обязательный) — квантиль в диапазоне 0 ≤ q ≤ 1quantile(1, <expr>)

Агрегационные функции: общие параметры

Для функций avg, min, max, count, group, topk, bottomk, quantile и count_values поддерживаются следующие параметры агрегации по меткам:

ПараметрОписание
Режим агрегацииПо умолчанию без учета меток. С учетом только выбранных и с исключением выбранных меток
Выбор метокМножественный выбор из списка меток соответствующей метрики.Ууказание пользовательского имени метки
Режим агрегацииПоддерживается (например, по двум меткам одновременно)

Диапазоны

Функция в запросеФункция в интерфейсеПодсказка/ОписаниеПример
rateRateВычисляет среднюю скорость прироста метрики типа counter (счетчика) за указанный диапазон времени. Она автоматически обрабатывает сбросы счетчика и экстраполяцию, делая расчёты устойчивыми. Результат возвращается в единицах "значение в секунду"rate(<expr>[$__rate_interval])
increaseIncreaseВычисляет абсолютный прирост значения метрики типа counter (счетчика) за указанный диапазон времени. Она специально предназначена для счетчиков, корректно обрабатывая их сбросы. Результат показывает, на сколько именно увеличилось значение за периодincrease(<expr>[$__rate_interval])
changesChangesВычисляет количество изменений значения метрики за указанный промежуток времениchanges(<expr>[$__interval])
irateIrateВычисляет мгновенную скорость роста по последним двум точкам в диапазонеirate(<expr>[$__interval])
ideltaIdeltaВычисляет разницу между двумя последними значениями метрики в диапазонеidelta(<expr>[$__interval])
deltaDeltaВычисляет разницу между первым и последним значением метрики за указанный промежуток времениdelta(<expr>[$__interval])
double_exponential_smoothing/holt_wintersDouble exponential smoothing/Holt wintersВычисляет сглаженное значение для временных рядов на основе диапазона. Чем ниже коэффициент сглаживания, тем большее значение придается старым данным. Чем выше коэффициент тренда, тем больше трендов учитывается в данных. Коэффициент сглаживания и коэффициент тренда должны быть в диапазоне от 0 до 1-
predict_linearPredict linearПрогнозирует будущее значение временного ряда через t секунд на основе линейной регрессии за указанный периодpredict_linear(<expr>[$__interval], 60)
quantile_over_timeQuantile over timeВычисляет φ-квантиль ((0 ≤ φ ≤ 1)) значений метрики за указанный промежуток времениquantile_over_time(0.5, <expr>[$__interval])
derivDerivВычисляет мгновенную скорость изменения метрики (производную) за заданный диапазон времени на основе линейной регрессии, возвращая результат в единицах изменения метрики в секундуderiv(<expr>[$__interval])
resetsResetsДля каждого временного ряда функция возвращает количество сбросов счетчика в указанном временном диапазоне в виде вектора. Любое уменьшение значения между двумя последовательными выборками интерпретируется как сброс счетчикаresets(<expr>[$__interval])
avg_over_timeAvg over timeВычисляет среднее значение всех точек в указанном интервале для каждого временного рядаavg_over_time(<expr>[$__interval])
min_over_timeMin over timeВычисляет минимальное значение среди всех точек в указанном интервале для каждого временного рядаmin_over_time(<expr>[$__interval])
max_over_timeMax over timeВычисляет максимальное значение среди всех точек в указанном интервале для каждого временного рядаmax_over_time(<expr>[$__interval])
sum_over_timeSum over timeВычисляет суммарное значение всех точек в указанном интервале для каждого временного рядаsum_over_time(<expr>[$__interval])
count_over_timeCount over timeВычисляет количество всех значений в указанном интервале для каждого временного рядаcount_over_time(<expr>[$__interval])
last_over_timeLast over timeВозвращает последнее значение точки за указанный интервал для каждого временного рядаlast_over_time(<expr>[$__interval])
present_over_timePresent over timeОпределяет наличие точек временного ряда в указанном временном интервале. Возвращает 1 для временных рядов, которые имеют хотя бы одно значение в заданном диапазоне времениpresent_over_time(<expr>[$__interval])
absent_over_timeAbsent over timeВозвращает пустой вектор, если временной ряд имеет данные в заданном диапазоне, и единичный вектор (или вектор из 1 элемента со значением 1), если временной ряд не содержит элементов в заданном диапазонеabsent_over_time(<expr>[$__interval])
stddev_over_timeStddev over timeВычисляет стандартное отклонение значений метрики в указанном интервалеstddev_over_time(<expr>[$__interval])

Параметр диапазона (Range)

Параметр Range - временной диапазон для функций. Обязателен, при явном указании, не может быть пустым. Значение по умолчанию — $_interval (интервал шага запроса). Доступные предустановленные диапазоны: 1m, 5m, 1h, 24h, $_interval Можно выбрать один из списка или ввести произвольный в формате число + m/h/d.

Доступен выбор одного диапазона из списка или задание вручную. Расчет:

  • rate(metric[interval]) = (value_last - value_first) / (time_last - time_first)
  • increase(metric[interval]) = (value_last - value_first)
  • irate(metric[interval]) = (value_last - value_prev) / (time_last - time_prev)
  • idelta(metric[interval]) = value_last — value_prev
  • delta(metric[interval]) = value_last — value_first

Анализ

Функция в запросеФункция в интерфейсеПодсказка/ОписаниеПример
histogram_quantileHistogram quantileВычисляет φ-квантиль (0 ≤ φ ≤ 1) из данных гистограммы, используя её заранее настроенные интервалы. Она анализирует временные ряды с суффиксом _bucket, где каждый ряд соответствует одному интервалу и имеет метку, которая обозначает верхнюю границу («меньше или равно») этого интервала. Для корректного расчёта функция требует предварительного преобразования сырых счётчиков в скорость (например, с помощью rate()), чтобы получить актуальное распределение наблюдений за окно времениhistogram_quantile(0.9, <expr>)
histogram_avgHistogram avgВозвращает среднее арифметическое значений из исходной гистограммы. Выборки, которые не являются исходными гистограммами, игнорируются и не отображаются в возвращаемом вектореhistogram_avg(<expr>)
histogram_countHistogram countВозвращает общее количество наблюдений в гистограмме за указанный периодhistogram_count(<expr>)
histogram_sumHistogram sumВозвращает сумму всех наблюдений в гистограмме за указанный периодhistogram_sum(<expr>)
histogram_stddevHistogram stddevВозвращает стандартное отклонение наблюдений в гистограмме, основанное на среднем геометрическом значении групп, в которых находятся наблюденияhistogram_stddev(<expr>)
histogram_stdvarHistogram stdvarВозвращает дисперсию наблюдений в виде гистограммыhistogram_stdvar(<expr>)
label_replaceLabel replaceДля каждого временного ряда функция сопоставляет регулярное выражение regex с меткой src_label. Если оно совпадает, то временные ряды возвращаются с меткой dst_label, замененной расширением replacement. $1 заменяется на первую соответствующую подгруппу, $2 - на вторую и т.д. Если регулярное выражение не совпадает, то временные ряды возвращаются без измененийlabel_replace(<expr>, "", "$1", "", "(.*)")
lnLnВычисляет натуральный логарифм для всех элементов вектора. Особыми случаями являются: ln(+Inf) = +Inf; ln(0) = -Inf; ln(x<0) = Nan; ln(Nan) = Nanln(<expr>)
absAbsВозвращает вектор со всеми выборочными значениями, преобразованными в их абсолютное значениеabs(<expr>)
absentAbsentВозвращает пустой вектор, если переданный вектор имеет какие-либо элементы, иначе возвращает 1. Полезно для проверки существования метрики в момент времениabsent(<expr>)
ceilCeilОкругляет выборочные значения всех элементов вектора до ближайшего большего целого числаceil(<expr>)
clampClampОграничивает значения вектора заданным диапазоном, заменяя значения меньше Minimum scalar на Minimum scalar, а значения больше Maximum scalar на Maximum scalarclamp(<expr>, 1, 1)
clamp_maxClamp maxУстанавливает верхний предел для всех значений вектора, заменяя те, которые больше Maximum scalar, на значение Maximum scalarclamp_max(<expr>, 1)
clamp_minClamp minУстанавливает нижний предел для всех значений вектора, заменяя те, которые меньше Minimum scalar, на значение Minimum scalarclamp_min(<expr>, 1)
degDegПреобразует радианы в градусы для всех элементов вектораdeg(<expr>)
expExpВычисляет экспоненциальную функцию для всех элементов вектора. Особыми случаями являются: Exp(+Inf)=+Inf; Exp(Nan)=Nanexp(<expr>)
floorFloorОкругляет значения всех элементов вектора до ближайшего меньшего целого числаfloor(<expr>)
hourHourВозвращает час суток для каждого из заданных значений времени в UTC. Возвращаемые значения - от 0 до 23hour(<expr>)
label_joinLabel joinДля каждого временного ряда функция объединяет значения всех указанных исходных меток (src_labels) через разделитель и возвращает временной ряд с новой меткой dst_label, содержащей полученное объединённое значение. В этой функции может быть любое количество исходных метокlabel_join(<expr>, "", ",", "")
log10Log10Возвращает логарифм по основанию 10 для всех элементов вектораlog10(<expr>)
log2Log2Возвращает логарифм по основанию 2 для всех элементов вектораlog2(<expr>)
minuteMinuteВозвращает минуту часа для каждого из заданных значений времени в UTC. Возвращаемые значения - от 0 до 59minute(<expr>)
monthMonthВозвращает номер месяца (от 1 до 12) для каждого из заданных моментов времени в UTC. 1 соответствует январю, 2 — февралю, …, 12 — декабрю.month(<expr>)
piPiВозвращает математическую константу π (пи) (3.14159…)pi()
radRadПреобразует градусы в радианы для всех элементов вектораrad(<expr>)
roundRoundОкругляет значения элементов вектора, используя стандартные правила математического округления. По умолчанию округление производится до ближайшего целого числа. Необязательный аргумент to_nearest позволяет задать шаг (кратность), до которого следует округлять значения.round(<expr>, 1)
scalarScalarПреобразует вектор с одним элементом в скаляр, удаляя все его метки, для использования в операциях, требующих обычного числа (не вектора). Если входной вектор не содержит ровно одного элемента, функция scalar возвращает NaNscalar(<expr>)
sgnSgnВозвращает вектор с каждым из значений, преобразованным в его знак: 1 для положительных, -1 для отрицательных и 0 для нуля.sgn(<expr>)
sortSortВозвращает элементы временного ряда, отсортированные по значениям в порядке убыванияsort_desc(<expr>)
sqrtSqrtВычисляет квадратный корень для каждого элемента временного рядаsqrt(<expr>)
stddevStddevВычисляет популяционное отклонение значений среди всех временных рядов в заданный момент времениstddev(<expr>)
timeTimeВозвращает количество секунд, прошедших с 1 января 1970 года (UTC). Функция возвращает время, в которое должно быть вычислено выражениеtime()
timestampTimestampВозвращает для каждой точки данных временного ряда её метку времени — количество секунд, прошедших с 1 января 1970 года (UTC)timestamp(<expr>)
vectorVectorПреобразует скаляр в одноэлементный мгновенный вектор без метокvector(1)
yearYearВозвращает год для каждого из заданных значений времени в UTCyear(<expr>)

histogram_quantile

Вычисляет квантиль (процентиль) из гистограммы по bucket-метрикам.

Синтаксис: histogram_quantile(<квантиль>, <выражение_с_bucket>)

Параметр квантиль обязательный и ипринимает значения от 0.0 до 1.0. Доступные значения (выбор одного): 0.25, 0.5, 0.75, 0.9 (по умолчанию), 0.95, 0.99

Требования к входным данным:

  • метрики должны иметь суффикс _bucket и метку le (верхняя граница бакета)
  • второй аргумент — обычно rate() или irate() от bucket-метрик

Пример: histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[$__interval]))0.234 (означает: 90% запросов выполняются быстрее 0.234 секунд).

histogram_avg

Вычисляет среднее значение из гистограммы на основе bucket-метрик.

Синтаксис: histogram_avg(<выражение_с_bucket>)

Параметр histogram_avg - это выражение, возвращающее bucket-метрики (обычно с rate() или irate())

Требования к входным данным:

  • метрики должны иметь суффикс _bucket и метку le (верхняя граница бакета)
  • второй аргумент — обычно rate() или irate() от bucket-метрик

Пример: histogram_avg(rate(http_request_duration_seconds_bucket[5m])) → среднее время запроса за последние 5 минут.

histogram_stddev

Вычисляет стандартное отклонение наблюдений из гистограммы на основе bucket-метрик.

Синтаксис: histogram_stddev(<выражение_с_bucket>)

Параметр histogram_stddev - это выражение, возвращающее bucket-метрики (обычно с rate() или irate())

Требования к входным данным:

  • метрики должны иметь суффикс _bucket и метку le (верхняя граница бакета)

Пример: histogram_stddev(rate(http_request_duration_seconds_bucket[5m])) → стандартное отклонение времени запроса за последние 5 минут.

histogram_stdvar

Вычисляет дисперсию наблюдений из гистограммы на основе bucket-метрик.

Синтаксис: histogram_stdvar(<выражение_с_bucket>)

Параметр histogram_stdvar - это выражение, возвращающее bucket-метрики (обычно с rate() или irate())

Требования к входным данным:

  • Метрики должны иметь суффикс _bucket и метку le (верхняя граница бакета)

Пример: histogram_stdvar(rate(http_request_duration_seconds_bucket[5m])) → дисперсия времени запроса за последние 5 минут.

label_replace

Создаёт новую метку, извлекая часть значения существующей метки через регулярное выражение.

Синтаксис: label_replace(<expr>, "<новая_метка>", "<замена>", "<исходная_метка>", "<регулярное_выражение>")

Параметры:

  • новая_метка (необязательный) — имя создаваемой метки. Выбор из существующих или ручной ввод
  • замена (по умолч. $1) — строка с группами захвата ($1, $2…)
  • исходная_метка (необязательный, можно несколько) — метка, из которой извлекается значение (несуществующая игнорируется)
  • регулярное_выражение (по умолч. (.*)) — шаблон для извлечения

Пример: label_replace(metric{instance="server-01.prod.example.com:9100"}, "hostname", "$1", "instance", "([a-zA-Z0-9-]+)\\..*")metric{instance="...", hostname="server-01"}

clamp, clamp_min, clamp_max

Ограничивают значения вектора сверху, снизу или с обеих сторон.

Синтаксис:

  • clamp(<expr>, <min>, <max>)
  • clamp_max(<expr>, <max>)
  • clamp_min(<expr>, <min>)

Параметры:

  • min (обязательный, по умолч. 1) — нижняя граница
  • max (обязательный, по умолч. 1) — верхняя граница
  • для clamp: min < max

Примеры:

  • clamp(metric, 0, 100) → значения ограничены от 0 до 100
  • clamp_max(metric, 100) → значения > 100 становятся 100
  • clamp_min(metric, 0) → значения < 0 становятся 0

label_join

Объединяет значения нескольких существующих меток в одну новую метку через указанный разделитель.

Синтаксис: label_join(<expr>, "<новая_метка>", "<разделитель>", "<исходная_метка1>", "<исходная_метка2>", ...)

Параметры:

  • новая_метка (необязательный) — имя создаваемой метки
  • разделитель (по умолч. ",") — строка между значениями
  • исходная_метка1, исходная_метка2, … — метки, значения которых объединяются (можно несколько, несуществующие игнорируются)

Пример: label_join(metric{job="api",env="production",instance="10.0.0.1:9090"}, "full_name", "/", "job", "env", "instance")metric{..., full_name="api/production/10.0.0.1:9090"}

round, vector

round — округляет значения вектора до ближайшего числа, кратного заданному шагу. vector — создаёт вектор-константу (скаляр) из одного числового значения.

Синтаксис:

  • round(<expr>, <кратно>)
  • vector(<значение>)

Параметры:

  • round:
    • кратно (необязательный, по умолч. 1) — шаг округления (любое положительное число)
  • vector:
    • значение (обязательный, по умолч. 1) — числовое значение для создания вектора

Пример: label_join(metric{job="api",env="production",instance="10.0.0.1:9090"}, "full_name", "/", "job", "env", "instance")metric{..., full_name="api/production/10.0.0.1:9090"}

Бинарные операции

Функция в запросеФункция в интерфейсеПодсказка/ОписаниеПример
+Add scalarПрибавляет скаляр к каждому элементу вектора<expr> + 2
-Subtract scalarВычитает скаляр из каждого элемента вектора<expr> - 2
*Multiply by scalarУмножает скаляр на каждый элемент вектора<expr> * 2
/Divide by scalarДелит каждое значение вектора на скаляр<expr> / 2
%Modulo by scalarВычисляет остаток от деления каждого элемента вектора на скаляр<expr> % 2
^ExponentВозводит каждый элемент вектора в степень, указанную скаляром<expr> ^ 2
==Equal toВозвращает элементы вектора, значение которых равно скаляру. В режиме булевого сравнения возвращает для каждого элемента 1, если элемент равен скаляру, и 0 в противном случае<expr> == 2, <expr> == bool 2
!=Not equal toВозвращает элементы вектора, значение которых не равно скаляру. В режиме булевого сравнения возвращает для каждого элемента 1, если элемент равен скаляру, и 0 в противном случае<expr> != 2, <expr> != bool 2
>Greater thanВозвращает элементы вектора, значение которых больше скаляра. В режиме булевого сравнения возвращает для каждого элемента 1, если элемент равен скаляру, и 0 в противном случае<expr> > 2, <expr> > bool 2
<Less thanВозвращает элементы вектора, значение которых меньше скаляра. В режиме булевого сравнения возвращает для каждого элемента 1, если элемент равен скаляру, и 0 в противном случае<expr> < 2, <expr> < bool 2
>=Greater or equal toВозвращает элементы вектора, значение которых больше или равно скаляру. В режиме булевого сравнения возвращает для каждого элемента 1, если элемент равен скаляру, и 0 в противном случае<expr> >= 2, <expr> >= bool 2
<=Less or equal toВозвращает только те элементы вектора, значение которых меньше или равно скаляру. В режиме булевого сравнения возвращает для каждого элемента 1, если элемент равен скаляру, и 0 в противном случае<expr> <= 2, <expr> <= bool 2
-Binary operation with queryВыполнение бинарных операций между двумя векторами при помощи сопоставления элементов по совпадающим наборам меток и применения оператора к каждой соответствующей паре-

+ Сложение со скаляром

Прибавляет скаляр к каждому элементу вектора.

Синтаксис: <expr> + <значение>

Параметры: значение (обязательный, по умолч. 2) — любое число.

Пример: metric + 2 → каждый элемент увеличивается на 2

== Равенство

Сравнивает каждый элемент вектора со скаляром (или два вектора поэлементно). Результат — фильтрация (оставляются только равные элементы) или булевы значения в зависимости от флага bool.

Синтаксис: <expr> == <значение> или с флагом: <expr> == bool <значение>

Параметры:

  • значение (обязательный, по умолч. 2) — число для сравнения
  • bool (необязательный, по умолч. 0) — если 1, возвращает 1 (истина) или 0 (ложь) вместо фильтрации

Примеры:

  • metric == 2 → оставляет только элементы, равные 2 (фильтрация)
  • metric == bool 2 → возвращает 1 для равных, 0 для неравных (без фильтрации)

Тригонометрические функции

Функция в запросеФункция в интерфейсеПодсказка/ОписаниеПример
acosAcosВычисляет арккосинус всех элементов вектораacos(<expr>)
acoshAcoshВычисляет обратный гиперболический косинус всех элементов вектораacosh(<expr>)
asinAsinВычисляет арксинус всех элементов вектораasin(<expr>)
asinhAsinhВычисляет обратный гиперболический синус всех элементов вектораasinh(<expr>)
atanAtanВычисляет арктангенс всех элементов вектораatan(<expr>)
atanhAtanhВычисляет обратный гиперболический тангенс всех элементов вектораatanh(<expr>)
cosCosВычисляет косинус всех элементов вектораcos(<expr>)
coshCoshВычисляет гиперболический косинус всех элементов вектораcosh(<expr>)
sinSinВычисляет синус всех элементов вектораsin(<expr>)
sinhSinВычисляет синус всех элементов вектораsin(<expr>)
tanTanВычисляет тангенс всех элементов вектораtan(<expr>)
tanhTanhВычисляет гиперболический тангенс всех элементов вектораtanh(<expr>)

Функции времени

Функция в запросеФункция в интерфейсеПодсказка/ОписаниеПример
day_of_monthDay of monthВозвращает день месяца (число от 1 до 31) для каждого из указанных моментов времени, интерпретируя их в UTCday_of_month(<expr>)
day_of_weekDay of weekВозвращает день недели (число от 0 до 6, где 0 - воскресенье) для каждого из указанных моментов времени, интерпретируя их в UTCday_of_week(<expr>)
day_of_yearDay of yearВозвращает день года (число от 1 до 365 для невисокосного года и от 1 до 366 для високосного года) для каждого из указанных моментов времени, интерпретируя их в UTCday_of_year(<expr>)
days_in_monthDay in monthВозвращает количество дней в месяце (число от 28 до 31) для каждого из указанных моментов времени, интерпретируя их в UTCdays_in_month(<expr>)

Операции над временными рядами (при выборе Binary operation with query)

Арифметические операции между векторами

ОператорОписаниеПример для двух временных рядовРезультат
+Поэлементное сложениеРяд A: [10, 20, 30]; Ряд B: [5, 10, 15]. Запрос: A + B[15, 30, 45]
-Расчет дельт между рядамиРяд A: [100, 90, 80]; Ряд B: [95, 100, 70]. Запрос: A - B[5, -10, 10]
*Поэлементное умножениеРяд A: [50, 60, 70]; Ряд B: [2, 1.5, 1]. Запрос: A * B[100, 90, 70]
/Расчет соотношения (B ≠ 0)Ряд A: [30, 50, 70]; Ряд B: [40, 40, 60]. Запрос: A / B[0.75, 1.25, 1.17]
%Вычисление остатка от деленияРяд A: [9, 10, 11]; Ряд B: [5, 5, 5]. Запрос: A % B[4, 0, 1]
^Возведение в степеньРяд A: [2, 3, 4]; Ряд B: [0, 1, 2]. Запрос: A ^ B[1, 3, 16]

Операторы сравнения

ОператорОписаниеПример для двух временных рядовРезультат
==Поэлементное сравнение на равенство. true, если значения равны, иначе falseРяд A: [10, 20, 30]; Ряд B: [10, 25, 30]. Запрос: A == B[10, 30]
!=Поэлементное сравнение на неравенство. true, если значения не равны, иначе falseРяд A: [10, 20, 30]; Ряд B: [10, 25, 30]. Запрос: A != B[20]
>Поэлементное сравнение «больше». true, если значение A строго больше значения B, иначе falseРяд A: [50, 60, 70]; Ряд B: [2, 1.5, 1]. Запрос: A * B[100, 90, 70]
>=Поэлементное сравнение «больше или равно». true, если значение A больше или равно значению B, иначе falseРяд A: [100, 100, 100]; Ряд B: [95, 100, 105]. Запрос: A >= B[100, 100]
<Поэлементное сравнение «меньше». true, если значение A строго меньше значения B, иначе falseРяд A: [50, 60, 70]; Ряд B: [45, 55, 65]. Запрос: A < B[]
<=Поэлементное сравнение «меньше или равно». true, если значение A меньше или равно значению B, иначе falseРяд A: [10, 20, 30]; Ряд B: [15, 20, 25]. Запрос: A <= B[10, 20]

Операторы сравнения для метрик и значений в конструкторе

Название оператораОбозначение оператораПримерРезультат
Равно (по умолчанию)=job="api-server"Выбирает все временные ряды, у которых метка job имеет точное значение "api-server"
Не равно!=status!="200"Выбирает все ряды, у которых метка status имеет любое значение, кроме "200". Не выбирает ряды, у которых отсутствует указанная метка
Содержит=~instance=~"web"Выбирает ряды, у которых значение метки соответствует regex (web)
Не содержит!~pod!~"test"Выбирает ряды, у которых значение метки НЕ соответствует regex (test)

Основные элементы regex

СинтаксисОписаниеПримерРезультат
.Любой символ (кроме \n)vm.sdvmksd, vm.sd, vmpsd и прочее
.*Любое количество любых символовvm.*.cpuvm.agent.cpu, vm.server.cpu
.+Один или более любых символовvm.+.cpuvm.agent.cpu, но не vm..cpu
?Ноль или одно вхождениеvm.?cpuvm.cpu, vm.xcpu
a|bИЛИ (альтернатива)cpu|memorycpu или memory
[...]Класс символовvm[123]vm1, vm2, vm3
[^...]Отрицание класса символовvm[^abc]vm1, vmx, но не vma, vmb, vmc
[a-z]Диапазон символов[a-z]pucpu, apu, zpu
^Начало строки^vmvm.cpu, но не agent.vm
$Конец строкиcpu$vm.cpu, но не cpu.usage
*Повтор 0 или более разa*bb, ab, aab
+Повтор 1 или более разa+bab, aab, но не b
?Повтор 0 или 1 разa?bb, ab
{n}Повтор точно n разa{2}aa
{n,}Повтор n или более разa{2,}aa, aaa
{n,m}Повтор jт n до m разa{2,3}aa, aaa