Перейти к основному содержимому
Версия: 2.0 (WIP)

Дашборды

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

  • графики
  • таблицы
  • индикаторы здоровья
  • карты
  • и др.

Дашборды открываются автоматически, когда запускается клиент.

Область видимости дашборда

Дашборд может отображать данные только тех конфигурационных единиц (КЕ), которые попадают в его область видимости. Это означает, что не все данные из системы будут доступны на дашборде — только те, которые соответствуют заданным критериям.

Как дашборд получает список конфигурационных единиц?

Перед отображением данных дашборд должен определить, с какими именно конфигурационными единицами (КЕ) он будет работать. Для этого:

  • Дашборд выполняет TQL-запрос (Topology Query Language — язык запросов для работы с топологией данных в CMDB).
  • Этот запрос отправляется в CMDB (Configuration Management Database — базу данных управления конфигурациями).
  • В результате запроса возвращается список конфигурационных единиц, удовлетворяющих заданным условиям.

Дашборд не может использовать произвольные или разовые TQL-запросы. Для работы с ним необходимо:

  • Заранее создать и сохранить TQL-запрос в системе.
  • Привязать этот сохраненный запрос к дашборду.
  • Это обеспечивает контроль над данными и предотвращает использование некорректных или неоптимизированных запросов.

Использование списка КЕ виджетами дашборда

После получения списка конфигурационных единиц:

  • Виджеты (графики, таблицы, индикаторы) на дашборде используют этот список для запроса конкретных данных по каждой КЕ.
  • Например, если конфигурационная единица — это "сервер" или "сетевое устройство", то виджеты могут отображать его состояние, загрузку, доступность и другие метрики.

Область видимости дашборда определяется заранее сохраненным TQL-запросом (Topology Query Language), который фильтрует конфигурационные единицы (КЕ) в CMDB. Без этого запроса дашборд не сможет получить данные для отображения в виджетах. Такой подход обеспечивает структурированный, безопасный и управляемый доступ к информации в системе.

Пост-фильтрация TQL запросов

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

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

Механизм работы фильтра, включая выбор узлов TQL, добавление условий (по атрибутам, статусам, конкретным КЕ) и построение логических выражений, полностью идентичен функционалу фильтрации на графе топологии. Подробное описание типов условий и настройки логики фильтрации см. в разделе Пост-фильтрация TQL запросов.

Использование на дашборде

  1. Вызов функции: Кнопка Фильтр (иконка воронки) расположена в правом верхнем углу на панели инструментов дашборда.
  2. Настройка: В открывшемся окне задайте необходимые ограничения (например, выбор конкретной инсталляции по IP-адресу, как показано на скриншоте).
  3. Результат применения:
    • Дерево топологии (панель слева): список КЕ фильтруется, оставляя только узлы, удовлетворяющие условиям, и их связи.
    • Виджеты: Графики, метрики и информационные панели дашборда обновляются, отображая данные только для отфильтрованных конфигурационных единиц.

Создание дашборда

Создание дашборда выполняется со страницы Главная / Дашборды.

img.png

В модальном окне создания дашборда нужно заполнить поля:

Импорт дашбордов

Импорт дашбордов, как и их создание, выполняется на странице Главная / Дашборды.

Процесс импорта:

  1. В модальном окне импорта укажите файл с конфигурацией дашборда (в формате JSON) или вставьте его содержимое в текстовое поле.
  2. Система проанализирует конфигурацию. Если будут найдены конфликты (например, дашборд с таким именем уже существует), вам потребуется выбрать одно из действий:
    • Пропустить: Этот дашборд не будет импортирован.
    • Заменить существующий: Текущий дашборд будет полностью заменен версией из файла.
    • Переименовать: Дашборд будет импортирован с новым названием.

Тип дашборда после импорта:

  • При замене существующего дашборда его тип (Личный или Общий) не изменится.
  • При импорте нового или импорте с переименованием всегда создается Общий дашборд.
подсказка

Обратите внимание: Даже если вы импортируете дашборд, который изначально был Личным, в результате он станет Общим.

Параметризация TQL дашборда

Для уточнения выборки КЕ для дашборда можно использовать параметризацию TQL запроса. Для этого в меню дашборда предусмотрен фильтр, который отвечает за параметризиацию. "Фильтр"

Фильтр позволяет параметризовать TQL запрос с помощью ТКЕ и конкретных КЕ.

"Фильтр"

