Skip to Content

Служба Analytic

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

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

Analytic собирает первичные события из RabbitMQ и сохраняет их в отдельную базу данных. В отличие от других служб Оркестратора, Analytic не участвует в операционной работе (запуск роботов, обработка очередей, лицензирование и т.д.). Это аналитический компонент.

Ключевые особенности:

  • Слив первичных данных — служба аккумулирует сырые события с минимальной предварительной агрегацией.
  • Гибкость использования — данные можно использовать как угодно: строить сложные отчёты, создавать материализованные представления (MV), подключаться к БД напрямую из BI-систем или вообще не использовать Analytic — это никак не повлияет на работу Оркестратора.
  • Безопасность для production — Analytic работает с изолированной копией данных. Даже самые ресурсоёмкие аналитические запросы не влияют на основные базы Оркестратора (ltools, ltoolslogs, ltoolsidentity и др.).

Что даёт Analytic администратору:

Analytic позволяет свободно работать с данными без ограничений. Analytical БД — это изолированная площадка, где можно делать с метриками всё, что нужно: строить сложные выборки, создавать долгообновляемые представления, настраивать выгрузки в BI.

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

  1. Получение событий — служба подключается к RabbitMQ и потребляет сообщения о ключевых событиях (запуски роботов, статусы очередей, ошибки и т.д.).
  2. Обработка и хранение — Analytic сохраняет события в отдельную базу данных PostgreSQL с минимальной предварительной агрегацией.
  3. Предоставление данных — через API служба отдаёт данные для отображения в UI Оркестратора (вкладка «Аналитика»). Кроме того, вы можете подключаться к аналитической БД напрямую и строить собственные отчёты.

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

  • Запуски роботов — количество запусков, успешных и ошибочных выполнений, длительность процессов, загруженность роботов.
  • Статистика по очередям обмена данными — время обработки элементов, количество повторов, пропускная способность.
  • Статистика по использованию лицензий (с версии 1.26.7+):
    • Лицензии роботов — сбор данных об использовании лицензий роботами (время взятия/освобождения, успешность выполнения, идентификаторы роботов и машин)
    • Лицензии Studio Citizen — сбор данных о выданных лицензиях Studio, пользователях и датах последней активности для мониторинга использования в рамках Citizen

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

  • База данных — PostgreSQL (отдельная БД, рекомендованное имя — ltoolsanalytic).
  • Брокер сообщений — RabbitMQ (должен быть доступен для службы).
  • Сетевые порты — служба должна иметь сетевой доступ к RabbitMQ и PostgreSQL.

Установка

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

ОССсылка
Windows ServerУстановка Analytic под Windows
Linux (CentOS / РЕД ОС)Установка Analytic под CentOS 8
Linux (Astra Linux, non-root)Установка на Astra Linux (раздел «Analytic»)

Мониторинг

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

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

Настройка службы выполняется в файле appsettings.Prod<Platform>.json (например, appsettings.ProdLinux.json или appsettings.ProdWin.json).

Основные параметры:

{ "ConnectionStrings": { "AnalyticConnection": "PORT=5432;TIMEOUT=15;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=20;COMMANDTIMEOUT=20;DATABASE=ltoolsanalytic;HOST=192.168.61.183;USER ID=postgres;PASSWORD=..." }, "RabbitMQ": { "HostName": "192.168.61.183", "Port": 5672, "UserName": "guest", "Password": "guest", "VirtualHost": "/" } }
  • AnalyticConnection — строка подключения к аналитической БД PostgreSQL. Пароль рекомендуется шифровать утилитой PasswordEncryptor.
  • RabbitMQ — параметры подключения к брокеру сообщений (хост, порт, логин, пароль, виртуальный хост).

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

RobotLicenseUsage

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

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

StudioLicenseUsage

Таблица содержит информацию об использовании лицензий Studio (доступно с версии 1.26.7+).

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

Особенности сбора статистики по лицензиям Studio: - Одна учетная запись = одна лицензия (даже при открытии нескольких экземпляров Studio) - Лицензия активна, пока открыта Studio - Лицензия освобождается через ~2 минуты после закрытия Studio (обновляется в столбце TimeoutAtUtc)

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

mv_RobotsUsage

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

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

mv_WorkersUsage

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

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

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

  1. Тяжёлая аналитика — строить сложные отчёты с долгими запросами, не опасаясь за нагрузку на основные БД.
  2. Материализованные представления — создавать MV, которые обновляются по расписанию, для ускорения типовых отчётов.
  3. Прямой доступ из BI — подключать к аналитической БД корпоративные BI-системы (Power BI, Tableau, Qlik и др.).
  4. Встроенная аналитика — использовать готовые дашборды в UI Оркестратора (вкладка «Аналитика»).
  5. Отказ от использования — если аналитика не нужна, службу можно не устанавливать или не запускать; это не повлияет на основной функционал Оркестратора.
Last updated on