Визуализация данных из Azure Data Explorer в Grafana

Аналитическая платформа Grafana позволяет запрашивать и визуализировать данные, а также создавать и совместно использовать панели мониторинга, основанные на этих визуализациях. Grafana предоставляет подключаемый модуль Azure Data Explorer, который позволяет подключиться к службе Azure Data Explorer для визуализации данных. Из этой статьи вы узнаете, как настроить Azure Data Explorer в качестве источника данных для Grafana и визуализировать данные из примера кластера.

Используйте следующее видео, чтобы узнать, как использовать подключаемый модуль Azure Data Explorer для Grafana, настроить Azure Data Explorer в качестве источника данных для Grafana, а затем визуализировать данные.

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

Предварительные условия

Набор демонстрационных данных StormEvents содержит данные о погоде из Национальных центров Соединенных Штатов по экологической информации.

Настройка источника данных

Чтобы настроить обозреватель данных Azure в качестве источника данных для средства панели мониторинга, выполните следующие действия. Мы подробнее рассмотрим эти действия далее в этом разделе.

  1. Создайте субъект-службу Azure Active Directory. Субъект-служба используется средством панели мониторинга для доступа к службе обозреватель данных Azure.

  2. Назначьте субъекту-службе AAD роль читателя базы данных Azure Data Explorer.

  3. Укажите свойства подключения средства панели мониторинга на основе данных от субъекта-службы Azure AD, а затем проверьте подключение.

Создание субъекта-службы

Вы можете создать субъект-службу на портале Azure или с помощью интерфейса командной строки Azure CLI. Независимо от выбранного метода после создания вы получите значения для четырех свойств подключения, которые потребуются вам на последующих шагах.

Портал Azure

  1. Чтобы создать субъект-службу, выполните инструкции, приведенные в документации по порталу Azure.

    1. В разделе Назначение приложению роли присвойте роль с типом Читатель используемому кластеру Azure Data Explorer.

    2. В разделе Получение значений для входа скопируйте три значения свойств, описанные в шагах: идентификатор каталога (идентификатор клиента), идентификатор приложения и пароль.

  2. На портале Azure выберите раздел Подписки и скопируйте идентификатор подписки, в которой вы создали субъект-службу.

    Идентификатор подписки — портал.