Диапазон времени дашборда

Абсолютный диапазон

Позволяет задать точный период:

  • Начальная дата и время – с какого момента отображать данные.
  • Конечная дата и время – до какого момента (если не указано, используется текущее время).
  • Можно задать время с точностью до минуты.

Пример использования:

"Абсолютный диапазон с 09.06.2025 00:00 до 16.06.2025 00:00"

Относительный диапазон

Позволяет выбрать период относительно текущего времени:

  • Введите число и выберите единицу измерения: минуты, часы, дни, недели, месяцы.
  • Таблица покажет данные за указанный промежуток времени до текущего момента.

Примеры:

  • "1 день" – данные за последние 24 часа.
  • "2 недели" – данные за последние 14 дней.

Общие настройки виджетов

Заголовок виджета

Заголовок виджета позволяет написать название виджета и включить/выключить его отображение.

"Заголовок"

Название виджета это литеральная строка в верхней части виджета.

Название отображается если:

  • Заполнено соответствующее поле
  • Выключен параметр Скрыть заголовок

Фильтрация КЕ

Виджет работает в рамках области области видимости дашборда.

"Фильтрация КЕ"

Принцип фильтрации: Фильтр позволяет ограничить перечень КЕ, доступных для отображения в виджете.

Правила фильтрации:

  1. Фильтр не применён (пустой)
  • Виджет отображает все КЕ из области видимости дашборда
  1. Фильтр применён (заполнен хотя бы одно поле)
  • Виджет показывает только КЕ, соответствующие условиям фильтра
  • Остальные КЕ исключаются из отображения

Частные случаи:

  • Заполнено только поле "Узел TQL" → Виджет включает все КЕ выбранного узла TQL
  • Заполнены оба поля ("Узел TQL" и "КЕ") → Виджет отображает только указанные КЕ из выбранного узла

Важно: Если условия фильтрации не соответствуют ни одной КЕ в CMDB, виджет может отображаться пустым. Такая ситуация может случиться в следствии изменения CMDB, после сохранения значений фильтра. Рекомендуется проверять корректность заданных фильтров.

Настройка источника данных

Источниками данных для виджетов являются:

  • Статические данные
  • Метрики
  • Атрибуты
  • Индикаторы здоровья

Метрики

Для получения метрик используется PromQL запрос. PromQL запрос бывает нескольких типов:

  • query
  • query_range

Отличие между query (instant) и query_range (range) в PromQL

Характеристикаquery (instant)query_range (range)
Тип запросаМгновенный запрос (одна точка во времени)Запрос за диапазон времени (интервал)
Возвращаемые данныеПоследнее значение метрикиМассив значений за указанный период
Формат ответа"resultType": "vector""resultType": "matrix"
Структура ответа"value": [timestamp, "value"]"values": [[ts1, "v1"], [ts2, "v2"], ...]
ИспользованиеТекущее состояние (например, CPU сейчас)Графики, тренды (например, CPU за час)
Пример PromQLup{job="node"}up{job="node"}[5m]

Instant Query

Возвращает одно актуальное значение метрики на момент выполнения запроса. Используется для отображения текущего состояния (например, статус сервиса, текущая загрузка CPU).

Пример запроса:

http_requests_total{handler="/api"}

Пример ответа:

[
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {},
"value": [1743080341, "1"]
}
]
}
},
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {},
"value": [1743080341, "2"]
}
]
}
}
]

Range Query

Возвращает массив значений за указанный временной диапазон (например, последние 5 минут). Используется для построения графиков или анализа трендов.

Пример запроса:

http_requests_total{handler="/api"}[5m]

Пример ответа:

[
{
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": {},
"values": [
[1743079579, "1"],
[1743079580, "1"]
]
}
]
}
},
{
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": {},
"values": [
[1743079579, "2"],
[1743079580, "2"]
]
}
]
}
}
]

Ключевые различия

Тип данных:

  • queryvector (одно значение + метки).
  • query_rangematrix (набор значений с метками).

Применение:

  • query → Дашборды с текущими показателями (например, "Сейчас онлайн: 42").
  • query_range → Графики изменения метрик (например, "Запросы за последний час").

Синтаксис PromQL:

  • Для query_range обязательно указывать диапазон в квадратных скобках (например, [5m]).
подсказка

Для query_range должна существовать опция "Использовать последнее значение", которая берет крайнюю правую точку из matrix (аналог query).

Редактор метрик

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

