+++
title = "Шаблоны InfluxDB"
description = "Руководство по шаблонам в InfluxDB"
weight = 300
+++

## Шаблоны InfluxDB

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

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

## Использование переменных в запросах InfluxDB

Есть два синтаксиса:

`$<varname>`  Пример:

```sql
SELECT mean("value") FROM "logins" WHERE "hostname" =~ /^$host$/ AND $timeFilter GROUP BY time($__interval), "hostname"
```

`[[varname]]`  Пример:

```sql
SELECT mean("value") FROM "logins" WHERE "hostname" =~ /^[[host]]$/ AND $timeFilter GROUP BY time($__interval), "hostname"
```
Почему два пути? Первый синтаксис легче читать и писать, но он не позволяет вам использовать переменную в середине слова. Когда включены параметры **Многозначный** или **Включить все значения**, Harvest преобразует метки из обычного текста в строку, совместимую с регулярными выражениями. Это означает, что вы должны использовать `=~` вместо `=`.

Пример приборной панели:
[InfluxDB Templated Dashboard](https://play.harvest.org/dashboard/db/influxdb-templated)

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

Если вы добавите переменную шаблона запроса, вы сможете написать запрос исследования InfluxDB (метаданные). Эти запросы могут возвращать такие вещи, как имена измерений, имена ключей или значения ключей. Для получения дополнительной информации см. [Добавить переменную запроса]({{< relref "../../variables/variable-types/add-query-variable.md" >}}).

Например, у вас может быть переменная, содержащая все значения тега `hostname`, если вы укажете такой запрос в переменной запроса **Query**.
```sql
ПОКАЗАТЬ ЗНАЧЕНИЯ ТЕГА С КЛЮЧОМ = "hostname"
```
## Цепочки или вложенные переменные

Вы также можете создавать вложенные переменные, иногда называемые [связанными переменными]({{< relref "../../variables/variable-types/chained-variables.md" >}}).

Например, если у вас есть другая переменная, например `region`. Затем вы могли бы указать, что переменная hosts показывает только хосты из текущего выбранного региона с помощью такого запроса:
```sql
ПОКАЗАТЬ ЗНАЧЕНИЯ ТЕГА С КЛЮЧОМ = "hostname"  WHERE region = '$region'
```

Вы можете получить ключевые имена для данного измерения.

```sql
ПОКАЗАТЬ КЛЮЧИ ТЕГА [FROM <measurement_name>]
```

Если у вас есть переменная с ключевыми именами, вы можете использовать эту переменную в предложении group by. Это позволит вам изменить группу, используя список переменных в верхней части панели инструментов.

### Переменная специальных фильтров

InfluxDB поддерживает специальный тип переменной Ad hoc filter. Эта переменная позволяет указать любое количество фильтров ключ/значение на лету. Эти фильтры автоматически применяются ко всем вашим запросам InfluxDB.

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