Skip to Content

Служба Analytic

Служба Primo.Orchestrator.Analytic (далее - Analytic) предназначена для сбора, хранения и предоставления аналитических данных о работе Primo RPA Orchestrator.

Назначение и особенности

Analytic получает события из RabbitMQ и сохраняет их в отдельной аналитической базе данных PostgreSQL. Служба используется для анализа работы роботов, очередей и лицензий, но не участвует непосредственно в запуске роботов, обработке очередей и лицензировании.

Основные возможности:

  • Сбор первичных событий - накопление данных с минимальной предварительной агрегацией.
  • Аналитические запросы - выполнение выборок и построение отчётов на основе накопленных данных.
  • Материализованные представления - хранение предварительно рассчитанных данных для ускорения типовых запросов.
  • Интеграция с BI-системами - использование аналитической базы данных для построения собственных отчётов.

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

Принцип работы

  1. Получение событий - Analytic получает из RabbitMQ сообщения о запусках роботов, работе очередей, ошибках и других событиях Оркестратора.
  2. Обработка и хранение - события записываются в аналитическую базу данных PostgreSQL.
  3. Подготовка статистики - служба обновляет материализованные представления, используемые для аналитических запросов.
  4. Предоставление данных - сведения используются в разделе Аналитика интерфейса Оркестратора и могут применяться при построении внешних BI-отчётов.

Основные функции

  • Аналитика запусков роботов - количество запусков, результаты выполнения, длительность процессов и загрузка роботов.
  • Статистика очередей обмена данными - время обработки элементов, повторы и пропускная способность.
  • Статистика использования лицензий - сведения о лицензиях роботов и Studio Citizen. Сбор этих данных поддерживается начиная с Orchestrator 1.26.7.

Требования к окружению

  • PostgreSQL - отдельная аналитическая база данных, рекомендуемое имя - ltoolsanalytic.
  • RabbitMQ - брокер сообщений, доступный службе Analytic.
  • Сетевая доступность - возможность подключения Analytic к PostgreSQL и RabbitMQ.

Установка

Инструкция по установке зависит от операционной системы:

Операционная системаИнструкция
Windows ServerУстановка Analytic под Windows
Linux (CentOS / РЕД ОС)Установка Analytic под CentOS 8
Linux (Astra Linux, non-root)Установка на Astra Linux - раздел Analytic

Конфигурация

Параметры службы задаются в конфигурационном файле соответствующей платформы, например appsettings.ProdLinux.json или appsettings.ProdWin.json.

Подключение к PostgreSQL и RabbitMQ

Пример основных параметров (адреса и учётные данные приведены условно):

{ "ConnectionStrings": { "AnalyticConnection": "PORT=5432;TIMEOUT=15;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=20;COMMANDTIMEOUT=120;DATABASE=ltoolsanalytic;HOST=postgres.example.local;USER ID=analytic_user;PASSWORD=<encrypted-password>" }, "RabbitMQ": { "HostName": "rabbitmq.example.local", "Port": 5672, "UserName": "rabbitmq_user", "Password": "<password>", "VirtualHost": "/" } }
  • AnalyticConnection - строка подключения к аналитической базе PostgreSQL. Пароль рекомендуется шифровать утилитой PasswordEncryptor в соответствии с принятой схемой конфигурации.
  • RabbitMQ - параметры подключения к брокеру сообщений: адрес, порт, имя пользователя, пароль и виртуальный хост.
  • COMMANDTIMEOUT - таймаут выполнения команд PostgreSQL в секундах. Начиная с Orchestrator 1.26.9, в обновлённых конфигурациях служб используется значение 120 секунд.

COMMANDTIMEOUT=120 - значение в строке подключения к PostgreSQL. Для фонового обновления материализованных представлений начиная с Orchestrator 1.26.9 предусмотрен отдельный параметр CommandTimeoutInSeconds.

Настройка таймаута обновления материализованных представлений

Начиная с Orchestrator 1.26.9, можно задавать максимальное время выполнения команды обновления для каждого материализованного представления с помощью параметра CommandTimeoutInSeconds.

Параметр указывается в секции Schedules → RefreshMaterializedViews конфигурации службы Analytic.

Пример фрагмента конфигурации для mv_WorkersUsage:

