+++
title = "Источник данных InfluxDB"
description = "Руководство по использованию InfluxDB в Harvest"
keywords = ["harvest", "influxdb", "guide", "flux"]
aliases = ["/docs/harvest/latest/features/datasources/influxdb", "/docs/harvest/latest/datasources/influxdb"]
weight = 700
+++
# Источник данных InfluxDB

{{< docs/shared "influxdb/intro.md" >}}

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

## Параметры источника данных

Чтобы получить доступ к настройкам источника данных, наведите указатель мыши на значок **Конфигурация** (шестеренка), затем нажмите **Источники данных**, а затем щелкните источник данных.

Параметры источника данных InfluxDB различаются в зависимости от того, какой [язык запроса] (#query-languages) вы выберете: InfluxQL или Flux.

> **Примечание.** Хотя это и не обязательно, рекомендуется добавлять выбор языка к имени источника данных. Например:
>
 - InfluxDB-InfluxQL
 - InfluxDB-поток

### InfluxQL (классический запрос InfluxDB)

Эти параметры применяются, если вы используете язык запросов InfluxQL. Если вы используете Flux, см. [Поддержка Flux в Harvest]({{< relref "influxdb-flux.md" >}}).
Имя         | Описание
----------- | -------------
`Имя` | Имя источника данных. Именно так вы обращаетесь к источнику данных в панелях и запросах. Мы рекомендуем что-то вроде «InfluxDB-InfluxQL».
`По умолчанию` | Источник данных по умолчанию означает, что он будет предварительно выбран для новых панелей.
`URL` | Протокол HTTP, IP-адрес и порт вашего API InfluxDB. Порт API InfluxDB по умолчанию 8086.
`Доступ` | Сервер (по умолчанию) = URL-адрес должен быть доступен из бэкэнда/сервера Harvest, Браузер = URL-адрес должен быть доступен из браузера.
`Файлы cookie из белого списка`| Файлы cookie, которые будут перенаправлены в источник данных. Все остальные файлы cookie будут удалены.
`База данных` | Идентификатор сегмента, из которого вы хотите выполнить запрос, скопированный со [страницы сегментов] (https://docs.influxdata.com/influxdb/v2.0/organizations/buckets/view-buckets/) пользовательского интерфейса InfluxDB.
`Пользователь` | Имя пользователя, которое вы используете для входа в InfluxDB.
`Пароль` | Токен, который вы используете для запроса корзины выше, скопирован со [страницы токенов](https://docs.influxdata.com/influxdb/v2.0/security/tokens/view-tokens/) пользовательского интерфейса InfluxDB.
`Режим HTTP` | Как сделать запрос к базе данных (HTTP-глагол `GET` или `POST`). Глагол `POST` позволяет выполнять тяжелые запросы, которые возвращали бы ошибку при использовании глагола `GET`. По умолчанию используется `ПОЛУЧИТЬ`.
`Минимальный временной интервал` | (Необязательно) См. [Минимальный временной интервал]({{< relref "#min-time-interval" >}}).
`Максимальная серия`| (Необязательно) Ограничивает количество рядов/таблиц, которые обрабатывает Harvest. Уменьшите это число, чтобы предотвратить злоупотребление, и увеличьте его, если у вас много небольших временных рядов, и не все они показаны. По умолчанию 1000.
### Поток

Для получения информации о настройках источника данных и использовании Flux в Harvest см. [Поддержка Flux в Harvest]({{< relref "influxdb-flux.md" >}}).

#### Минимальный временной интервал

Нижний предел автогруппировки по временному интервалу. Рекомендуется установить частоту записи, например `1m`, если ваши данные записываются каждую минуту.
Этот параметр также можно переопределить/настроить на панели инструментов в параметрах источника данных. Важно отметить, что это значение _должно_ быть отформатировано как число, за которым следует допустимый идентификатор времени, например. `1m` (1 минута) или `30s` (30 секунд). Поддерживаются следующие идентификаторы времени:
Идентификатор   | Описание
------------ | -------------
`y`          | год
`M`          | месяц
`w`          | неделя
`d`          | день
`h`          | час
`m`          | минута
`s`          | секунда
`ms`         | милисекунда

## Языки запросов

Вы можете запросить InfluxDB, используя InfluxQL или Flux:

- [InfluxQL] (https://docs.influxdata.com/influxdb/v1.8/query_language/explore-data/) — это SQL-подобный язык для запросов к InfluxDB с такими операторами, как SELECT, FROM, WHERE и GROUP. BY, которые знакомы пользователям SQL. InfluxQL доступен в InfluxDB 1.0 и выше.
- [Flux](https://docs.influxdata.com/influxdb/v2.0/query-data/get-started/) предоставляет значительно более широкий функционал, чем InfluxQL, поддерживая не только запросы, но и встроенные функции для формирования данных , манипулирование строками, присоединение к источникам данных, отличным от InfluxDB, и многое другое, а также обработка данных временных рядов. Это больше похоже на JavaScript с функциональным стилем.

Чтобы помочь вам выбрать лучший язык для ваших нужд, вот сравнение [Flux и InfluxQL](https://docs.influxdata.com/influxdb/v1.8/flux/flux-vs-influxql/) и [почему InfluxData создал Flux] (https://www.influxdata.com/blog/why-were-building-flux-a-new-data-scripting-and-query-language/).

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

Войдите в режим редактирования, щелкнув заголовок панели и нажав **Редактировать**. Редактор позволяет выбирать метрики и теги.

![редактор запросов InfluxQL](/static/img/docs/influxdb/influxql-query-editor-7-5.png)

### Данные фильтра (ГДЕ)

Чтобы добавить фильтр тегов, щелкните значок плюса справа от условия «ГДЕ». Вы можете удалить фильтры тегов, щелкнув по ключу тега, а затем выбрав `--remove tag filter--`.

**Соответствие регулярным выражениям**

Вы можете ввести шаблоны регулярных выражений для имен метрик или значений фильтра тегов. Обязательно заключите шаблон регулярного выражения в косую черту (`/`). Harvest автоматически настраивает условие тега фильтра для использования оператора условия соответствия регулярного выражения InfluxDB (`=~`).

### Функции поля и агрегации

В строке `SELECT` вы можете указать, какие поля и функции вы хотите использовать. Если у тебя есть
группировать по времени вам нужна функция агрегации. Для некоторых функций, таких как производная, требуется функция агрегирования. Редактор пытается упростить и унифицировать эту часть запроса. Например:

![](/static/img/docs/influxdb/select_editor.png)

Вышеприведенное генерирует следующее предложение InfluxDB `SELECT`:

```sql
ВЫБЕРИТЕ производную (среднее («значение»), 10 с) / 10 AS «REQ/s» FROM ....
```

#### Выбор нескольких полей

Используйте кнопку «плюс» и выберите «Поле» > «Поле», чтобы добавить еще одно предложение SELECT. Вы также можете
укажите звездочку `*`, чтобы выбрать все поля.

### Группа по
Чтобы сгруппировать по тегу, щелкните значок плюса в конце строки СГРУППИРОВАТЬ ПО. Выберите тег из раскрывающегося списка.
Вы можете удалить «Группировать по», щелкнув «тег», а затем щелкнув значок «x».

### Режим текстового редактора (RAW)

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

> Если вы используете необработанный запрос, убедитесь, что ваш запрос как минимум имеет `WHERE $timeFilter`.
> Также всегда имейте группировку по времени и функцию агрегации, иначе InfluxDB запросто может вернуть сотни тысяч точек данных, что повесит браузер.

### Шаблоны псевдонимов

- $m = заменено именем измерения
- $measurement = заменено именем измерения
- $col = заменено именем столбца
- $tag_exampletag = заменено значением тега `exampletag`. Синтаксис: `$tag_yourTagName` (должен начинаться с `$tag_`). Чтобы использовать ваш тег в качестве псевдонима в поле ALIAS BY, тег должен использоваться для группировки в запросе.
- Вы также можете использовать синтаксис замены шаблона [[tag_hostname]]. Например, в поле ALIAS BY с использованием этого текста `Host: [[tag_hostname]]` будет заменено значение тега `hostname` для каждого значения легенды, а пример значения легенды будет таким: `Host: server1`.

## Запрос журналов

Запрос и отображение данных журнала из InfluxDB доступны в [Explore]({{< relref "../../explore/_index.md" >}}) и в [панели журналов]({{< relref ". ./../panels/visualizations/logs-panel.md" >}}) в дашбордах.
Выберите источник данных InfluxDB, а затем введите запрос для отображения журналов.

### Журнал запросов

Проводник журналов (кнопка «Измерения/Поля») рядом с полем запроса показывает список измерений и полей. Выберите нужное измерение, содержащее ваши данные журнала, а затем выберите, какое поле Исследовать должно использоваться для отображения сообщения журнала.

После возврата результата на панели журнала отображается список строк журнала и столбчатая диаграмма, где ось X показывает время, а ось Y показывает частоту/количество.

### Фильтр поиска

Чтобы добавить фильтр, щелкните значок плюса справа от кнопки «Измерения/Поля» или условия. Вы можете удалить фильтры тегов, щелкнув первый выбор и выбрав `--remove filter--`.

## Аннотации

[Аннотации]({{< relref "../../dashboards/annotations.md" >}}) позволяют накладывать расширенную информацию о событиях поверх графиков. Добавьте запросы аннотаций, используя представление Annotations в меню Dashboard.

Пример запроса:

```SQL
ВЫБЕРИТЕ название, описание из событий ГДЕ $timeFilter ORDER BY time ASC
```

Для InfluxDB вам нужно ввести запрос, аналогичный приведенному в примере выше. Необходим компонент ``where $timeFilter```. Если вы выберете только один столбец, вам не нужно ничего вводить в поля сопоставления столбцов. Поле **Теги** может быть строкой, разделенной запятыми.