Expert Mode: Настройка генерации модели
Оглавление
- Общее описание
- 1. Настройка контекста данных
- 2. Настройка сервисов модели
- 3. Настройка метрик модели
- 4. Удаление циклических зависимостей
- 5. Периодичность запуска модели
Общее описание
Экспертный режим настройки генерации модели предоставляет собой детальную настройку всех аспектов модели с возможностью гибкой кастомизации. Подойдет для опытных пользователей, которым нужен полный контроль над структурой данных, фильтрацией, шаблонами сервисов и метрик.
1. Настройка контекста данных
Цель этого шага - выстроить иерархию (дерево) источников данных (активов), которая определяет, откуда, в каком порядке и с какими фильтрами загружаются данные для модели.

Описание
Контекст данных - это последовательность узлов, выстроенных в дерево. Каждый узел описывает один источник данных. Система проходит по этому дереву сверху вниз и последовательно загружает данные, подставляя фильтры из родительских шагов в дочерние.
Структура узла
Каждый узел - это блок с настройками, который содержит:
| Параметр | Что определяет | Пример |
|---|---|---|
| Название узла | Уникальное имя узла в дереве | resources |
| Родительский узел | От какого узла зависит текущий (может быть пустым для корневого) | all_services |
| Конфигурация актива | Источник данных | [pg] APM: Сервисы |
| Поля для отображения | Какие поля загружать из актива | service, resource |
| Фильтры | Условия отбора данных. Могут как ссылаться на поля родительских шагов через {{ ... }}, так и быть явными значениями | {{ all_services.source_services }}, host_office |
| Скрыть узел | Если отмечено - узел участвует в расчетах, но не отображается в итоговой визуализации. Узел считается автоматически скрытым, если данные, полученные на его этапе, превышают 30 записей | - |
Система поддерживает любое количество независимых деревьев. Каждое дерево обрабатывается отдельно, результаты объединяются в итоговый контекст.

Принцип работы фильтров
Фильтры позволяют загружать только те данные, которые относятся к шагу-предку.
Пример: нужно загрузить сервисы только для конкретного хоста.
- Узел
Хостызагружает все хосты (поля:id,name) - Узел
Сервисыимеет фильтр:host_id = {{ hosts.id }} - Система для каждого хоста подставит его
idв фильтр и загрузит только его сервисы
Синтаксис ссылок: {{ название_узла.поле }}.
Последовательность действий
Для создания нового узла:
- Нажать кнопку
+ Добавить узел - Ввести
Название узла- уникальное имя - Выбрать
Родительский узелиз выпадающего списка (или оставить пустым для корневого) - Выбрать
Конфигурацию актива- откуда брать данные - Отметить
Поля для отображения- какие поля нужны - При необходимости добавить
Фильтрыи указать условия - При необходимости отметить
Скрыть узел
Для редактирования существующего узла:
- Нажать на блок узла
- Изменить нужные параметры
- Изменения сохраняются автоматически
Для удаления узла:
- Нажать на иконку корзины в блоке узла
- Подтвердить удаление
| Правило | Описание |
|---|---|
| Название узла должно быть уникальным | Нельзя создать два узла с одинаковым именем |
| Родительский узел должен существовать | При указании родителя он уже должен быть создан |
| Нельзя создавать циклы | Нельзя, чтобы узел был родителем самому себе или своему потомку |
| Фильтры ссылаются только на родительские узлы | Нельзя сослаться на узел из другой ветки или на дочерний |
| Скрытые узлы не видны на визуализации | Но участвуют в расчетах и передают данные потомкам |
2. Настройка сервисов модели
Цель этого шага - определить шаблон того, как сервисы будут выглядеть в итоговой модели: какие поля брать за идентификатор, как формировать название и как сервисы связаны между собой.

Параметры настройки
Базовые параметры сервиса:
| Параметр | Что определяет | Пример |
|---|---|---|
| Узел | Название узла, созданного на первом шаге | all_services |
| Идентификатор | Шаблон, по которому строится уникальный ID сервиса | {{ all_services.service }} |
| Название сервиса | Шаблон названия, которое отобразится на модели | {{ all_services.title }} |
| Описание | Дополнительное пояснение к сервису (необязательно) | - |
Настройка связи с другим сервисом (если текущий сервис зависит от другого):
| Параметр | Что определяет | Пример |
|---|---|---|
| Узел | Название узла, в котором находится зависимый сервис | resources |
| Идентификатор целевого сервиса | Шаблон ID сервиса, от которого зависит текущий | {{ resources.service }} |

