Особенности архитектуры#

Средства аналитики используют данные Automation Controller для построения сводных показателей, графиков активности и отчетов по использованию автоматизации.

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

Взаиодействие Automation Dashboard и Automation Controller представлено на следующей схеме:

../../_images/arch-dashboard-light.svg ../../_images/arch-dashboard-dark.svg

Источник и подготовка данных#

Для построения аналитики компонент обращается к Automation Controller по REST API с авторизацией по стандарту OAuth 2.0. Получаемые сведения включают данные о заданиях, шаблонах, проектах, организациях, пользователях и узлах.

Обновление данных выполняется асинхронно и отделено от пользовательского интерфейса. Компонент получает данные инкрементально по мере появления новых записей в контроллере, что позволяет снизить нагрузку на источник данных и избежать постоянных запросов к API во время работы пользователей с интерфейсом.

Обработка и хранение#

Компонент получает данные из Automation Controller, нормализует их и сохраняет в собственной базе данных. После этого система аналитики формирует агрегированные представления, используемые для построения графиков, сводных показателей и отчетов.

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

Такой подход позволяет отделить процесс сбора данных от пользовательской аналитики и выполнять сложные вычисления без обращения к рабочему API контроллера.

Особенности доступа и изоляции#

Система определяет доступность данных для пользователя в зависимости от его привилегий в Automation Controller. Она учитывает доступные организации, проекты и шаблоны, поэтому пользователь видит только те данные, к которым у него уже есть доступ в контроллере.

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