Перейти к основному содержимому
Версия: 6.0

Expert Mode: Настройка генерации модели

Оглавление


Общее описание

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


1. Настройка контекста данных

Цель этого шага - выстроить иерархию (дерево) источников данных (активов), которая определяет, откуда, в каком порядке и с какими фильтрами загружаются данные для модели.

Интерфейс

Описание

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

Структура узла

Каждый узел - это блок с настройками, который содержит:

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

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

Настройка параметров узла

Принцип работы фильтров

Фильтры позволяют загружать только те данные, которые относятся к шагу-предку.

Пример: нужно загрузить сервисы только для конкретного хоста.

  1. Узел Хосты загружает все хосты (поля: id, name)
  2. Узел Сервисы имеет фильтр: host_id = {{ hosts.id }}
  3. Система для каждого хоста подставит его id в фильтр и загрузит только его сервисы
Информация

Синтаксис ссылок: {{ название_узла.поле }}.

Последовательность действий

Для создания нового узла:

  1. Нажать кнопку + Добавить узел
  2. Ввести Название узла - уникальное имя
  3. Выбрать Родительский узел из выпадающего списка (или оставить пустым для корневого)
  4. Выбрать Конфигурацию актива - откуда брать данные
  5. Отметить Поля для отображения - какие поля нужны
  6. При необходимости добавить Фильтры и указать условия
  7. При необходимости отметить Скрыть узел

Для редактирования существующего узла:

  1. Нажать на блок узла
  2. Изменить нужные параметры
  3. Изменения сохраняются автоматически

Для удаления узла:

  1. Нажать на иконку корзины в блоке узла
  2. Подтвердить удаление
Основные правила
ПравилоОписание
Название узла должно быть уникальнымНельзя создать два узла с одинаковым именем
Родительский узел должен существоватьПри указании родителя он уже должен быть создан
Нельзя создавать циклыНельзя, чтобы узел был родителем самому себе или своему потомку
Фильтры ссылаются только на родительские узлыНельзя сослаться на узел из другой ветки или на дочерний
Скрытые узлы не видны на визуализацииНо участвуют в расчетах и передают данные потомкам

2. Настройка сервисов модели

Цель этого шага - определить шаблон того, как сервисы будут выглядеть в итоговой модели: какие поля брать за идентификатор, как формировать название и как сервисы связаны между собой.

Настройка сервисов модели


Параметры настройки

Базовые параметры сервиса:

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

Настройка связи с другим сервисом (если текущий сервис зависит от другого):

ПараметрЧто определяетПример
УзелНазвание узла, в котором находится зависимый сервисresources
Идентификатор целевого сервисаШаблон ID сервиса, от которого зависит текущий{{ resources.service }}

Настройка параметров сервисов

Пример настройки

Допустим, на первом этапе были созданы следующие узлы:

  • all_services - список всех сервисов
  • resources - список ресурсов, от которых зависят сервисы

Процесс настройки сервиса со связью:

  1. Выбрать узел all_services
  2. Указать идентификатор: {{ all_services.service }}
  3. Указать название: {{ all_services.service }}
  4. В блоке Связь указать узел resources
  5. Указать идентификатор целевого сервиса: {{ resources.service }}

Результат в модели: появится сервис с названием и стрелка к ресурсу, от которого он зависит.

Последовательность действий

Для настройки базовых параметров сервиса:

  1. Выбрать Узел из выпадающего списка (доступны узлы, созданные на Шаге 1)
  2. В поле Идентификатор ввести шаблон с использованием {{ ... }}
  3. В поле Название сервиса ввести шаблон для отображения
  4. При необходимости заполнить Описание

Для настройки связи с другим сервисом:

  1. Развернуть блок Связь
  2. Выбрать Узел, в котором находится зависимый сервис
  3. В поле Идентификатор целевого сервиса ввести шаблон
  4. При необходимости добавить несколько связей (если поддерживается)

Для удаления сервиса или связи:

  • нажать на иконку корзины рядом с соответствующим блоком

3. Настройка метрик модели

Цель этого шага - определить шаблон метрик: какие показатели будут собираться для сервисов, откуда их брать и как агрегировать. Шаблон применяется ко всем сервисам автоматически. Для каждого сервиса система подставит его собственные значения (через {{ ... }}) и сформирует метрики по заданным правилам.

Настройка метрик модели

Описание

Метрики - это показатели, которые характеризуют состояние сервиса (например, загрузка CPU, количество запросов, время ответа).

На этом шаге вы привязываете глобальные метрики (из системы мониторинга МАЯК) к вашим сервисам и настраиваете, как именно они будут рассчитываться.

Структура сервиса

В верхней части отображается блок Структура сервиса - это список ранее настроенных сервисов, для которых будут собираться метрики. Структуры сервисов формируются на Шаге 2.

Параметры настройки

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

Настройка параметров метрики

Последовательность действий

Для создания новой метрики:

  1. Нажать + Добавить структуру метрики
  2. Выбрать Метрику Маяка из выпадающего списка
  3. В поле Название метрики сервиса ввести шаблон с использованием {{ ... }}
  4. Заполнить Описание (рекомендуется)
  5. В блоке Группы фильтров добавить условия фильтрации
  6. Выбрать Функцию агрегации (avg, min или max)
  7. Нажать Сохранить

Для редактирования метрики:

  1. Нажать на блок метрики
  2. Изменить нужные параметры
  3. Изменения сохраняются автоматически

Для удаления метрики:

  • нажать на иконку корзины в блоке метрики

Принцип работы фильтров

Глобальная метрика может содержать данные для множества объектов. Фильтры позволяют выбрать только те данные, которые относятся к конкретному сервису.

Пример: глобальная метрика cpu_usage имеет теги: service_name, pod, namespace.

Чтобы привязать ее к сервису payment:

ПараметрЗначение
Метрика Маякаcpu_usage
Группы фильтровservice_name = "payment"
Название метрики сервиса{{ service.name }}_cpu_usage
Информация

Синтаксис ссылок: {{ название_узла.поле }}.

Функции агрегации

Когда по фильтрам найдено несколько значений метрики (например, несколько подов сервиса), их нужно объединить в одну метрику сервиса.

ФункцияЧто делаетПример использования
avgСреднее арифметическоеСредняя загрузка CPU по всем подам
minМинимальное значениеСамая низкая загрузка (для выявления простаивающих подов)
maxМаксимальное значениеПиковая загрузка (для выявления перегруженных подов)

4. Удаление циклических зависимостей

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

Удаление циклических зависимостей

Последовательность действий

Автоматическое удаление:

  1. Нажать кнопку Удалить все циклы (n), где n - количество найденных циклов
  2. Система автоматически найдет и удалит все циклические зависимости

Ручное удаление:

  1. В интерфейсе найти проблемную связь (обычно она подсвечивается)
  2. Нажать на иконку корзины рядом с зависимостью

Вид после Удаления циклических зависимостей


5. Периодичность запуска модели

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

Периодичность запуска модели

Типы расписания

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