Вы можете использовать виджет Контекстные таблицы для получения аналитики на основе SQL-запросов.
При создании этого виджета вам требуется указать значения для следующих параметров:
Вкладка :
График – тип графика. Доступны следующие типы графиков:
Столбчатая диаграмма.
Круговая диаграмма.
Счетчик.
Таблица.
Тенант – тенант, по которому отображаются данные на виджете. Вы можете выбрать несколько тенантов. По умолчанию данные отображаются по тенантам, которые вы выбрали в параметрах макета.
Коррелятор – название коррелятора, содержащего контекстную таблицу, по которой вы хотите получать данные.
Контекстная таблица – название контекстной таблицы, по которой вы хотите получать данные.
Одна и та же контекстная таблица может использоваться в разных корреляторах. При этом для каждого коррелятора создается своя сущность контекстной таблицы. Таким образом, содержимое контекстных таблиц, используемых разными корреляторами, различается, даже если идентификатор и название контекстных таблиц одинаковые.
Поле SQL-запроса – в этом поле вы можете ввести запрос для фильтрации и поиска данных контекстной таблицы вручную. По умолчанию для каждого типа графика в поле указан запрос, который получает схему контекстной таблицы и ключ по ключевым полям.
Структура запроса аналогична той, которая используется при поиске событий.
При создании запроса по контекстным таблицам вам нужно учитывать следующие особенности:
Для функции FROM требуется указать значение `records`.
Если вы хотите получать данные по полям, названия которых содержат пробелы и символы кириллицы, в запросе такие названия требуется выделять кавычками:
в функции SELECT псевдонимы следует выделять двойными или косыми кавычками: "<псевдоним>", `<другой псевдоним>`;
в функции ORDER BY псевдонимы следует выделять косыми кавычками: `<другой псевдоним>`;
значения полей событий выделяются прямыми кавычками: WHERE DeviceProduct = 'Microsoft';
Название полей событий выделять кавычками не требуется.
Если название поля активного листа начинается или заканчивается пробелами, в виджете эти пробелы не отображаются. Название поля не должно состоять только из пробелов.
Если значения полей активного листа могут содержать пробелы в конце или в начале, поиск по ним рекомендуется осуществлять с помощью функции LIKE '%<значение поля>%'.
Вы можете использовать в запросе служебное поле _count (сколько раз эта запись была добавлена в контекстную таблицу), а также пользовательские поля.
Псевдонимы metric и value в SQL-запросах недоступны для изменения для всех типов виджета с аналитикой по активным листам, кроме таблиц.
Если в SQL-запросе используется функция преобразования даты и времени (например, fromUnixTimestamp64Milli) и при этом обрабатываемое поле не содержит даты и времени, в виджете будет отображаться ошибка. Чтобы избежать этого, используйте функции, которые могут обрабатывать нулевое значение. Пример: SELECT _key,fromUnixTimestamp64Milli(toInt64OrNull(DateTime)) as Date FROM `records` LIMIT 250.
Если задать большие значения для функции LIMIT, это может привести к ошибкам в работе браузера.
Если в качестве типа графика вы выбрали Счетчик, необходимо для значений функции SELECT указывать способ обработки данных: count, max, min, avg, sum.
Если вы хотите, чтобы в виджетах по активным листам отображались названия тенантов, а не их идентификаторы, настройте в корреляционных правилах коррелятора функцию наполнения активного листа сведениями об использующем его тенанте. Процесс настройки состоит из следующих этапов:
Создание словаря типа Таблица и импорт в него полученного ранее списка тенантов.
Добавление в корреляционное правило локальной переменной с функцией dict для распознания имени тенанта по идентификатору.
Пример:
Переменная: TenantName
Значение: dict('<Название ранее созданного словаря с тенантами>', TenantID)
Добавление в корреляционное правило действия над активными листами, с помощью которого значение ранее созданной переменной будет с помощью функции Установить записываться в активный лист в формате Ключ–Значение. В качестве ключа следует задать поле активного листа (например, Тенант), а в поле значения обратиться к ранее созданной переменной (например, $TenantName).
В результате срабатывания этого правила в активный лист будет помещаться название тенанта, опознанного функцией dict по идентификатору среди словаря тенантов. При создании виджетов по активным листам можно получить название тенанта, обратившись к названию поля активного листа (в примере выше это Тенант).
Описанный метод можно применять и к другим полям событий с идентификаторами.
Особенности использования псевдонимов в SQL-функциях и SELECT: допустимо использовать двойные и косые кавычки: ", `. При использовании пробелов или кириллицы псевдоним необходимо выделять кавычками: "<Псевдоним с пробелом>", значения следует выделять прямыми одинарными кавычками: '<Значение с пробелом>'. При отображении данных за предыдущий период сортировка по параметру count(ID) может работать неправильно. Рекомендуется использовать сортировку по параметру metric. Например, SELECT count(ID) AS "metric", Name AS "value" FROM `events` GROUP BY Name ORDER BY metric ASC LIMIT 250.
Примеры запросов для получения аналитики по активным листам:
SELECT * FROM `records` WHERE "Источник событий" = 'Екатеринбург' LIMIT 250
Запрос, который возвращает ключ активного листа с названием поля "Источник событий" и значением этого поля "Екатеринбург".
SELECT count(_key) AS metric, Status AS value FROM `records` GROUP BY value ORDER BY metric DESC LIMIT 250
Запрос для круговой диаграммы, который возвращает количество ключей активного листа (агрегация count по полю _key) и все варианты значений пользовательского поля Status. В виджете отображается круговая диаграмма с общим количеством записей активного листа, пропорционально разделенным на количество вариантов значений поля Status.
SELECT Name, Status, _count AS Number FROM `records` WHERE Description ILIKE '%ftp%' ORDER BY Name DESC LIMIT 250
Запрос для таблицы, которая возвращает значения пользовательских полей Name и Status, а также служебного поля _count у тех записей активного листа, в которых значения пользовательского поля Description соответствует запросу ILIKE '%ftp%'. В виджете отображается таблица со столбцами Status, Name и Number.
Вкладка :
Вкладка отображается, если на вкладке в поле График вы выбрали значение Столбчатая диаграмма.
Минимальное значение Y и Максимальное значение Y – масштаб оси Y.
Минимальное значение X и Максимальное значение X – масштаб оси X.
На осях графиков могут отображаться отрицательные значения. Это связано с масштабированием графиков на виджете и может быть исправлено выставлением нуля в качестве минимальных значений графиков вместо Авто.
Вкладка :
Название – название виджета.
Описание – описание виджета.
Цвет – цвет отображения информации:
по умолчанию – цвет шрифта, который используется в вашем браузере по умолчанию;
зеленый;
красный;
синий;
желтый.
Горизонтальный – использование горизонтальной гистограммы вместо вертикальной.
При включении этого параметра вся имеющаяся информация будет отражена в заданном размере виджета. Если данных много, вы можете увеличить размер виджета для оптимального отображения.
Итоговые значения – суммы значений.
Легенда – легенда для аналитики. По умолчанию переключатель включен.
Пустые значения в легенде – отображение параметров с нулевым значением в легенде для аналитики. По умолчанию переключатель выключен.