Меню редактора метрик:

  • Переименование метрик. Используется для переименования лейблов метрик и настройки легенды. "Alias" Для составления шаблона используется расширенный синтаксис Handlebars. Добавлены функции привязки и подмены отображаемых значений enumMap, kvMap и kvRegexMap. enumMap позволяет привязать значения к лейблам метрик, kvMap позволяет составить словарь значений для подстановки в шаблон, а kvRegexMap работает аналогично kvMap, но с применением регулярных выражений.

  • Шаблоны. Используется для подстановки параметризированных шаблонных частей PromQL запроса

  • Копировать

  • Вставить

  • Открыть редактор в модальном окне

Шаблон легенды

Название метрики может использоваться во многих виджетах:

  • название измеряемой величины в виджете Одно значение
  • легенды в графиках

Название метрики формироваться на основе шаблона. В шаблоне должна быть возможность использования лейблов из метаданных метирки. Шаблон должен разрешаться в строку. Если указанный в шаблоне лейбл отсутствует в метрике, то вместо него подставляется пустая строка "".

Группировка КЕ

Группировка - опциональный параметр. Группировка нужна для применения виджета к различным КЕ, с сохранением их связанности.

img.png

Типы группировки:

  • Вся область видимости TQL
  • Узлы TQL
  • КЕ

Вся область видимости TQL - вариант формирования источника данных, при котором все КЕ, находящиеся в области видимости дашборда не зависят друг от друга. При таком варианте группировки, КЕ дифференцируются только по узлу TQL, связи между КЕ разных типов не учитываются.

Пример: "Fallback"


КЕ - вариант формирования источника данных, при котором все КЕ, находящиеся в области видимости дашборда группируются по принадлежности к узлу TQL.

В результате группировки в карточке виджета будут созданы вкладки по каждому КЕ.

Группировка по КЕ требует заполнения источника данных для виджета в привязке к каждому ТКЕ. При этом запрос не ограничивается перечнем КЕ выбранного типа. В запросе могут быть использованы ссылки на связанные КЕ других типов. При этом Памир по CMDB самостоятельно определит наличие/отсутствие связей. В случае их наличия - подставит в запрос.

подсказка

Структура CMDB

Запрос источника данных для узла TQL Parent

Узел TQL Parent "[[ tql_parent_1.attribute.name ]]" связан с узлами TQL Child "[[ tql_child_2.attribute.name ]]"

Разрешение запроса

Для каждого КЕ, принадлежащему узлу Parent будет создана вкладка. На вкладках запросы разрешаться в:

  • Parent A - Узлел TQL Parent "Parent A" связан с узлами TQL Child "Child A1|Child A2"
  • Parent B - Узлел TQL Parent "Parent B" связан с узлами TQL Child "Child B"
  • Parent C - Узлел TQL Parent "Parent C" связан с узлами TQL Child ""

Пример: "Group"


Узлы TQL - вариант формирования источника данных, при котором все КЕ, находящиеся в области видимости дашборда группируются по принадлежности к узлу TQL.

Данный тип группировки предполагает заполнения источника данных для виджета в привязке к каждому узлу TQL. Памир разрешает ссылки на связанные КЕ других типов аналогично группировке КЕ. Отличие заключается в том, что запрос должен разрешиться относительно каждого КЕ, входящего в узел TQL. Запросы будут объединены через PromQL оператор OR.

подсказка

Структура CMDB

Запрос источника данных для узла TQL Parent

metric_name{label1=[[ tql_parent_1.attribute.name ]], label2=[[ tql_child_2.attribute.name ]]}

Разрешение запроса

metric_name{label1="Parent A", label2="Child A1|Child A2"} OR
metric_name{label1="Parent B", label2="Child B"} OR
metric_name{label1="Parent C", label2=""} OR

Привязка значений

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

Как настроить привязку значений

  1. В панели Dashboard откройте настройки виджета.
  2. В виджете перейти в раздел Настройки.
  3. Нажмите кнопку Добавить.
  4. Введите конкретные значения и их текстовые аналоги.
  5. Сохраните изменения и проверьте отображение на дашборде.

Пример использования

Допустим, у вас есть метрика status с значениями:

  • 0 – система offline
  • 1 – система online
  • 2 – система в режиме ожидания

Вы можете настроить маппинг:

  • 0 → "Offline"
  • 1 → "Online"
  • 2 → "Standby"

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

Настройка единиц измерения