{ "Schedules": { "RefreshMaterializedViews": { "mv_WorkersUsage": { "CommandTimeoutInSeconds": 600 } } } }
ЗначениеОписание
600Значение по умолчанию - 600 секунд (10 минут).
0Без ограничения времени выполнения команды.
Положительное числоМаксимальное время выполнения команды в секундах.

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

При возникновении ошибок таймаута во время обновления конкретного представления администратор может увеличить CommandTimeoutInSeconds для этого представления.

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

После изменения конфигурации проверьте журналы Analytic и успешность обновления представлений. Не путайте CommandTimeoutInSeconds с таймаутом отдельной команды, задаваемым в строке подключения через COMMANDTIMEOUT.

Основные таблицы

RobotLicenseUsage

Таблица содержит сведения об использовании лицензий роботами.

№ПолеОписаниеПримечание
1IdПервичный ключ записи
2TakeAtUtcДата и время взятия лицензии
3ReleaseAtUtcДата и время освобождения лицензии роботом
4TimeoutAtUtcДата и время освобождения лицензии Оркестратором по таймауту
5SuccessПризнак успешного завершения выполнения
6OperationKeyИдентификатор бизнес-операции
7TenantIdИдентификатор тенанта
8RobotIdИдентификатор роботаДля оркестраторного робота обязателен. Пустое значение указывает на Attended-робота.
9WorkerIdИдентификатор машины роботаОбязателен для оркестраторного робота.
10AssignmentIdИдентификатор заданияДля оркестраторного робота необязателен.
11ProjectIdИдентификатор проектаОбязателен для оркестраторного робота.
12ProjectNameНаименование проекта
13AttendedRobotUserПользователь Attended-робота
14WorkerIpIP-адрес машины робота
15FolderIdИдентификатор папкиПри использовании папок. Для корневой папки значение пустое.

StudioLicenseUsage

Таблица содержит сведения об использовании лицензий Studio, доступные начиная с Orchestrator 1.26.7.

№ПолеОписаниеПримечание
1IdПервичный ключ записи
2TakeAtUtcДата и время взятия лицензии
3TimeoutAtUtcДата и время освобождения лицензии по таймаутуStudio не передаёт отдельное сообщение о завершении работы.
4TenantIdИдентификатор тенанта
5UserПользователь Studio
6IPIP-адрес машины пользователя
7SessionKeyИдентификатор сеанса
8CitizenТип Citizen

Одна учётная запись занимает одну лицензию Studio, даже если пользователь открыл несколько экземпляров приложения. После закрытия Studio лицензия освобождается по таймауту, обычно примерно через две минуты; время отражается в поле TimeoutAtUtc.

Материализованные представления

mv_RobotsUsage

Содержит предварительно агрегированные по дням данные об использовании лицензий роботами.

№ПолеОписаниеПримечание
1DayДень
2UsageПродолжительность использования, мс
3CountSuccessКоличество успешных завершений
4CountNotSuccessКоличество неуспешных завершений
5CountUsageОбщее количество использований
6LastTakeAtUtcПоследняя дата взятия лицензии
7RobotIdИдентификатор роботаДля оркестраторного робота обязателен. Пустое значение указывает на Attended-робота.
8TenantIdИдентификатор тенанта

mv_WorkersUsage

Содержит предварительно агрегированные по часам дня данные об использовании машин роботов.

№ПолеОписаниеПримечание
1HourDayЧас дня
2UsageПродолжительность использования, мс
3CountRobotКоличество использований роботомПодсчитывается с DISTINCT.
4CountUsageКоличество использований
5WorkerIdИдентификатор машины робота
6TenantIdИдентификатор тенанта

Возможные сценарии использования

  • Аналитические отчёты - выполнение сложных выборок по событиям и статистике.
  • Материализованные представления - использование заранее агрегированных данных для типовых отчётов.
  • BI-системы - подключение к аналитической базе данных из Power BI, Tableau, Qlik и других инструментов.
  • Встроенная аналитика - использование аналитических данных в разделе Аналитика интерфейса Оркестратора.

Мониторинг

Настройка мониторинга службы описана в статье Мониторинг служб Оркестратора.

Очистка аналитической базы данных

Для удаления устаревших записей из базы данных ltoolsanalytic предусмотрены хранимые процедуры пакетной очистки.

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