Создание новой корреляции

Прежде чем начать

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

Создание корреляции в редакторе корреляций Explore

Чтобы узнать больше, обратитесь к документации Explore о построении корреляций в Explore.

Создание корреляции на странице Administration

  1. Перейдите в раздел Administration в Grafana.
  2. В разделе Plugins and data откройте страницу Correlations.
  3. Нажмите кнопку «Add» в правом верхнем углу.
  4. Укажите label для корреляции.
  5. Укажите необязательное description.
  6. Перейдите на следующую страницу.
  7. Укажите target data source.
  8. Укажите target query, используя переменные.
  9. Перейдите на следующую страницу.
  10. Укажите source data source.
  11. Укажите results field.
  12. Добавьте преобразования, если вам нужны переменные, которые не являются полями в исходном источнике данных.
  13. Нажмите «Add», чтобы добавить новое преобразование.
  14. Выберите тип преобразования.
  15. Настройте преобразование в зависимости от выбранного типа.
  16. Сохраните корреляцию.

Вы можете редактировать корреляцию таким же образом, но вы не можете изменить выбранные источники данных.

Создание корреляции с помощью провижининга

Настраивайте корреляции через провижининг, расширяя провижининг источников данных. Корреляции определяются как подраздел конфигурации исходного источника данных:

YAML
datasources:
  - name: Data source name # source data source
    ...
    jsonData:
    ...
    correlations:
      - targetUID: uid
        label: "test"
        description: "..."
        type: query
        config:
          target:
            expr: "..."
          field: "name"
          transformations:
            - type: regex
              field: "test"
              expression: /\w+/
              mapValue: "other"
            - type: logfmt
              field: "test"
      - targetUID: uid2
        label: "test 2"
        description: "..."
        type: external
        config:
          target:
            url: "http://${example}"
          field: "name"

Описание свойств провижининга:

targetUID
UID целевого источника данных
label
Метка ссылки
description
Необязательное описание
type
Тип корреляции. Допустимые значения — «query» для ссылки на запрос источника данных и «external» для ссылки на внешний URL-адрес.
config
Объект конфигурации
config.target
Модель целевого запроса
config.field
Имя поля, в котором отображается ссылка
config.transformations (list)
Список объектов преобразований
transformation.type
regex или logfmt
transformation.field
Поле, к которому будет применено преобразование. Если оно не определено, преобразование применяется к данным из config.field корреляции.
transformation.expression
Выражение регулярного выражения (только для преобразования regex)
transformation.mapValue
Новое имя переменной из первого совпадения регулярного выражения (только для преобразования regex)

Определение структуры модели целевого запроса

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

  1. Откройте Explore.

  2. Выберите источник данных, который вы хотите использовать в качестве цели корреляции.

  3. Откройте вкладку инспектора и выберите «Query».

  4. Выполните пробный запрос.

  5. Изучите результаты.

  6. Найдите объект-список «queries». Каждый объект создан с использованием структуры модели запроса, определённой источником данных. Вы можете использовать ту же структуру в файле провижининга.

    Инспектор запросов со структурой целевого запроса
    Инспектор запросов со структурой целевого запроса

    Модель запроса в этом примере представлена первой записью в списке queries. Свойства «refId» и «datasource» добавляются ко всем запросам во время выполнения и могут быть опущены:

    JSON
    {
      "scenario_id": "random_walk",
      "alias": "app",
      "seriesCount: 2
    }