Некоторые функции имеют параметры по умолчанию, например:year(v=vector(time()) instant-vector)
. значит есть параметрv
является мгновенным вектором, если он не указан, по умолчанию используется выражениеvector(time())
значение .
1. абс ()
abs(v instant-vector)
Возвращает входной вектор со всеми выборочными значениями, преобразованными в их абсолютные значения.
2. абстракция()
absent(v instant-vector)
Если переданный ему вектор имеет какие-либо элементы, он возвращает пустой вектор; если переданный ему вектор не имеет элементов, он возвращает одноэлементный вектор со значением 1.
Это полезно для оповещения, когда для данной комбинации имени метрики и метки не существует временного ряда.
absent(nonexistent{job="myjob"})
# => {job="myjob"}
absent(nonexistent{job="myjob", instance=~".*"})
# => {job="myjob"}
absent(sum(nonexistent{job="myjob"}))
# => {}
Во втором примереabsent()
Попытка получить метки для одноэлементного выходного вектора из входного вектора.
3. потолок()
ceil(v instant-vector)
будетv
Выборочные значения всех элементов округляются до ближайшего целого числа.
4. изменения()
Для каждого входного временного рядаchanges(v range-vector)
Возвращает количество раз, когда его значение менялось в течение указанного диапазона времени в виде мгновенного вектора.
5. зажим_макс()
clamp_max(v instant-vector, max scalar)
Зажимv
выборочные значения для всех элементов в , чтобы он был ограниченmax
.
6. зажим_мин()
clamp_min(v instant-vector, min scalar)
Зажимv
выборочные значения для всех элементов в , делая их нижние границыmin
.
Семь, день_месяца()
day_of_month(v=vector(time()) instant-vector)
Возвращает день месяца для каждого заданного времени в формате UTC. Возвращаемое значение: от 1 до 31.
Восемь, day_of_week()
day_of_week(v=vector(time()) instant-vector)
Возвращает день недели для каждого заданного времени в формате UTC. Возвращаемое значение — от 0 до 6, где 0 означает воскресенье и т. д.
Девять, дней_в_месяце()
days_in_month(v=vector(time()) instant-vector)
Возвращает количество дней в месяце для каждого заданного времени в формате UTC. Возвращаемое значение — от 28 до 31.
10. дельта()
delta(v range-vector)
вычислить вектор диапазонаv
Разница между первым и последним значением для каждого элемента временного ряда в возвращает мгновенный вектор с заданным приращением и эквивалентной меткой.delta
Экстраполировано, чтобы покрыть полный диапазон времени, указанный в селекторе вектора диапазона, поэтому вы можете получить нецелочисленные результаты, даже если все значения выборки являются целыми числами.
Следующий пример выражения возвращает разницу в температуре процессора между текущим и 2 часа назад:
delta(cpu_temp_celsius{host="zeus"}[2h])
delta
Должен использоваться только для счетчиков.
Одиннадцать, производное()
deriv(v range-vector)
функция, которая вычисляет вторую производную каждого временного ряда в векторе диапазона v, используяПростая линейная регрессия
deriv
Должен использоваться только для счетчиков.
12. ехр()
exp(v instant-vector)
рассчитатьv
Экспоненциальная функция всех элементов в . Особые случаи:
Exp(+inf) = +Inf
Exp(NaN) = NaN
Тринадцать, этаж()
floor(v instant-vector)
будетv
Выборочные значения всех элементов округляются до ближайшего целого числа. .
14. гистограмма_квантиль ()
histogram_quatile(φ float, b instant-vector)
рассчитатьb
φ-гистограмма векторов (0 ≤ φ ≤ 1) . (Для подробного объяснения фи-квантилей и использования типов метрик гистограмм см.Гистограммы и сводки. )b
Образцы — это количество наблюдений в каждом сегменте. Каждый образец должен иметь этикеткуle
, где значение метки представляет защитный колпачок ведра. (Выборки без таких меток игнорируются.) Тип метрики гистограммы автоматически предоставляется с_bucket
Временные ряды суффиксов и соответствующих меток.
использоватьrate()
Функция задает временное окно для расчета квантиля.
Пример: метрика гистограммы называетсяhttp_request_duration_seconds
. Чтобы вычислить 90-й процентиль продолжительности запроса за последние 10 минут, используйте следующее выражение:
histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[10m]))
существуетhttp_request_duration_seconds
Квантиль рассчитывается для каждой комбинации меток в . Совокупно, вrate()
использовать вокруг функцийsum()
Агрегатор. потому чтоhistogram_quantile()
нужноle
тег, поэтому он должен быть включен вby
в оговорке. Следующее выражение объединяет 90-й процентиль по работе:
histogram_quantile(0.9, sum(rate(http_request_duration_seconds_bucket[10m])) by (job, le))
Чтобы агрегировать все, укажите толькоle
Этикетка:
histogram_quantile(0.9, sum(rate(http_request_duration_seconds_bucket[10m])) by (le))
histogram_quantile()
Функция интерполирует квантильные значения, предполагая линейное распределение внутри сегментов. Самое высокое ведро должно иметь+Inf
верхний предел . (В противном случае вернитесьNaN
. ), если квантиль находится в самой высокой корзине, возвращает верхнюю границу второй по величине корзины. Если верхняя граница корзины больше 0, предполагается, что нижняя граница нижней корзины равна 0. В этом случае в пределах корзины применяется обычная линейная интерполяция. В противном случае для квантилей, лежащих в самой нижней корзине, вернуть верхнюю границу самой нижней корзины.
еслиb
содержит менее двух сегментов, возвращаетNaN
. заφ<0
,возвращение-Inf
. заφ> 1
,возвращение+Inf
.
15. холт_винтерс ()
holt_winters(v range-vector, sf scalar, tf scalar)
согласно сv
Диапазон в производит сглаженные значения для временного ряда. коэффициент сглаживанияsf
Чем он ниже, тем важнее старые данные. фактор трендаtf
Чем выше значение, тем больше трендов данных учитывается.sf
а такжеtf
Оба должны быть между 0 и 1.
holt_winters
Только для счетчика.
16. час()
hour(v=vector(time()) instant-vector)
Возвращает час дня для каждого заданного времени в формате UTC. Возвращаемое значение: от 0 до 23.
Семнадцать, дельта ()
idelta(v range-vector)
вычислить вектор диапазонаv
Разница между двумя последними выборками в , возвращающая мгновенный вектор с заданной дельтой и эквивалентными метками.
idelta
Только для счетчика.
Восемнадцать, увеличить ()
increase(v range-vector)
Вычислите добавление временного ряда в вектор диапазона. Монотонные прерывания (такие как сброс счетчика из-за перезапуска цели) корректируются автоматически. Экстраполяция увеличена, чтобы покрыть полный диапазон времени, указанный в селекторе вектора диапазона, поэтому вы можете получить нецелочисленные результаты, даже если счетчик увеличивается только на целочисленные приращения.
Следующий пример выражения возвращает количество запросов HTTP, измеренных за последние 5 минут для каждого временного ряда в векторе диапазона:
increase(http_requests_total{job="api-server"}[5m])
increase
следует использовать только сcounters
использовать вместе. этоrate(v)
Синтаксический сахар для умножения секунд в указанном окне временного диапазона следует использовать в основном для удобочитаемости. Использование в правилах записиrate
, так что приращения последовательно отслеживаются каждую секунду.
Девятнадцать, разгневанный
irate(v range-vector)
Вычисляет немедленную скорость роста в секунду для временного ряда в векторе диапазона. Это основано на последних двух точках данных. Монотонные прерывания (такие как сброс счетчика из-за перезапуска цели) корректируются автоматически.
В следующем примере выражение возвращает скорость HTTP-запросов в секунду за период до 5 минут для двух самых последних точек данных для каждого временного ряда в векторе диапазона:
irate(http_requests_total{job="api-server"}[5m])
Следует использовать только при отрисовке изменчивых быстро движущихся фишек.irate
. Использование сигналов тревоги и медленно движущихся счетчиков, так как кратковременные изменения скорости могут быть сброшеныFOR
пункт, и трудно читать график, состоящий только из редких пиков.
Обратите внимание, что когдаirate()
с операторами агрегации, такими какsum()
) или функция, агрегированная с течением времени (все, что начинается с_over_time
функция в конце), всегда берите первуюirate()
, а затем суммировать. В противном случае, когда цель перезапустится,irate()
Не удалось обнаружить сброс счетчика.
20. label_join()
заv
Для каждого временного ряда в ,label_join(v instant-vector, dst_label string, separator string, src_label_1 string, src_label_2 string, ...)
использоватьseparator
подключить всеsrc_labels
все значения и вернуть метку, содержащую соединениеdst_label
значение временного ряда. Может быть любое количествоsrc_labels
.
Этот пример вернет вектор, по одному для каждого временного ряда.foo
этикетка с добавленной стоимостьюa,b,c
:
label_join(up{job="api-server",src1="a",src2="b",src3="c"}, "foo", ",", "src1", "src2", "src3")
Двадцать один, label_replace()
заv
Для каждого временного ряда в ,label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)
Сочетание регулярного выражения регулярного выражения с тегамиsrc_label
совпадение. Если есть совпадение, вернуть временной ряд, меткиdst_label
Заменить расширением «Заменить».$1
заменить первой совпавшей подгруппой,$2
Заменить вторым и т.д. Если регулярное выражение не совпадает, временной ряд возвращается без изменений.
Этот пример вернет вектор, по одному для каждого временного ряда.foo
метка, значение которойa
:
label_replace(up{job="api-server",service="a:c"}, "foo", "$1", "service", "(.):.")
Двадцать два, ln()
ln(v instance-vector)
рассчитатьv
Натуральный логарифм всех элементов в . Особые случаи:
ln(+Inf) = +Inf ln(0) = -Inf ln(x<0) = NaN ln(NaN) = NaN
Двадцать три, log2()
log2(v instant-vector)
рассчитатьv
Двоичный логарифм всех элементов в . Частный случай эквивалентенln
частные случаи в.
Двадцать четыре, log10()
log10(v instant-vector)
рассчитатьv
Десятичный логарифм всех элементов в . Частный случай эквивалентенln
частные случаи в.
Двадцать пять, минута ()
minute(v=vector(time()) instant-vector)
Возвращает минуты каждого заданного времени в формате UTC. Возвращаемое значение: от 0 до 59.
Двадцать шесть, месяц ()
month(v=vector(time()) instant-vector)
Возвращает месяц года для каждого заданного времени в формате UTC. Возвращаемое значение — от 1 до 12, где 1 означает январь и т. д.
Двадцать семь, pred_linear()
predict_linear(v range-vector, t scalar)
по вектору дальностиv
Используйте линейную регрессию для прогнозирования значений временных рядов через t секунд.
predict_linear
Должен использоваться только со счетчиком.
Двадцать восемь, скорость ()
rate(v range-vector)
Вычисляет среднюю скорость роста в секунду для временного ряда в векторе диапазона. Монотонные прерывания (такие как сброс счетчика из-за перезапуска цели) корректируются автоматически. Кроме того, вычисление экстраполируется до конца временного диапазона, позволяя пропустить царапины или неполное согласование цикла царапин с периодом времени диапазона.
Следующий пример выражения возвращает частоту запросов HTTP в секунду, измеренную за последние 5 минут для каждого временного ряда в векторе диапазона:
rate(http_requests_total{job="api-server"}[5m])
rate
Должен использоваться только для счетчиков. Его лучше всего использовать для графиков предупреждений и медленных счетчиков.
Обратите внимание, что когдаrate()
с операторами агрегации, такими какsum()
) или функция, агрегированная с течением времени (все, что начинается с_over_time
функция в конце), всегда берите первуюrate()
, а затем суммировать. В противном случае, когда цель перезапустится,rate()
Не удалось обнаружить сброс счетчика.
Двадцать девять, сбрасывает ()
Для данных каждого временного рядаresets()
Возвращает количество сбросов счетчика в виде мгновенного вектора в указанном временном диапазоне. Любое уменьшение значения между двумя последовательными выборками интерпретируется как сброс счетчика.
resets()
Следует использовать только с счетчиками.
Тридцать, раунд()
round(v instant-vector, to_nearest 1= scalar)
будетv
Выборочные значения всех элементов округляются до ближайшего целого числа. Решите отношения путем округления. необязательныйto_nearest
Параметр позволяет указать ближайший кратный округлению значения выборки. Это кратное также может быть дробью.
Тридцать один, скаляр()
Учитывая одноэлементный входной вектор,scalar(v instant-vector)
Возвращает выборочное значение этого отдельного элемента в виде скаляра. Если входной вектор не имеет ровно одного элемента, тоscalar
вернусьNaN
.
Тридцать два, сортировка ()
sort(v instant-vector)
Возвращает элементы вектора, отсортированные по их выборочным значениям в порядке возрастания.
Тридцать три, sort_desc()
sort(v instant-vector
а такжеsort
То же, но в порядке убывания.
Тридцать четыре, sqrt()
sqrt(v instant-vector)
рассчитатьv
Квадратный корень из всех элементов в .
Тридцать пять, время ()
time()
Возвращает количество секунд с 1 января 1970 года по всемирному координированному времени. Обратите внимание, что на самом деле это возвращает не текущее время, а время, когда выражение было вычислено.
Тридцать шесть,timestamp()
timestamp(v instant-vector)
Возвращает отметку времени каждой выборки заданного вектора в виде количества секунд с 1 января 1970 года по Гринвичу.
Эта функция была добавлена в Prometheus 2.0.
Тридцать семь, вектор()
vector(s scalar)
скалярs
Возвращается как вектор без меток.
Тридцать восемь, год ()
year(v=vector(time()) instant-vector)
Возвращает год для каждого заданного времени в формате UTC.
Тридцать девять, _over_time()
Следующая функция позволяет агрегировать каждую серию заданного вектора диапазона с течением времени и возвращает мгновенный вектор с агрегированными результатами для каждой серии:
-
avg_over_time(range-vector)
: среднее значение каждой метрики в векторе диапазона. -
min_over_time(range-vector)
: минимальное значение каждой метрики в векторе диапазона. -
max_over_time(range-vector)
: максимальное значение каждой метрики в векторе диапазона. -
sum_over_time(range-vector)
: Суммарное значение каждой метрики в векторе диапазона. -
count_over_time(range-vector)
: количество выборочных данных для каждой метрики в векторе диапазона. -
quantile_over_time(scalar, range-vector)
: квантиль значений выборочных данных для каждой метрики в векторе диапазона, φ-квантиль (0 ≤ φ ≤ 1) -
stddev_over_time(range-vector)
: Стандартное отклонение совокупности каждой метрики в пределах вектора диапазона. - `stdvar_over_time(range-vector): Стандартное отклонение совокупности каждой метрики в векторе диапазона.
Обратите внимание, что все значения в пределах указанного временного интервала имеют одинаковый вес в агрегировании, даже если значения неравномерно распределены по временному интервалу.
сорок, ссылка
Адрес официального сайта Прометея:prometheus.io/Мой гитхаб:GitHub.com/хорошо это/лжец…