Общие сведения

При работе Polymatica Analytics могут логироваться:

  • системные события;
  • пользовательские события;
  • события мультисфер;
  • события экспорта.

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

Конфигурирование логгеров

Логгеры конфигурируются в общем файле конфигурации /etc/polymatica/polymatica.conf. Чтобы изменения в файле вступили в силу, необходимо перезапускать Polymatica Analytics командой

systemctl restart polymatica.service

Наименования логгеров:

  • main – логгер системных событий;
  • user_actions – логгер пользовательских событий;
  • export – логгер событий экспорта;
  • Import – логгер событий мультисфер.

Для конфигурирования логгера необходимо указать префикс «plm.log.», наименование логгера (кроме некоторых исключений, см. примечание в таблице) и наименование параметра:

Пример
plm.log.main.enabled

а также значение, если параметр принимает значение какого-либо типа:

Пример
plm.log.main.file.path = logs/main

Параметры логгеров

ПараметрТип значенияСостояние по умолчанию*ОписаниеПримечание
enabled
ВыключенВключает логирование
loglvl
int3

Определяет уровень логирования. В лог записываются события с указанным уровнем логирования и выше.

Принимаемые значения:

  • 6 – off;
  • 5 – critical;
  • 4 – error;
  • 3 – warning;
  • 2 – info;
  • 1 – debug;
  • 0 – trace

Чем выше уровень логирования, тем меньше событий регистрируется в логах. 

Поддерживаемые сообщения для логгеров user_actions и export — 2, для логгера main — 0–6.

При установке определенных уровней для основного логгера (main), выводится дополнительная информация об окружении импорта.

  1. На уровне логирования info (plm.log.main.loglvl = 2) выводится следующая информация:
    1. Количество уже запущенных модулей импорта - при старте очередного импорта.
    2. Сообщение о начале каждого этапа импорта, начинающееся со слова "Started".
    3. Сообщение о завершении каждого этапа импорта, начинающееся со слова "Finished" и содержащее информацию о времени, затраченном на этап, в миллисекундах ("Duration: <> ms").
  2. На уровне логирования debug (plm.log.main.loglvl = 1) выводится следующая информация: 
    1. Количество ядер (потоков исполнения), доступных для использования - единожды при запуске, после вывода информации о версии Polymatica Analytics.
    2. Статистика по времени загрузки и обработки строк от БД - на каждый миллион строк при любом типе импорта.
    3. Записи о старте сервисных задач.
  3. На уровне логирования trace (plm.log.main.loglvl = 0) выводится следующая информация:
    1. Время загрузки последних N строк из БД - для импортов JDBC и ODBC. Пример: [JDBC] Import progress: fetched [20460] rows in [500] ms
    2. Сообщения о построении сортировочных индексов для размерностей при использовании параллельной сортировки с информацией об использующемся параметре загрузки CPU.

Любой более подробный уровень логирования включает сообщения менее подробных уровней.

На всех уровнях логирования основного логгера (main) отображается UUID мультисферы в виде префикса для каждой записи о состоянии импорта и о работе с мультисферой (открытие, закрытие, сохранение).

file.path
stringСм. примечание

Для логгера main: директория размещения файлов логов.

Для прочих логгеров: размещение файла для записи логов

Путь указывается относительно корня репозитория /var/plmrepo/, например: logs/main

Значение по умолчанию для логгера main:

/var/plmrepo/logs/main

Значения по умолчанию для других логгеров, если параметр не задан:

  • для логгера user_actions:

/var/plmrepo/logs/user_actions/user_actions

  • для логгера Import:

/var/plmrepo/cubes/<cube_id>/log

  • для логгера export:

/var/plmrepo/logs/export/Userlog_export.csv

log_to_file
ВыключенВключает сохранение лога в файл

Логгер main ежедневно создает новый файл.

Прочие логгеры записывают события в постоянный файл

split
ВыключенВключает раздельную запись лога в различные файлы по модулям

