Перейти к основному содержанию
Перейти к основному содержанию

quantilePrometheusHistogram

Вычисляет квантиль гистограммы с использованием линейной интерполяции, учитывая накопленные значения и верхние границы каждого бакета гистограммы.

Для получения интерполированного значения все переданные значения объединяются в массив, который затем сортируется по соответствующим значениям верхних границ бакетов. Затем интерполяция квантиля выполняется аналогично функции PromQL histogram_quantile() для классической гистограммы, выполняя линейную интерполяцию между нижней и верхней границами бакета, в котором находится позиция квантиля.

Синтаксис

quantilePrometheusHistogram(level)(bucket_upper_bound, cumulative_bucket_value)

Аргументы

  • level — Уровень квантиля. Необязательный параметр. Константа с плавающей запятой от 0 до 1. Рекомендуется использовать значение level в диапазоне [0.01, 0.99]. Значение по умолчанию: 0.5. При level=0.5 функция вычисляет медиану.

  • bucket_upper_bound — Верхние границы бакетов гистограммы.

    • Наибольший бакет должен иметь верхнюю границу +Inf.
  • cumulative_bucket_value — Накопительные значения бакетов гистограммы типа UInt или Float64.

    • Значения должны монотонно возрастать по мере увеличения верхней границы бакета.

Возвращаемое значение

  • Квантиль указанного уровня.

Тип:

  • Float64.

Пример

Входная таблица:

   ┌─bucket_upper_bound─┬─cumulative_bucket_value─┐
1. │                  0 │                       6 │
2. │                0.5 │                      11 │
3. │                  1 │                      14 │
4. │                inf │                      19 │
   └────────────────────┴─────────────────────────┘

Результат:

   ┌─quantilePrometheusHistogram(bucket_upper_bound, cumulative_bucket_value)─┐
1. │                                                                     0.35 │
   └──────────────────────────────────────────────────────────────────────────┘

См. также