Azure CLI

  1. Создание субъекта-службы. Задайте нужную область и тип роли reader.

    az ad sp create-for-rbac --name "https://{UrlToYourDashboard}:{PortNumber}" --role "reader" \
                             --scopes /subscriptions/{SubID}/resourceGroups/{ResourceGroupName}
    

    Дополнительные сведения см. в статье Создание субъекта-службы Azure с помощью Azure CLI.

  2. Эта команда возвращает результаты в показанном ниже формате. Скопируйте значения трех свойств: appID (идентификатор приложения), password (пароль) и tenant (арендатор).

    {
      "appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "displayName": "{UrlToYourDashboard}:{PortNumber}",
      "name": "https://{UrlToYourDashboard}:{PortNumber}",
      "password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    }
    
  3. Получите список своих подписок.

    az account list --output table
    

    Скопируйте идентификатор соответствующей подписки.

    Идентификатор подписки — CLI.

Назначение субъекту-службе роли читателя

Назначьте созданному субъекту-службе роль читателя базы данных Azure Data Explorer. Это действие можно выполнить в разделе Разрешения на портале Azure или в разделе Запрос с помощью команды управления.

Портал Azure — разрешения

  1. На портале Azure перейдите к кластеру Azure Data Explorer.

  2. В разделе Обзор выберите базу данных с демонстрационными данными StormEvents.

    Выберите База данных.

  3. Выберите Разрешения и щелкните Добавить.

    Разрешения базы данных.

  4. В разделе Добавить разрешения базы данных выберите роль Читатель, а затем щелкните Select principals (Выбрать субъекты).

    Добавьте разрешения базы данных.

  5. Найдите созданный субъект-службу. Установите флажок возле субъекта и нажмите кнопку Выбрать.

    Снимок экрана: область портал Azure новых участников. Кнопка выбрать и два поля с нечитаемыми свойствами субъекта-службы выделены.

  6. Нажмите кнопку Сохранить.

    Снимок экрана: панель "Добавление разрешений базы данных" в портал Azure. Кнопка сохранить выделена.

Команда управления — запрос

  1. На портале Azure перейдите к кластеру Azure Data Explorer и выберите Запрос.

    Снимок экрана кластера Azure обозреватель данных в портал Azure. Элемент запроса выделен.

  2. Выполните приведенную ниже команду в окне запроса. Используйте идентификаторы приложения и арендатора, полученные с помощью портала Azure или интерфейса командной строки.

    .add database {TestDatabase} viewers ('aadapp={ApplicationID};{TenantID}')
    

    Эта команда возвращает результаты в показанном ниже формате. В этом примере первая строка обозначает существующего пользователя в базе данных, а вторая — только что добавленный субъект-службу.

    Результирующий набор.

Настройка свойств и тестирование подключения

Теперь, когда вы назначили субъекту-службе роль читателя, можно настроить свойства для экземпляра Grafana и проверить подключение в Azure Data Explorer.

  1. Откройте Grafana и щелкните значок шестеренки в меню слева, затем выберите Data Sources (Источники данных).

    Источники данных.

  2. Выберите Add data source(Добавить источник данных).

  3. На странице Data Sources / New (Источники данных / Создать) введите имя для источника данных и выберите тип Azure Data Explorer Datasource (Источник данных Azure Data Explorer).

    Имя и тип подключения.

  4. В меню Параметры > Сведения о подключении введите имя кластера в формате https://{имя_кластера}.{регион}.kusto.windows.net. Введите остальные значения, полученные с помощью портала Azure или интерфейса командной строки. Сопоставление параметров см. в таблице ниже.

    Свойства подключения.

    Пользовательский интерфейс Grafana Портал Azure Azure CLI
    идентификатор подписки; Идентификатор подписки SubscriptionId
    Идентификатор клиента Идентификатор каталога tenant
    Идентификатор клиента Идентификатор приложения appId
    Секрет клиента Пароль password
  5. Щелкните Save & Test (Сохранить и протестировать).

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

Оптимизация запросов

Существует два компонента, которые можно использовать для оптимизации запросов:

Чтобы выполнить оптимизацию, внесите необходимые изменения в меню Источники данных > Параметры > Оптимизация запросов.

Панель оптимизации запросов.

Оптимизация производительности при отрисовке запросов панели мониторинга с помощью кэширования результатов запросов

При отрисовке панели мониторинга или визуального элемента несколько раз одним или несколькими пользователями Grafana по умолчанию отправляет по крайней мере один запрос в Azure Data Explorer. Включите Кэширование результатов запросов, чтобы улучшить производительность отрисовки панели мониторинга и снизить нагрузку на кластер Azure Data Explorer. В течение указанного диапазона времени Azure Data Explorer будет использовать кэш результатов для получения предыдущих результатов и не будет запускать ненужный запрос. Эта функция особенно эффективна для снижения нагрузки на ресурсы и повышения производительности, когда несколько пользователей используют одну панель мониторинга.

Чтобы включить отрисовку кэша результатов, выполните следующие действия в области Оптимизации запросов:

  1. Отключите функцию Использовать динамическое кэширование.
  2. В поле Максимальный возраст кэша введите количество минут, в течение которых необходимо использовать кэшированные результаты.

Разрешите слабую согласованность

Для кластеров настроена строгая согласованность. Это обеспечивает актуальность результатов запроса с учетом всех изменений в кластере. При включении слабой согласованности результаты запроса могут отставать на 1-2 минуты от изменений кластера. С другой стороны, слабая согласованность может существенно повысить время отрисовки визуальных элементов. Поэтому, если немедленная согласованность не важна и производительность минимальная, включите слабую согласованность для повышения производительности. Дополнительные сведения о согласованности запросов см. в разделе Согласованность запросов.

Чтобы включить слабую согласованность, в области Оптимизации запросов выберите Согласованность данных > Слабая.

Визуализируйте данные

Итак, вы завершили настройку Azure Data Explorer в качестве источника данных для Grafana, и теперь пора визуализировать данные. Мы покажем базовый пример, используя как режим построителя запросов, так и режим работы с необработанными данными в редакторе запросов. Рекомендуем просмотреть примеры других запросов к примеру набора данных в статье Написание запросов для обозревателя данных Azure.

  1. Откройте Grafana и щелкните значок плюса в меню слева, затем выберите Dashboard (Панель мониторинга).

    Создайте панель мониторинга.

  2. На вкладке Добавить выберите Добавить новую панель.

    Добавьте граф.

  3. На панели графика щелкните Panel Title (Заголовок панели), а затем Edit (Редактировать).

    Измените панель.

  4. В нижней части панели щелкните Data Source (Источник данных) и выберите только что настроенный источник данных.

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

Режим построителя запросов

Редактор запросов поддерживает два режима. Режим построителя запросов и режим работы с необработанными данными. Для определения запроса используйте режим построителя запросов.

  1. Под источником данных выберите База данных и выделите базу данных в раскрывающемся списке.

  2. Выберите Из и выделите таблицу в раскрывающемся списке.

    Выберите таблицу в построителе запросов.

  3. После определения таблицы отфильтруйте данные, выберите значения для отображения и определите группы для этих значений.

    Фильтр

    1. Щелкните + справа от параметра WHERE (фильтр) , чтобы выделить в раскрывающемся списке один или несколько столбцов таблицы.
    2. Для каждого фильтра определите значения с помощью применимого оператора. Этот выбор аналогичен использованию оператора WHERE в языке запросов Kusto.

    Выбор значения

    1. Щелкните + справа от столбцов значений, чтобы выделить в раскрывающемся списке столбцы значений, которые будут отображаться на панели.
    2. Для каждого столбца значений задайте тип агрегирования. Можно задать одно или несколько столбцов значений. Этот выбор эквивалентен использованию оператора суммирования.

    Группирование значений
    Щелкните + справа от параметра Группировать по (сводка) , чтобы выбрать из раскрывающегося списка один или несколько столбцов, которые будут использоваться для разделения значений по группам. Это эквивалентно выражению группы в операторе суммирования.

  4. Чтобы выполнить запрос, выберите Выполнить запрос.

    Построитель запросов со всеми заданными значениями.

    Совет

    После установки параметров в построителе запросов создается запрос языка запросов Kusto. В этом запросе показана логика, созданная с помощью графического редактора запросов.

  5. Выберите Изменить KQL, чтобы перейти в режим необработанных данных и изменить запрос с использованием возможностей языка запросов Kusto.

Построитель запросов с необработанным запросом.

Режим необработанных данных

Для изменения запроса используйте режим необработанных данных.

  1. На панели запросов скопируйте приведенный ниже запрос и щелкните Выполнить запрос. Этот запрос возвращает число событий из примера набора данных в разбивке по дням.

    StormEvents
    | summarize event_count=count() by bin(StartTime, 1d)
    

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

  2. На этом графике не отображаются никакие результаты, так как по умолчанию область действия ограничивается шестью последними часами. В меню вверху выберите Last 6 hours (Последние 6 часов).

    Последние шесть часов.

  3. Укажите настраиваемый диапазон, куда входит 2007 год, данные за который представлены в примере набора данных StormEvents. Нажмите кнопку Применить.

    Настраиваемый диапазон дат.

    Теперь на графике отображаются данные за 2007 год по дням.

    Готовый граф.

  4. В меню вверху щелкните значок сохранения. Значок «Сохранить»..

Важно!

Чтобы переключиться в режим построителя запросов, выберите Переключиться на построитель. Grafana преобразует запрос в построителе запросов в доступную логику. Логика построителя запросов ограничена, поэтому можно потерять изменения, внесенные в запрос вручную.

Переход к построителю из режима необработанных данных.

Создание предупреждений

  1. На главной панели мониторинга выберите Оповещения > Каналы уведомлений, чтобы создать новый канал уведомлений

    Создайте канал уведомлений.

  2. Создайте новый Канал уведомлений, а затем Сохраните его.

    Создайте канал уведомлений.

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

    Выберите «Изменить» на панели мониторинга.

  4. Щелкните значок колокольчика оповещений, чтобы открыть панель Оповещения. Выберите Создать оповещение. Укажите следующие свойства на панели Оповещение.

    Свойства оповещения.

  5. Выберите значок Сохранить панель мониторинга, чтобы сохранить изменения.

Дальнейшие действия