Доступен только для логгера main.

В присутствии этого параметра отменяется ежедневное создание общего файла.

Файлы записываются в директорию, указанную параметром file.path

max_files
int30

Ротация файлов лога.

При превышении заданного количества удаляется самый старый файл

Доступен только для логгера main, который ежедневно создает новый файл.

Для конфигурирования параметра не требуется указывать имя логгера, используйте plm.log.max_files

log_to_stdout
ВыключенВключает вывод лога в stdoutИгнорируется, если выставлен параметр plm.daemon_mode
custom_file_formatting
stringСм. примечание

Определяет форматирование записи лога.

Для форматирования могут быть использованы обычные символы латиницы и флаги:

ФлагНазначение
%*Версия приложения
%<Хэш-коммит фронтенда
%>Хэш-коммит бэкенда

Значения по умолчанию, если параметр не задан:

  • форматирование записи лога пользовательских событий:

'%Y-%m-%d %H:%M:%S'; %v

  • форматирование записи остальных логов:

[%Y-%m-%d %X.%e %z][%8l][%n] %v

* Состояние по умолчанию – это значение параметра, когда он не задан в конфигурации.

** Специальные флаги возвращают информацию, которую можно найти в окне приложения «Настройки», в верхнем углу, в поле «Версия», где слева направо даны: версия_приложения-коммит_фронтенда-коммит_бэкенда.

Параметры, связанные с логированием, также приводятся на странице Файл конфигурации, в разделе «Настройки логгеров».


Пример конфигурации логгера

Для примера сконфигурируем логгер user_actions.

Пример
plm.log.user_actions.enabled
plm.log.user_actions.loglvl = 1
plm.log.user_actions.log_to_file
plm.log.user_actions.file.path = logs/user_actions/user_actions
plm.log.user_actions.custom_file_formatting = '%Y-%m-%d %H:%M:%S'; '%*-%<-%>'; %v

Получение логов через GET-запросы

Через GET-запросы могут быть получены следующие логи:

  • GET //host/api/v2/logs — получение списка файлов лога системных событий при условии, что для параметра plm.log.main.file.path используется значение по умолчанию.
  • GET //host/api/v2/logs/last — скачивание текущего файла лога системных событий при условии, что для параметра plm.log.main.file.path используется значение по умолчанию и параметр plm.log.main.split выключен.
  • GET //host/api/v2/logs/<name> — скачивание файла лога системных событий по его имени (<name> из запроса //host/api/v2/logs) при условии, что для параметра plm.log.main.file.path используется значение по умолчанию.
  • GET //host/resources/userlog — скачивание файла лога пользовательских событий при условии, что для параметра plm.log.user_actions.file.path используется значение по умолчанию.
  • GET //host/resources/log?cube_id=<ID мультисферы> — скачивание лога событий мультисферы для конкретной мультисферы.

Логи мультисфер

В лог мультисферы записывается информация о создании, обновлениях и изменениях настроек конкретной мультисферы. Лог доступен только для пользователя с ролью «Администратор системы», как через GET-запрос (см. «Получение логов через GET-запросы» выше), так и через контекстное меню мультисферы.

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

Запись об изменениях параметров мультисферы имеет следующий формат:

[дата и время записи] [указание уровня логирования][имя логгера] {user_name: логин пользователя, изменяющего мультисферу, from:{перечень изменяемых параметров мультисферы до сохранения}, to:{перечень измененных параметров мультисферы после сохранения}}

Пример: [2025-07-29 06:07:40.075 +00:00][    info][Import] {user_name: User1, from:{indirect_sort_cpu_load_percent: 70}, to:{indirect_sort_cpu_load_percent: 80}}.

В таблице ниже представлены параметры мультисферы, отражаемые в записях лога:

ПараметрНаименованиеОписаниеПример
Логин пользователя, сохранившего измененияuser_nameОтображается всегда.user_name: User1
Имя мультисферыcube_nameОтображается только в случае переименования.cube_name: "Мультисфера1"
Источникиdatasources

