Служба Analytic
Служба Primo.Orchestrator.Analytic (далее — Analytic) предназначена для сбора, хранения и предоставления аналитических данных о работе Оркестратора.
Назначение и особенности
Analytic собирает первичные события из RabbitMQ и сохраняет их в отдельную базу данных. В отличие от других служб Оркестратора, Analytic не участвует в операционной работе (запуск роботов, обработка очередей, лицензирование и т.д.). Это аналитический компонент.
Ключевые особенности:
- Слив первичных данных — служба аккумулирует сырые события с минимальной предварительной агрегацией.
- Гибкость использования — данные можно использовать как угодно: строить сложные отчёты, создавать материализованные представления (MV), подключаться к БД напрямую из BI-систем или вообще не использовать Analytic — это никак не повлияет на работу Оркестратора.
- Безопасность для production — Analytic работает с изолированной копией данных. Даже самые ресурсоёмкие аналитические запросы не влияют на основные базы Оркестратора (
ltools,ltoolslogs,ltoolsidentityи др.).
Что даёт Analytic администратору:
Analytic позволяет свободно работать с данными без ограничений. Analytical БД — это изолированная площадка, где можно делать с метриками всё, что нужно: строить сложные выборки, создавать долгообновляемые представления, настраивать выгрузки в BI
Принцип работы
- Получение событий — служба подключается к RabbitMQ и потребляет сообщения о ключевых событиях (запуски роботов, статусы очередей, ошибки и т.д.).
- Обработка и хранение — Analytic сохраняет события в отдельную базу данных PostgreSQL с минимальной предварительной агрегацией.
- Предоставление данных — через API служба отдаёт данные для отображения в UI Оркестратора (вкладка «Аналитика»). Кроме того, вы можете подключаться к аналитической БД напрямую и строить собственные отчёты.
Основные функции
- Запуски роботов — количество запусков, успешных и ошибочных выполнений, длительность процессов, загруженность роботов.
- Статистика по очередям обмена данными — время обработки элементов, количество повторов, пропускная способность.
Требования к окружению
- База данных — 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— параметры подключения к брокеру сообщений (хост, порт, логин, пароль, виртуальный хост).
Возможные сценарии использования
- Тяжёлая аналитика — строить сложные отчёты с долгими запросами, не опасаясь за нагрузку на основные БД.
- Материализованные представления — создавать MV, которые рефрешатся по расписанию, для ускорения типовых отчётов.
- Прямой доступ из BI — подключать к аналитической БД корпоративные BI-системы (Power BI, Tableau, Qlik и др.).
- Встроенная аналитика — использовать готовые дашборды в UI Оркестратора (вкладка «Аналитика»).
- Отказ от использования — если аналитика не нужна, службу можно не устанавливать или не запускать; это не повлияет на основной функционал Оркестратора.