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

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 │
   └──────────────────────────────────────────────────────────────────────────┘

См. также