+++
title = "Запросы"
weight = 300
+++

# Запросы

_Queries_ - это способ взаимодействия панелей Harvest с источниками данных для получения данных для визуализации. Запрос - это вопрос, написанный на языке запросов, используемом источником данных. Harvest спрашивает: "Эй, источник данных, не могли бы вы прислать мне эти данные, организованные таким образом?" Если запрос сформирован правильно, то источник данных отвечает. Как часто запрос отправляется в источник данных и сколько точек данных собирается, можно настроить в параметрах источника данных панели.

Harvest поддерживает до 26 запросов на панель.

## Редакторы запросов

Редакторы запросов - это формы, которые помогают вам писать запросы. В зависимости от вашего источника данных редактор запросов может предоставлять автоматическое завершение, имена метрик или предложение переменных.

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

**Редактор запросов InfluxDB**

{{< рисунок src="/static/img/docs/queries/influxdb-query-editor-7-2.png" класс="docs-image--no-shadow" максимальная ширина ="1000 пикселей" >}}

**Редактор запросов Prometheus (PromQL)**

{{< рисунок src="/static/img/docs/queries/prometheus-query-editor-7-4.png" класс="docs-image--no-shadow" максимальная ширина ="1000 пикселей" >}}

## Синтаксис запроса

Источники данных имеют разные языки запросов и синтаксисы для запроса данных. Вот два примера запросов:

**PostgreSQL**

```
ВЫБЕРИТЕ имя хоста ИЗ СПИСКА хостов, ГДЕ регион В($region)
```

**PromQL**

```
query_result(max_over_time(<метрика>[${__range_s}s]) != <состояние>)
```

Для получения дополнительной информации о написании запроса для вашего источника данных обратитесь к конкретной документации [Источник данных Harvest]({{< relref "../datasources/_index.md" >}}).

## Пользовательский интерфейс вкладки запросов

Вкладка Запрос состоит из следующих элементов:

- Выбор источника данных
- Параметры запроса
- Кнопка инспектора запросов
- Список редактора запросов
- Выражения

{{< рисунок src="/static/img/docs/queries/query-editor-7-2.png" класс="docs-image--no-shadow" максимальная ширина ="1000 пикселей" >}}

### Выбор источника данных

Выбор источника данных представляет собой выпадающий список. Щелкните по нему, чтобы выбрать добавленный вами источник данных. Когда вы создаете панель, Harvest автоматически выбирает ваш источник данных по умолчанию. Для получения дополнительной информации о добавлении источников данных обратитесь к [Добавить источник данных]({{< relref "../datasources/add-a-data-source.md" >}}).

{{< рисунок src="/static/img/docs/queries/data-source-selector-7-0.png" класс="docs-image--no-shadow" максимальная ширина ="250 пикселей" >}}

В дополнение к источникам данных, которые вы настроили в своем Harvest, доступны три специальных источника данных:

- ** Harvest -** Встроенный источник данных, который генерирует данные случайного блуждания. Полезно для тестирования визуализаций и проведения экспериментов.
- ** Смешанный -** Выберите этот параметр, чтобы запросить несколько источников данных на одной панели. Когда выбран этот источник данных, Harvest позволяет вам выбирать источник данных для каждого добавляемого вами нового запроса.
  * В первом запросе будет использоваться источник данных, который был выбран до того, как вы выбрали ** Смешанный **.
  * Вы не можете изменить существующий запрос, чтобы использовать Смешанный источник данных.
- ** Панель мониторинга -** Выберите этот параметр, чтобы использовать набор результатов с другой панели на той же панели мониторинга.

### Параметры запроса

Нажмите ** Параметры запроса ** рядом с выбором источника данных, чтобы просмотреть настройки для выбранного вами источника данных. Изменения, которые вы вносите здесь, влияют только на запросы, выполняемые на этой панели.

{{< рисунок src="/static/img/docs/queries/data-source-options-7-0.png" класс="docs-image--no-shadow" максимальная ширина ="1000 пикселей" >}}

Harvest устанавливает значения по умолчанию, которые отображаются темно-серым текстом. Изменения отображаются белым текстом. Чтобы вернуть полю значение по умолчанию, удалите из поля белый текст.

Параметры запроса источника панельных данных:

- ** Максимальное количество точек данных -** Если источник данных поддерживает это, задает максимальное количество точек данных для каждой возвращаемой серии. Если запрос возвращает больше точек данных, чем задано значение max точек данных, то источник данных объединяет их (уменьшает количество возвращаемых точек, объединяя их вместе с помощью average или max или другой функции).

  Есть две основные причины ограничения количества точек: производительность и сглаживание линии. Значением по умолчанию является ширина (или количество пикселей) графика, поскольку нет смысла иметь больше точек данных, чем может отображать панель графика.

  При потоковой передаче данных для скользящего буфера используется максимальное значение точек данных. (Потоковая передача - это непрерывный поток данных, а буферизация - это способ разделения потока на фрагменты). Loki передает данные в режиме реального времени.

- **Минимальный интервал -** Устанавливает минимальный предел для автоматически рассчитываемого интервала, обычно минимального интервала очистки. Если точка данных сохраняется каждые 15 секунд, то нет смысла устанавливать интервал ниже этого. Другой вариант использования - установить для него более высокий минимум, чем интервал очистки, чтобы получить более детализированные, хорошо функционирующие запросы.

