> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Вычисляет запрос Prometheus, используя данные из таблицы TimeSeries.

# prometheusQueryRange

Вычисляет запрос Prometheus, используя данные из таблицы TimeSeries в заданном диапазоне моментов вычисления.

<div id="syntax">
  ## Синтаксис
</div>

```sql theme={null}
prometheusQueryRange('db_name', 'time_series_table', 'promql_query', start_time, end_time, step)
prometheusQueryRange(db_name.time_series_table, 'promql_query', start_time, end_time, step)
prometheusQueryRange('time_series_table', 'promql_query', start_time, end_time, step)
```

<div id="arguments">
  ## Аргументы
</div>

* `db_name` - Имя базы данных, в которой находится таблица TimeSeries.
* `time_series_table` - Имя таблицы TimeSeries.
* `promql_query` - Запрос, записанный в [синтаксисе PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/).
* `start_time` - Время начала интервала вычисления.
* `end_time` - Время окончания интервала вычисления.
* `step` - Шаг, с которым перебирается время вычисления от `start_time` до `end_time` (включительно).

<div id="returned-value">
  ## Возвращаемое значение
</div>

Функция может возвращать разные столбцы в зависимости от типа результата запроса, переданного в параметр `promql_query`:

| Тип результата | Возвращаемые столбцы                                                                   | Пример                              |
| -------------- | -------------------------------------------------------------------------------------- | ----------------------------------- |
| vector         | tags Array(Tuple(String, String)), timestamp TimestampType, value ValueType            | prometheusQuery(mytable, 'up')      |
| matrix         | tags Array(Tuple(String, String)), time\_series Array(Tuple(TimestampType, ValueType)) | prometheusQuery(mytable, 'up\[1m]') |
| scalar         | scalar ValueType                                                                       | prometheusQuery(mytable, '1h30m')   |
| string         | string String                                                                          | prometheusQuery(mytable, '"abc"')   |

<div id="supported-promql-features">
  ## Поддерживаемые возможности PromQL
</div>

<div id="selectors">
  ### Селекторы
</div>

Мгновенные селекторы, селекторы диапазона, сопоставители меток (`=`, `!=`, `=~`, `!~`), модификаторы offset, модификаторы временной метки `@` и подзапросы.

<div id="functions">
  ### Функции
</div>

| Категория          | Функции                                                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| Диапазон           | `rate`, `irate`, `delta`, `idelta`, `increase`, `last_over_time`, `deriv`, `changes`, `resets`                                |
| Математические     | `abs`, `sgn`, `floor`, `ceil`, `sqrt`, `exp`, `ln`, `log2`, `log10`, `rad`, `deg`, `round`, `clamp`, `clamp_min`, `clamp_max` |
| Тригонометрические | `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `sinh`, `cosh`, `tanh`, `asinh`, `acosh`, `atanh`                                |
| Дата и время       | `day_of_week`, `day_of_month`, `days_in_month`, `day_of_year`, `minute`, `hour`, `month`, `year`                              |
| Метка              | `label_replace`, `label_join`                                                                                                 |
| Тип                | `scalar`, `vector`                                                                                                            |
| Гистограмма        | `histogram_quantile`                                                                                                          |
| Другое             | `time`, `pi`                                                                                                                  |

**Note**: `histogram_quantile` использует линейную интерполяцию для классических бакетов гистограммы (определяемых по метке `le`). Нативные гистограммы не поддерживаются. Аргумент `phi` (уровень квантиля) должен быть константным скаляром. Выражения, меняющиеся от шага к шагу, такие как `histogram_quantile(time() / 1000, ...)`, отклоняются с исключением `NOT_IMPLEMENTED`.

<div id="operators">
  ### Операторы
</div>

Бинарные арифметические (`+`, `-`, `*`, `/`, `%`, `^`, `atan2`) и сравнительные (`==`, `!=`, `<`, `>`, `<=`, `>=` с необязательным `bool`) операторы с модификаторами `on()`/`ignoring()` и `group_left()`/`group_right()`.

Логические операторы множеств `and`, `or` и `unless` с модификаторами `on()`/`ignoring()`.

Унарные операторы `+` и `-`.

<div id="aggregation-operators">
  ### Операторы агрегации
</div>

`sum`, `avg`, `min`, `max`, `count`, `stddev`, `stdvar`, `group`, `quantile`, `topk`, `bottomk`, `limitk` — с необязательными модификаторами `by()` и `without()`.

<div id="not-yet-supported">
  ### Пока не поддерживается
</div>

* Оператор агрегации `count_values`
* Функции диапазона `predict_linear`, `avg_over_time`, `min_over_time`, `max_over_time`, `sum_over_time`, `count_over_time`, `quantile_over_time`, `stddev_over_time`, `stdvar_over_time`, `present_over_time`, `absent_over_time`, `mad_over_time`, `first_over_time`, `ts_of_min_over_time`, `ts_of_max_over_time`, `ts_of_last_over_time`, `ts_of_first_over_time`
* Функция `absent`

<div id="example">
  ## Пример
</div>

```sql theme={null}
SELECT * FROM prometheusQueryRange(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now() - INTERVAL 10 MINUTES, now(), INTERVAL 1 MINUTE)
```
