Корреляция

Каждая корреляция настраивается с помощью следующих параметров:

Label
Метка ссылки, отображаемая в визуализации
Description
Необязательное описание
Source data source
Источник результатов, для которых отображаются ссылки
Results field
Определяет, где в визуализации отображается ссылка
Target query
Целевой запрос, выполняемый при нажатии на ссылку
Transformations
Необязательные манипуляции с исходными данными, передаваемыми в целевой запрос

Узнайте, как создавать корреляции, на странице Administration или с помощью провижининга.

Исходный источник данных и поле результатов

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

Целевой запрос

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

Переменные корреляции

Вы можете использовать переменные внутри целевого запроса для доступа к исходным данным, связанным с запросом. Корреляции используют синтаксис переменных Grafana. Переменные заполняются значениями из исходных результатов при нажатии на ссылку. Существует два типа переменных, которые вы можете использовать:

  • переменные полей (позволяют обращаться к значениям полей и меткам)
  • переменные корреляции (позволяют обращаться к значениям полей и преобразованиям)

Пример: если исходные результаты содержат поле с именем «employee», к значению поля можно обратиться так:

  • Переменная поля ${__data.fields.employee}
  • Переменная корреляции, которая сопоставляет указанное выше значение поля с ${employee}

Помимо сопоставления значений полей более коротким именам переменных, можно создавать дополнительные переменные корреляции, применяя преобразования к существующим полям

Подробнее см. пример в разделе Использование переменных и преобразований в корреляции.

Корреляция создаёт ссылку на данные только в том случае, если все переменные имеют значения в выбранной строке данных. Глобальные переменные являются исключением из этого правила и не обязаны заполняться из возвращённых данных. Эти переменные интерполируются источниками данных автоматически.

Преобразования корреляции

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

Существует два типа преобразований: logfmt и регулярное выражение.

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

Подробнее см. пример в разделе Использование переменных и преобразований в корреляции.

Преобразование logfmt

Преобразование logfmt разбирает значение поля, содержащее текст в формате пар «ключ/значение» logfmt. Каждая пара становится переменной, ключ которой является именем переменной.

Преобразование logfmt требует указания имени входного поля только в том случае, если вы хотите, чтобы преобразование применялось к полю, отличному от поля результатов. Пример выходных переменных для поля = «host=srv001 endpoint=/test app=foo»:

name value
host srv001
endpoint /test
app foo

Преобразование с помощью регулярного выражения

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

Параметры преобразования с помощью регулярного выражения:

field
Имя входного поля
expression
Регулярное выражение. Именованные группы захвата сопоставляются с переменными, имена которых совпадают с именем группы. Если используются неименованные группы соответствия, переменная создаётся из первого совпадения. Значение переопределяет переменную, совпадающую с входным полем, либо создаётся новая переменная, если указан mapValue (см. пример ниже)
mapValue
Используется с простыми группами регулярного выражения без именованных групп соответствия. По умолчанию первое совпадение переопределяет переменную с именем поля, используемого в качестве входного. Чтобы изменить это поведение по умолчанию, вы можете указать свойство mapValue. Указанное имя используется для создания новой переменной. Это может быть полезно, если вашему целевому запросу требуются и точное значение, и часть значения, извлечённая преобразованием.

Пример: предположим, что имя выбранного поля — «employee», а значение поля — «John Doe».

Различные выходные переменные в зависимости от параметров expression и mapValue:

expression mapValue output variables comment
/\w+ (\w+)/ - employee=Doe No mapValue provided. The first matching is mapped to the existing field name variable (employee)
/(\w+) (\w+)/ name name=John The first matching is mapped to a new variable called “name”
/(?\w+) (?\w+)/ - firstName=John, lastName=Doe When named groups are used they are the names of the output variables and mapValue is ignored.
/(?\w+) (?\w+)/ name firstName=John, lastName=Doe Same as above