Для каждого источника указываются параметры:

name — имя источника,
server — адрес сервера.
Для файловых источников указывается только name.

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

datasources: [{name: "TestSourcePSQL12", server: "123.456.78.90:5432"},  {name: "Новый источник"}]
Размерностиdims

Для каждой размерности указываются параметры:

id — идентификатор размерности,
name — имя размерности.
Отображаются только в случае изменения состава размерностей или в случае изменения параметров одной из размерностей.

{dims: [{id: "eeca4601", name: "plan_implementation"}, {id: "b504f73d", name: "report_date"}]
Фактыfacts

Для каждого факта указываются параметры:

id — идентификатор факта,
name — имя факта,
nulls_allowed — разрешение пустых значений.
Отображаются только в случае изменения состава фактов или в случае изменения параметров одного из фактов.

facts: [{id: "8209a518", name: "pw_fact_date_square_sum",  nulls_allowed: false}, {id: "a81cfa2a", name: "dpw_fact_date_square_reg",  nulls_allowed: true}]
Тип обновленияupdate

Возможные значения:
1 — полное,
2 — интервальное,
3 — инкрементальное,
4 — обновление измененных  записей.
Отображается только в случае изменения.

update: 1
Расписаниеschedule

Указываются параметры:

delayed — параметр отложенного создания мультисферы до первого обновления;
items — настройки расписания:

type тип расписания; значения: 

1 — ежедневное обновление,
2 — еженедельное обновление,
3 — ежемесячное обновление;

time  время (время в секундах от начала суток = часы * 3600 + минуты * 60);
time_zone часовой пояс; значения:

"UTC-1:00" : 0,
"UTC-2:00" : 1,
"UTC-3:00" : 3,
"UTC-3:30" : 4,
"UTC-4:00" : 5,
"UTC-5:00" : 6,
"UTC-6:00" : 7,
"UTC-7:00" : 8,
"UTC-8:00" : 9,
"UTC-9:00" : 10,
"UTC-9:30" : 11,
"UTC-10:00" : 12,
"UTC-11:00" : 13,
"UTC-12:00" : 14,
"UTC±0:00" : 15,
"UTC+1:00" : 16,
"UTC+2:00" : 17,
"UTC+3:00" : 18,
"UTC+3:30" : 19,
"UTC+4:00" : 20,
"UTC+4:30" : 21,
"UTC+5:00" : 22,
"UTC+5:30" : 23,
"UTC+5:45" : 24,
"UTC+6:00" : 25,
"UTC+6:30" : 26,
"UTC+7:00" : 27,
"UTC+8:00" : 28,
"UTC+8:45" : 29,
"UTC+9:00" : 30,
"UTC+9:30" : 31,
"UTC+10:00" : 32,
"UTC+10:30" : 33,
"UTC+11:00" : 34,
"UTC+12:00" : 35,
"UTC+12:45" : 36,
"UTC+13:00" : 37,
"UTC+13:45" : 38,
"UTC+14:00" : 39

week_day день недели (только для еженедельного обновления);
day — число месяца (только для ежемесячного обновления, значения от 1 до 31).

Отображается только в случае изменения.

schedule: {delayed: true, items: [ {type: 3, time: 3600, time_zone: 0, day: 1}]}
Дата актуальности данныхrelevance_date

Указываются параметры:

dimension_id идентификатор размерности, максимальное значение которой используется как дата актуальности данных:
data_type тип данных; значения:

6 — date,
8 — datetime,
19 — unknown.

consider_filter  учитывать фильтр при выборе максимального значения размерности.

Отображается только в случае изменения.

{relevance_date: {dimension_id: "07356321", data_type: 6, consider_filter: true}}
Предельный % загрузки CPU при импортеindirect_sort_cpu_load_percentОтображается только в случае изменения.indirect_sort_cpu_load_percent: 70


Связанные страницы

  • Нет меток