Памир предоставляет гибкие возможности настройки единиц измерения для метрик, что особенно важно для корректного отображения данных мониторинга.

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

Когда вы выбираете единицы измерения в Памир, система автоматически:

  • Масштабирует значения (например, преобразует байты в мегабайты)
  • Добавляет соответствующий суффикс (%, °C, MB/s и т.д.)
  • Форматирует отображение чисел

Доступ к настройкам находится в:

  • Разделе "Настройки" → "Единицы измерения"

Примеры преобразований

Исходное значениеВыбранная единицаОтображение
1024bytes1024 B
1024kilobytes1 KB
0.85percent85%
1000000short1M
0.333333seconds333ms

Особенности работы:

  • Автоматическое масштабирование

    • Для единиц данных: B → KB → MB → GB
    • Для времени: ns → μs → ms → s → m → h
  • Влияние на инструменты

    • Единицы учитываются при:
      • Отображении на графиках
      • Форматировании таблиц
      • Показе значений в тултипах
  • Важные нюансы

    • Не влияют на исходные данные
    • Работают согласовано с осями графиков

Привязка значения

Настройка пороговых значений

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

Базовые параметры

base.png

  • Базовое значение: Определяет порог по умолчанию, который применяется независимо от других настроенных порогов
  • Тип данных: Необходимо указать тип обрабатываемых данных (числовой или строковый) для корректной работы порогов

Работа с разными типами данных

string.png

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

  • Система последовательно проверяет соответствие полученного значения заданным порогам
    • Требуется точное совпадение строк
  • Применяется первый подходящий порог из списка

range.png

Для числовых значений:

  1. Дополнительные пороги: Пользователь может задать несколько числовых значений, разделяющих диапазоны
  2. Автоматическая сортировка: Перед сравнением система сортирует пороги по возрастанию
  3. Механизм сравнения:
  • Полученное значение последовательно проверяется относительно каждого порога
  • При достижении или превышении порога активируется соответствующий уровень

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

Рассмотрим пример с четырьмя уровнями:

  1. Норма (зелёный): значения <50
  2. Предупреждение (жёлтый): \≥50
  3. Предкритический (оранжевый): \≥80
  4. Критический (красный): \≥100

В этом случае:

  • Значение 45 отобразится зелёным
  • Значение 60 - жёлтым
  • Значение 90 - оранжевым
  • Значение 100 и выше - красным

Примечание: Для корректной работы убедитесь, что тип порогов соответствует типу поступающих данных.

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

Экспорт и импорт дашбордов

Раздел Дашборды позволяет выгружать конфигурации информационных панелей в формате JSON. Эта функция необходима для резервного копирования, переноса настроек между разными экземплярами системы, а также для добавления дашбордов в Пакет конфигураций (Контент-пак).

Расположение в системе: В левом боковом меню перейдите по пути: ГлавнаяДашборды.

Экспорт дашбордов (подготовка для Контент-пака)

На странице «Реестр дашбордов» представлена таблица со всеми доступными в системе информационными панелями. Для удобства поиска вы можете использовать строку поиска, фильтры по тегам или по уровню доступа (Всё / Личный / Общий).

Чтобы выгрузить конфигурацию дашбордов:

  1. В левой колонке таблицы отметьте галочками (чекбоксами) один или несколько дашбордов, которые необходимо экспортировать (например, audit2, del_tag).
  2. После выбора элементов в правом верхнем углу (под кнопкой «Добавить») станет активно выпадающее меню действий. В нем отобразится надпись с количеством отмеченных элементов (например, «Выбрано: 2»).
  3. Нажмите на это выпадающее меню и выберите пункт «Экспорт».
  4. Система автоматически сформирует и скачает на ваш компьютер файл в формате .json, содержащий конфигурацию всех выбранных дашбордов.

Связь с Пакетом конфигураций: Полученный при экспорте JSON-файл нужно использовать на странице создания Пакета конфигураций. Загрузите этот файл в поле «Дашборды».

Импорт дашбордов напрямую

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

Чтобы импортировать дашборды:

  1. На странице «Реестр дашбордов» откройте выпадающее меню действий в правом верхнем углу.
  2. Выберите пункт «Импорт».
  3. В открывшемся окне выберите подготовленный JSON-файл с конфигурацией дашбордов на вашем компьютере.
  4. Дашборды будут добавлены в систему с сохранением их оригинальных тегов, запросов и настроек приватности.

Связанные разделы