- ** Интервал -** Интервал - это промежуток времени, который вы можете использовать при агрегировании или группировании точек данных по времени.

  Harvest автоматически вычисляет соответствующий интервал, и его можно использовать в качестве переменной в шаблонных запросах. Переменная указывается либо в секундах: `$__interval`, либо в миллисекундах: `$__interval_ms`. Обычно он используется в функциях агрегирования, таких как сумма или среднее значение. Например, запрос Prometheus с использованием интервальной переменной: `rate(http_requests_total[$__interval])`.

  Этот автоматический интервал рассчитывается на основе ширины графика. Если пользователь сильно уменьшает масштаб, то интервал становится больше, что приводит к более крупнозернистой агрегации, тогда как если пользователь увеличивает масштаб, то интервал уменьшается, что приводит к более мелкозернистой агрегации.

  Для получения дополнительной информации обратитесь к [Глобальным переменным]({{< relref "../variables/variable-types/global-variables.md" >}}).

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

- ** Сдвиг по времени -** Функция сдвига по времени - это еще один способ переопределить временной диапазон для отдельных панелей. Он работает только с относительными временными диапазонами и позволяет настраивать временной диапазон.

  Например, вы могли бы изменить диапазон времени для панели на два часа раньше, чем средство выбора времени панели инструментов. Для получения дополнительной информации обратитесь к [Элементы управления временным диапазоном]({{< relref "../dashboards/time-range-controls.md" >}}).

- ** Тайм-аут кэша -** (Это поле отображается только в том случае, если доступно в вашем источнике данных.) Если в вашем хранилище временных рядов есть кэш запросов, то этот параметр может переопределить тайм-аут кэша по умолчанию. Указывается как числовое значение в секундах.

### Примеры:

- ** Относительное время:** 

| Пример | Поле относительного времени |
| ------------------- | --------------------|
| Последние 5 минут | `сейчас-5 м` |
| День до сих пор | `сейчас/d` |
| Последние 5 дней | `сейчас-5d/d` |
| На этой неделе до сих пор | `сейчас/w` |
| Последние 2 года | `сейчас-2 года/год` |   


- **Сдвиг во времени:** 

| Пример | Поле временного сдвига |
| ------------------- | --------------------|
| Всю последнюю неделю | `1 вт/вт` |
| Целых две недели назад | `2w/w` |
| Весь последний месяц | `1 М/М` |
| Весь этот год | `1d/y` |
| Весь последний год | `1 год/год` |   




### Кнопка инспектора запросов

Вы можете нажать ** Инспектор запросов **, чтобы открыть вкладку Запросов инспектора панели, где вы можете просмотреть запрос запроса, отправленный панелью, и ответ.

Нажмите **Обновить**, чтобы просмотреть полный текст запроса, отправленного этой панелью на сервер.

> ** Примечание: ** Вам необходимо добавить хотя бы один запрос, прежде чем инспектор запросов сможет возвращать результаты.

Для получения дополнительной информации об инспекторе панели обратитесь к [Проверить панель]({{< relref "inspect-panel.md " >}}).

### Список редактора запросов

В пользовательском интерфейсе запросы организованы в виде сворачиваемых строк запроса. Каждая строка запроса содержит редактор запросов и обозначается буквой (A, B, C и так далее).

Ты можешь:

| Значок | Описание |
|:--:|:---|
| {{< рисунок src="/static/img/docs/queries/query-editor-help-7-4.png" класс="docs-image-no-shadow" максимальная ширина ="30 пикселей" максимальная высота ="30 пикселей" >}} | Переключить запрос помощь редактору. Если поддерживается источником данных, щелкните этот значок, чтобы отобразить информацию о том, как использовать редактор запросов или обеспечить быстрый доступ к общим запросам. |
| {{< рисунок src="/static/img/docs/queries/duplicate-query-icon-7-0.png" класс="docs-image--no-shadow" максимальная ширина ="30 пикселей" максимальная высота ="30 пикселей" >}} | Скопировать запрос. Дублирование запросов полезно при работе с несколькими сложными похожими запросами, и вы хотите либо поэкспериментировать с разными вариантами, либо внести незначительные изменения. |
| {{< рисунок src="/static/img/docs/queries/hide-query-icon-7-0.png" класс="docs-image-no-shadow" максимальная ширина ="30 пикселей" максимальная высота ="30 пикселей" >}} | Скрыть запрос. Harvest не отправляет скрытые запросы к источнику данных. |
| {{< рисунок src="/static/img/docs/queries/удалить-запрос-значок-7-0.png" класс="docs-image-no-shadow" максимальная ширина ="30 пикселей" максимальная высота ="30 пикселей" >}} | Удалить запрос. Удаление запроса приводит к его удалению безвозвратно, но иногда вы можете восстановить удаленные запросы, вернувшись к ранее сохраненным версиям панели. |
| {{< рисунок src="/static/img/docs/queries/query-drag-icon-7-2.png" класс="docs-image-no-shadow" максимальная ширина ="30 пикселей" максимальная высота ="30 пикселей" >}} | Изменить порядок запросов. Измените порядок запросов, щелкнув и удерживая значок перетаскивания, затем перетащите запросы туда, где это необходимо. Порядок результатов отражает порядок запросов, поэтому вы часто можете корректировать свои визуальные результаты в зависимости от порядка запросов. |

### Выражения

Если ваш источник данных поддерживает их, то Harvest отображает кнопку ** Выражение ** и показывает все существующие выражения в списке редактора запросов.

Для получения дополнительной информации о выражениях обратитесь к [Выражениям]({{< relref "expressions.md " >}}).