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

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

См. также