Пример настройки
Допустим, на первом этапе были созданы следующие узлы:
all_services- список всех сервисовresources- список ресурсов, от которых зависят сервисы
Процесс настройки сервиса со связью:
- Выбрать узел
all_services - Указать идентификатор:
{{ all_services.service }} - Указать название:
{{ all_services.service }} - В блоке
Связьуказать узелresources - Указать идентификатор целевого сервиса:
{{ resources.service }}
Результат в модели: появится сервис с названием и стрелка к ресурсу, от которого он зависит.
Последовательность действий
Для настройки базовых параметров сервиса:
- Выбрать
Узелиз выпадающего списка (доступны узлы, созданные на Шаге 1) - В поле
Идентификаторввести шаблон с использованием{{ ... }} - В поле
Название сервисаввести шаблон для отображения - При необходимости заполнить
Описание
Для настройки связи с другим сервисом:
- Развернуть блок
Связь - Выбрать
Узел, в котором находится зависимый сервис - В поле
Идентификатор целевого сервисаввести шаблон - При необходимости добавить несколько связей (если поддерживается)
Для удаления сервиса или связи:
- нажать на иконку корзины рядом с соответствующим блоком
3. Настройка метрик модели
Цель этого шага - определить шаблон метрик: какие показатели будут собираться для сервисов, откуда их брать и как агрегировать.
Шаблон применяется ко всем сервисам автоматически. Для каждого сервиса система подставит его собственные значения (через {{ ... }}) и сформирует метрики по заданным правилам.

Описание
Метрики - это показатели, которые характеризуют состояние сервиса (например, загрузка CPU, количество запросов, время ответа).
На этом шаге вы привязываете глобальные метрики (из системы мониторинга МАЯК) к вашим сервисам и настраиваете, как именно они будут рассчитываться.
Структура сервиса
В верхней части отображается блок Структура сервиса - это список ранее настроенных сервисов, для которых будут собираться метрики. Структуры сервисов формируются на Шаге 2.
Параметры настройки
| Параметр | Что определяет | Пример |
|---|---|---|
| Метрики Маяка | Глобальная метрика, доступная для привязки | cpu_usage, request_duration |
| Название метрики сервиса | Шаблон имени метрики для конкретного сервиса | {{ service.name }}_cpu |
| Описание | Пояснение, что показывает метрика и как рассчитывается | "Загрузка CPU в процентах" |
| Группы фильтров | Фильтрация объектов глобальной метрики для привязки к нужному сервису | namespace = {{ service.namespace }} |
| Функция определения общего состояния | Способ объединения показателей в одну метрику сервиса | avg, min, max |

Последовательность действий
Для создания новой метрики:
- Нажать
+ Добавить структуру метрики - Выбрать
Метрику Маякаиз выпадающего списка - В поле
Название метрики сервисаввести шаблон с использованием{{ ... }} - Заполнить
Описание(рекомендуется) - В блоке
Группы фильтровдобавить условия фильтрации - Выбрать
Функцию агрегации(avg,minилиmax) - Нажать
Сохранить
Для редактирования метрики:
- Нажать на блок метрики
- Изменить нужные параметры
- Изменения сохраняются автоматически
Для удаления метрики:
- нажать на иконку корзины в блоке метрики
Принцип работы фильтров
Глобальная метрика может содержать данные для множества объектов. Фильтры позволяют выбрать только те данные, которые относятся к конкретному сервису.
Пример: глобальная метрика cpu_usage имеет теги: service_name, pod, namespace.
Чтобы привязать ее к сервису payment:
| Параметр | Значение |
|---|---|
| Метрика Маяка | cpu_usage |
| Группы фильтров | service_name = "payment" |
| Название метрики сервиса | {{ service.name }}_cpu_usage |
Синтаксис ссылок: {{ название_узла.поле }}.
Функции агрегации
Когда по фильтрам найдено несколько значений метрики (например, несколько подов сервиса), их нужно объединить в одну метрику сервиса.
| Функция | Что делает | Пример использования |
|---|---|---|
| avg | Среднее арифметическое | Средняя загрузка CPU по всем подам |
| min | Минимальное значение | Самая низкая загрузка (для выявления простаивающих подов) |
| max | Максимальное значение | Пиковая загрузка (для выявления перегруженных подов) |
4. Удаление циклических зависимостей
Цель этого шага - устранить зацикленные связи, которые могут возникнуть из-за сложной структуры данных и привести к некорректной работе модели.

Последовательность действий
Автоматическое удаление:
- Нажать кнопку
Удалить все циклы (n), гдеn- количество найденных циклов - Система автоматически найдет и удалит все циклические зависимости
Ручное удаление:
- В интерфейсе найти проблемную связь (обычно она подсвечивается)
- Нажать на иконку корзины рядом с зависимостью

5. Периодичность запуска модели
Цель этого шага - настроить расписание, по которому модель будет автоматически пересчитываться.

Типы расписания
| Тип | Описание | Пример |
|---|---|---|
| Cron-выражение | Гибкая настройка через стандартный cron-синтаксис | */5 * * * * - каждые 5 минут |
| Интервал | Простой выбор: время начала/интервал/единицы | 01/01/2026 / 20 / дни |