• Русский
  • Управление мониторинговыми панелями

    Обзор функции

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

    Основные возможности

    • Поддержка настройки пользовательских панелей мониторинга как для бизнес-вью, так и для платформенных вью.
    • Возможность просмотра публично расшаренных панелей, настроенных в платформенных вью, из бизнес-вью с изоляцией данных по namespace, к которому принадлежит бизнес.
    • Поддержка управления панелями внутри дашборда: добавление, удаление, изменение панелей, масштабирование панелей и перемещение панелей с помощью drag-and-drop.
    • Возможность установки пользовательских переменных в дашборде для фильтрации данных запросов.
    • Поддержка настройки групп в дашборде для управления панелями. Группы могут отображаться повторно на основе пользовательских переменных.
    • Поддерживаемые типы панелей: trend, step line chart, bar chart, horizontal bar chart, bar gauge chart, gauge chart, table, stat chart, XY chart, pie chart, text.
    • Функция однокликового импорта панелей из Grafana.

    Преимущества

    • Поддержка пользовательских сценариев мониторинга без ограничений предопределёнными шаблонами, что позволяет добиться по-настоящему персонализированного мониторинга.
    • Богатый набор вариантов визуализации, включая линейные графики, столбчатые диаграммы, круговые диаграммы, а также гибкие варианты компоновки и стилей.
    • Глубокая интеграция с ролевыми правами платформы, позволяющая бизнес-вью определять собственные панели мониторинга при обеспечении изоляции данных.
    • Глубокая интеграция с различными функциями контейнерной платформы, обеспечивающая мгновенный доступ к данным мониторинга контейнеров, сетей, хранилищ и т. д., предоставляя пользователям комплексное наблюдение за производительностью и диагностику неисправностей.
    • Полная совместимость с JSON панелей Grafana, что облегчает миграцию с Grafana для дальнейшего использования.

    Сценарии использования

    • Управление IT-операциями: В составе команды IT-операций вы можете использовать панели мониторинга для унифицированного отображения и управления различными метриками производительности контейнерной платформы, такими как CPU, память, сетевой трафик и др. Настраивая отчёты мониторинга и правила оповещений, вы сможете своевременно обнаруживать и локализовать проблемы системы, повышая эффективность эксплуатации.
    • Анализ производительности приложений: Для разработчиков и тестировщиков приложений панели мониторинга предлагают разнообразные варианты визуализации для наглядного отображения состояния работы приложений и потребления ресурсов. Вы можете создавать специализированные виды мониторинга, адаптированные под разные сценарии приложений, для глубокого анализа узких мест производительности и предоставления основы для оптимизации.
    • Управление мультикластером: Для пользователей, управляющих несколькими контейнерными кластерами, панели мониторинга могут агрегировать данные мониторинга из разных кластеров, позволяя получить общее представление о состоянии системы.
    • Диагностика неисправностей: При возникновении проблем в системе панели мониторинга предоставляют комплексные данные о производительности и инструменты анализа для быстрого выявления корневой причины. Вы можете оперативно просматривать колебания соответствующих метрик на основе информации об оповещениях для углублённого анализа неисправностей.

    Предварительные условия

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

    • Убедитесь, что в кластере, для которого вы хотите настроить панель мониторинга, установлены компоненты мониторинга, а именно плагин ACP Monitor с Prometheus или ACP Monitor с VictoriaMetrics.
    • Убедитесь, что данные, которые вы хотите отображать на панели, были собраны компонентами мониторинга.

    Взаимосвязь между панелями мониторинга и компонентами мониторинга

    • Ресурсы панелей мониторинга хранятся в Kubernetes кластере. Вы можете переключать вью между разными кластерами с помощью вкладки Cluster в верхней части.
    • Панели мониторинга зависят от компонентов мониторинга в кластере для запроса источников данных. Поэтому перед использованием панелей мониторинга убедитесь, что в текущем кластере успешно установлены компоненты мониторинга и они работают нормально.
    • Панель мониторинга по умолчанию запрашивает данные мониторинга из соответствующего кластера. Если вы установите плагин VictoriaMetrics в режиме proxy в кластере, мы автоматически запросим кластер хранения для получения соответствующих данных без необходимости специальной настройки.

    Управление панелями

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

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

    1. Нажмите Create Dashboard, следуйте инструкциям ниже для настройки соответствующих параметров.
    ПараметрОписание
    FolderПапка, в которой находится дашборд; можно ввести или выбрать существующую папку.
    LabelМетка для панели мониторинга; вы можете быстро находить существующие дашборды, фильтруя по верхним меткам при переключении.
    Set as Main DashboardЕсли включено, текущий дашборд будет установлен как основной после успешного создания; при повторном входе в функцию мониторинга по умолчанию будет отображаться основной дашборд.
    VariablesДобавьте переменные при создании дашборда для использования в качестве параметров метрик в добавленных панелях, которые также могут использоваться как фильтры на главной странице дашборда.
    1. После добавления нажмите Create для завершения создания дашборда. Далее необходимо добавить переменные, добавить панели и добавить группы для завершения общей компоновки.

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

    Платформа поддерживает прямой импорт JSON из Grafana для конвертации в панель мониторинга для отображения.

    • В настоящее время поддерживается только Grafana JSON версии V8+; более низкие версии запрещены к импорту.
    • Если какие-либо панели в импортированном дашборде не входят в поддерживаемый платформой диапазон, они могут отображаться как unsupported panel types, но вы можете изменить настройки панели для нормального отображения.
    • После импорта дашборда вы можете выполнять любые операции управления как обычно, без отличий от панелей, созданных в платформе.

    Добавление переменных

    1. В области формы переменных нажмите Add.

    Query

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

    ПараметрОписание
    Query SettingsПри определении настроек запроса, помимо использования PromQL для запроса временных рядов, платформа также предоставляет некоторые общие переменные и функции. См. Common Functions and Variables.
    Regular ExpressionС помощью регулярных выражений можно отфильтровать нужные значения из содержимого, возвращаемого запросами переменных. Это делает каждое имя опции в переменной более ожидаемым. Вы можете предварительно просмотреть, соответствуют ли отфильтрованные значения ожиданиям, в Variable Value Preview.
    Selection Settings- Multiple Selection: При выборе из верхних фильтров на главной странице дашборда позволяет выбрать несколько опций одновременно. Необходимо ссылаться на эту переменную в выражении запроса панелей для просмотра данных, соответствующих значению переменной.
    - All: Если отмечено, в фильтрах будет доступна опция All для выбора всех данных переменной.

    Constant

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

    ПараметрОписание
    Constant ValueЗначение постоянной переменной.

    Custom

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

    ПараметрОписание
    Custom SettingsВведите значения опций через запятую, используя формат display_name : value для каждой опции (например, Production : prod, Staging : stage, Development : dev), или просто перечислите значения, если имя отображения совпадает со значением.

    Textbox

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

    ПараметрОписание
    Textbox ValueЗначение по умолчанию для переменной.
    1. Нажмите OK для добавления одной или нескольких переменных.

    Добавление панелей

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

    Совет: Вы можете настроить размер панели, щёлкнув по правому нижнему углу; щёлкните в любом месте панели для изменения порядка панелей.

    1. Нажмите Add Panel, настройте параметры согласно инструкции ниже.
    • Panel Preview: Область динамически отображает данные, соответствующие добавленным метрикам.

    • Add Metric: Настройте заголовок панели и метрики мониторинга в этой области.

    • Способ добавления: Поддерживается использование встроенных метрик или нативно настроенных метрик. Оба способа объединяются и действуют одновременно.

      • Built-in Metrics: Выберите часто используемые метрики и параметры легенды, встроенные в платформу, для отображения данных в текущей панели.
        • Примечание: Все метрики, добавленные в панель, должны иметь единый юнит; нельзя добавлять метрики с разными единицами в одну панель.
      • Native: Настройте единицу метрики, выражение метрики и параметры легенды. Выражение метрики следует синтаксису PromQL; подробности см. в PromQL Official Documentation.
    • Legend Parameters: Управляет именами, соответствующими кривым на панелях. Можно использовать текст или шаблоны:

      • Правило: вводимое значение должно быть в формате {{.xxxx}}; например, {{.hostname}} заменится на значение метки hostname, возвращаемое выражением.
      • Совет: Если ввести некорректно отформатированный параметр легенды, имена кривых будут отображаться в исходном формате.
    • Instant Switch: При включённом переключателе Instant данные запрашиваются через интерфейс Query Prometheus в режиме мгновенного значения и сортируются, как в статистических и gauge диаграммах. Если выключен, используется метод query_range для запроса серии данных за определённый период.

    • Panel Settings: Поддерживает выбор различных типов панелей для визуализации метрик. См. Manage Panels.

    1. Нажмите Save для завершения добавления панелей.

    2. Можно добавить одну или несколько панелей в дашборд.

    3. После добавления панелей доступны следующие операции для настройки отображения и размера:

      • Щёлкните по правому нижнему углу панели для настройки размера.
      • Щёлкните в любом месте панели для изменения порядка панелей.
      • Нажмите кнопку Edit для изменения настроек панели.
      • Нажмите кнопку Delete для удаления панели.
      • Нажмите кнопку Copy для копирования панели.
    4. После настройки нажмите кнопку Save на странице дашборда для сохранения изменений.

    Добавление групп

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

    1. Нажмите выпадающее меню Add Panel > Add Group, настройте параметры согласно инструкции.
    • Group: Имя группы.
    • Repeat: Поддерживает отключение повторов или выбор переменных для текущих панелей.
      • Disable Repeat: Не выбирать переменную, использовать созданную по умолчанию группу.
      • Parameter Variables: Выберите переменные, созданные в текущих панелях, и дашборд сгенерирует строку идентичных подгрупп для каждого соответствующего значения переменной. Подгруппы не поддерживают изменение, удаление или перемещение панелей.
    1. После добавления группы доступны следующие операции для управления отображением панелей в дашборде:
      • Группы можно сворачивать или разворачивать для скрытия части содержимого дашборда. Панели в свернутых группах не отправляют запросы.
      • Переместите панель в группу, чтобы она управлялась этой группой. Группа управляет всеми панелями между ней и следующей группой.
      • При сворачивании группы можно также перемещать все панели, управляемые этой группой, вместе.
      • Сворачивание и разворачивание групп также считается изменением дашборда. Чтобы сохранить это состояние при следующем открытии, нажмите Save.

    Переключение дашбордов

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

    1. В левой навигационной панели нажмите Operations Center > Monitoring > Monitoring Dashboards.

    2. По умолчанию открывается основной дашборд мониторинга. Нажмите Switch Dashboard.

    3. Вы можете найти дашборды, фильтруя по меткам или ищя по имени, и переключать основные дашборды с помощью переключателя Main Dashboard.

    Другие операции

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

    ОперацияОписание
    YMALОткрывает фактический код CR ресурса дашборда, хранящегося в Kubernetes кластере. Можно изменять весь контент дашборда, редактируя параметры в YAML.
    Export ExpressionПозволяет экспортировать метрики и соответствующие выражения запросов, используемые в текущем дашборде, в формате CSV.
    CopyКопирует текущий дашборд; вы можете редактировать панели по необходимости и сохранить как новый дашборд.
    SettingsИзменяет основную информацию текущего дашборда, например, метки и добавление дополнительных переменных.
    DeleteУдаляет текущий дашборд мониторинга.

    Управление панелями

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

    Описание панелей

    Название панелиОписаниеРекомендуемые сценарии использования
    1Trend ChartОтображает тенденцию данных во времени с помощью одной или нескольких линий.Показывает тренды во времени, например, изменения использования CPU, памяти и т. д.
    2Step Line ChartРасширение линейного графика с соединением точек горизонтальными и вертикальными сегментами, образующими ступенчатую структуру.Подходит для отображения временных меток дискретных событий, например, количества оповещений.
    3Bar ChartИспользует вертикальные прямоугольные столбцы для представления величины данных, высота столбцов соответствует значению.Столбчатые диаграммы интуитивны для сравнения значений, полезны для выявления закономерностей и аномалий, подходят для сценариев с акцентом на изменение значений, например, количество подов, узлов и т. д.
    4Horizontal Bar ChartАналогично столбчатой диаграмме, но использует горизонтальные прямоугольные столбцы.При большом количестве измерений данных горизонтальные диаграммы лучше используют пространство и повышают читаемость.
    5Gauge ChartИспользует полукруглые или кольцевые формы для отображения текущего значения индикатора и его доли от общего.Интуитивно отражает текущее состояние ключевых индикаторов мониторинга, например, использование CPU и памяти системы. Рекомендуется использовать пороги оповещений с изменением цвета для обозначения аномалий.
    6Gauge Bar ChartИспользует вертикальные прямоугольные столбцы для отображения текущих значений индикаторов и их доли.Интуитивно отражает текущее состояние ключевых индикаторов, например, прогресс выполнения задач и нагрузку системы. При наличии нескольких категорий одного индикатора предпочтительнее использовать gauge bar chart, например, доступное дисковое пространство.
    7Pie ChartИспользует сектора для отображения пропорционального соотношения частей и целого.Подходит для демонстрации состава общих данных по разным измерениям, например, доли кодов ответов 4XX, 3XX и 2XX за период.
    8TableОрганизует данные в формате строк и столбцов, облегчая просмотр и сравнение конкретных значений.Подходит для отображения структурированных многомерных данных, например, подробной информации об узлах, подах и т. д.
    9Stat ChartОтображает текущее значение одного ключевого индикатора, обычно с текстовым пояснением.Подходит для отображения в реальном времени важных показателей мониторинга, таких как количество подов, узлов, текущее число оповещений и т. д.
    10Scatter PlotИспользует декартовы координаты для отображения серии точек данных, отражая корреляцию между двумя переменными.Подходит для анализа взаимосвязей между двумя индикаторами, выявления закономерностей, таких как линейная корреляция и кластеризация по распределению точек, помогает обнаружить связи между метриками.
    11Text CardОтображает ключевую текстовую информацию в формате карточки, обычно содержит заголовок и краткое описание.Подходит для представления текстовой информации, например, описаний панелей и пояснений по устранению неполадок.

    Описание конфигурации панелей

    Общие параметры

    ПараметрОписание
    Basic InformationВыберите подходящий тип панели в зависимости от выбранных метрик, добавьте заголовки и описания; можно добавить одну или несколько ссылок, к которым можно быстро перейти, выбрав имя ссылки рядом с заголовком.
    Standard SettingsЕдиницы измерения для нативных метрик. Кроме того, gauge charts и gauge bars поддерживают настройку поля Total Value, которое отображается как процент от Current Value/Total Value на диаграмме.
    TooltipsВсплывающие подсказки для отображения данных в реальном времени при наведении на панели, поддерживают выбранную сортировку.
    Threshold ParametersНастройка порогов для панелей; при включении пороги отображаются выбранными цветами, позволяя визуально оценивать значения.
    ValueНастройка метода вычисления значения, например, последнее значение или минимальное. Применимо только к stat charts и gauge charts.
    Value MappingПереопределение заданных значений, диапазонов, регулярных выражений или специальных значений, например, определение 100 как полного загрузки. Применимо к stat charts, таблицам и gauge charts.

    Специальные параметры для панелей

    Тип панелиПараметрОписание
    Trend ChartGraph StyleМожно выбрать между линейным графиком и графиком с заливкой (area); линейные графики больше отражают изменения тренда, а area-графики акцентируют внимание на изменениях общей и частичной пропорции. Выбирайте в зависимости от потребностей.
    Gauge ChartGauge Chart Settings
    Show Direction: При необходимости просмотра нескольких метрик на одном графике можно задать горизонтальное или вертикальное расположение.
    Unit Redefinition: Можно задать отдельные единицы измерения для каждой метрики; если не задано, используется единица из Standard Settings.
    Stat ChartStat Chart Settings
    Show Direction: При необходимости просмотра нескольких метрик на одном графике можно задать горизонтальное или вертикальное расположение.
    Graph Mode: Можно добавить график в stat chart для отображения тренда метрики во времени.
    Pie ChartPie Chart Settings
    Maximum Number of Slices: Позволяет уменьшить количество секторов на круговой диаграмме, чтобы снизить влияние категорий с низкой долей, но большим количеством. Избыточные сектора объединяются в Others.
    Label Display Fields: Настройка полей, отображаемых в метках круговой диаграммы.
    Pie ChartGraph StyleМожно выбрать стиль отображения: pie или donut.
    TableTable Settings
    Hide Columns: Позволяет уменьшить количество столбцов в таблице для фокусировки на основных данных.
    Column Alignment: Настройка выравнивания данных в столбце.
    Display Name and Unit: Изменение названий столбцов и единиц измерения.
    Text CardGraph Style
    Style: Можно выбрать редактирование содержимого текстовой карточки в формате rich-text или HTML.

    Создание панелей мониторинга через CLI

    1. Создайте новый YAML файл конфигурации с именем example-dashboard.yaml.

    2. Добавьте ресурс MonitorDashboard в YAML файл и отправьте его. Пример ниже создаёт панель мониторинга с именем demo-v2-dashboard1:

      kind: MonitorDashboard
      apiVersion: ait.alauda.io/v1alpha2
      metadata:
        annotations:
          cpaas.io/dashboard.version: '3'
          cpaas.io/description: '{"zh":"描述信息","en":""}' # Поле описания
          cpaas.io/operator: admin
        labels:
          cpaas.io/dashboard.folder: demo-v2-folder1 # Папка
          cpaas.io/dashboard.is.home.dashboard: 'False' # Является ли основным дашбордом?
        name: demo-v2-dashboard1 # Имя
        namespace: cpaas-system # Namespace (все создания вью управления происходят в этом ns)
      spec:
        body: # Все информационные поля
          titleZh: 更新显示名称 # Встроенное поле для отображения названия на китайском (создаётся для китайского языка)
          title: english_display_name # Встроенное поле для отображения названия на английском (создаётся для английского языка) Встроенные дашборды могут иметь двуязычный перевод.
          templating: # Пользовательские переменные
            list:
              - hide: 0 # 0 — не скрывать; 1 — скрывать только метку; 2 — скрывать метку и значение
                label: 集群 # Отображаемое имя встроенной переменной (метка задаётся в зависимости от языка, например, cluster для английского)
                name: cluster # Имя встроенной переменной (уникальное)
                options: # Определение опций выпадающего списка; если запрос возвращает данные, используются они, иначе — options. Можно задать значение по умолчанию (обычно для установки дефолтных значений)
                  - selected: false # Выбрано по умолчанию или нет
                    text: global
                    value: global
                type: custom # Тип переменной: custom (встроенная) или query (поддерживаются только эти типы; импорт Grafana поддерживает constant custom interval (после импорта преобразуется в custom переменную и не поддерживает авто))
              - allValue: '' # Выбрать все, передавая опции в формате xxx|xxx|xxx; можно задать allValue для преобразования (Grafana получает все данные текущей переменной как xxx|xxx|xxx, корректировки обеспечивают согласованность)
                current: null # Текущее значение переменной; если не задано, по умолчанию первое в списке
                definition: query_result(kube_namespace_labels) # Выражение запроса для получения данных
                hide: 0 # 0 — не скрывать; 1 — скрывать только метку; 2 — скрывать метку и значение
                includeAll: true # Включить выбор всех
                label: ns # Отображаемое имя переменной
                multi: true # Разрешить множественный выбор
                name: ns # Имя переменной (уникальное)
                options: []
                query: ''
                regex: /.*namespace=\"(.*?)\".*/ # Регулярное выражение для извлечения значений переменной
                sort: 2 # Сортировка: 1 — по алфавиту по возрастанию; 2 — по алфавиту по убыванию (поддерживаются только эти два); 3 — по числу по возрастанию; 4 — по числу по убыванию
                type: query # Тип переменной
          time: # Время дашборда
            from: now-30m # Время начала
            to: now # Время окончания
          repeat: '' # Конфигурация повторения строк; выбирается пользовательская переменная
          collapsed: 'false' # Конфигурация свёрнутости/развёрнутости строк
          description: '123' # Описание (всплывающая подсказка после заголовка)
          targets: # Источники данных
            - indicator: cluster.node.ready # Метрика
              expr: sum (cpaas_pod_number{cluster=\"\"}>0) # Выражение PromQL
              instant: false # Режим запроса: true — мгновенное значение
              legendFormat: '' # Легенда
              range: true # По умолчанию запрос диапазона при получении данных
              refId: 指标1 # Уникальный идентификатор для отображаемого имени источника данных
          gridPos: # Позиционная компоновка дашборда
            h: 8 # Высота
            w: 12 # Ширина (ширина соответствует 24 сеточным единицам)
            x: 0 # Горизонтальная позиция
            y: 0 # Вертикальная позиция
          panels: # Данные панелей
            title: 图表标题tab # Название панели
            type: table # Тип панели; поддерживаются timeseries, barchart, stat, gauge, table, bargauge, row, text, pie (step chart, scatter plot, bar chart настраиваются через атрибут drawStyle)
            id: a2239830-492f-4d27-98f3-cb7ecb77c56f # Уникальный идентификатор
            links: # Ссылки
              - targetBlank: true # Открывать в новой вкладке
                title: '1' # Имя
                url: '1' # URL
            transformations: # Трансформации данных
              - id: 'organize' # Тип organize; используется для сортировки, перестановки порядка, отображения полей, видимости
                options:
                  excludeByName: # Скрытые поля
                    cluster_cpu_utilization: true
                  indexByName: # Сортировка
                    cluster_cpu_utilization: 0,
                    Time: 1
                  renameByName: # Переименование
                    Time: ''
                    cluster_cpu_utilization: '222'
              - id: 'merge' # Объединение данных
                options:
            fieldConfig: # Определение свойств и внешнего вида панели
              defaults: # Конфигурация по умолчанию
                custom: # Пользовательские графические атрибуты
                  align: 'left' # Выравнивание таблицы: left, center, right
                  cellOptions: # Конфигурация порогов таблицы
                    type: color-text # Поддерживается только текст для цветовой настройки порогов
                  spanNulls: false # true — соединять null значения; false — не соединять; число == 0 — соединять null значения как 0
                  drawStyle: line # Типы панелей: line, bars для столбчатых, points для точечных
                  fillOpacity: 20 # Существует при drawStyle area (пока не поддерживается настройка, area по умолчанию 20)
                  thresholdsStyle: # Настройка отображения порогов (пока поддерживается только линия)
                    mode: line # Формат отображения порогов (area пока не поддерживается)
                  lineInterpolation: 'stepBefore' # Настройка step chart; по умолчанию поддерживается только stepBefore (stepAfter будет добавлен позже)
                decimals: 3 # Количество десятичных знаков
                min: 0 # Минимальное значение (пока не поддерживается в конфигурации страницы, только в адаптированных импортированных)
                max: 1 # Максимальное значение (конфигурация страницы применяется только к stat, gauge, barGauge, pie)
                unit: '%' # Единица измерения
                mappings: # Конфигурация сопоставления значений (поддерживаются только типы value и range; специальные типы поддерживаются в данных)
                  - options: # Правила сопоставления значений
                      '1': # Соответствующее значение
                        index: 0
                        text: 'Running' # Отображается как Running при значении 1
                    type: value # Тип сопоставления — значение
                  - options: # Правила сопоставления диапазона
                      from: 2 # Начало диапазона
                      to: 3 # Конец диапазона
                      result: # Результат сопоставления
                        index: 1
                        text: 'Error' # Значения от 2 до 3 отображаются как Error
                    type: range # Тип сопоставления — диапазон
                  - type: special # Тип сопоставления — специальные случаи
                    options:
                      match: null # nan null null+nan empty true false
                      result:
                        text: xxx
                        index: 2
                thresholds: # Конфигурация порогов
                  mode: absolute # Режим порогов, абсолютные значения (пока поддерживаются только абсолютные и процентные; процентные пока не поддерживаются)
                  steps: # Шаги порогов
                    - color: '#a7772f' # Цвет порога
                      value: '2' # Значение порога
                    - color: '#007AF5' # Значение по умолчанию без значения — базовое
              overrides: # Конфигурация переопределений
                - matcher:
                    id: byName # Сопоставление по имени поля
                    options: node # Соответствующее имя
                  properties: # Конфигурация переопределений; id поддерживает displayName и unit
                    - id: displayName # Переопределение отображаемого имени
                      value: '1' # Переопределённое имя
                    - id: unit # Переопределение единицы
                      value: GB/s # Значение единицы
                    - id: noValue # Отображение при отсутствии значения
                      value: No value display
            options:
              orientation: horizontal # Управление направлением компоновки панелей; применяется к gauge и barGauge (stat будет поддерживаться позже)
              legend: # Конфигурация легенды
                calcs: # Методы вычисления (отображаются только при расположении легенды справа)
                  - latest # Пока поддерживается только последнее значение
                placement: right # Положение легенды (right или bottom; по умолчанию bottom)
                placementRightTop: '' # Конфигурация верхнего правого угла
                showLegend: true # Отображать легенду или нет
              tooltip: # Всплывающие подсказки
                mode: multi # Режим мультивыбора (поддерживается только multi); отображаются все данные при наведении мыши
                sort: asc # Сортировка: asc или desc
              reduceOptions: # Метод вычисления значения (для агрегации данных)
                calcs: # Методы вычисления (latest, minimum, maximum, average, sum)
                  - latest
                limit: 3 # Ограничение количества секторов в pie chart
              textMode: 'value' # Конфигурация stat; определяет стиль отображения значения метрики; варианты: auto, value, value_and_name, name, none (пока не поддерживается в конфигурации страницы, но поддерживается при импорте)
              colorMode: 'value' # Конфигурация stat; определяет режим цвета для отображения значений метрик; варианты: none, value, background (по умолчанию value; не поддерживается в конфигурации, но адаптируется при импорте)
              displayLabels: ['name', 'value', 'percent'] # Поля, отображаемые в метках pie chart
              pieType: 'pie' # Тип pie chart; варианты: pie и donut
              mode: 'html' # Режим text chart; варианты: html и richText
              content: '<div>xxx</div>' # Содержимое text chart
              footer:
                enablePagination: true # Включение пагинации в таблице

    Общие функции и переменные

    Общие функции

    При определении настроек запроса, помимо использования PromQL, платформа предоставляет следующие общие функции для удобства настройки:

    ФункцияНазначение
    label_names()Возвращает все метки в Prometheus, например, label_names().
    label_values(label)Возвращает все доступные значения для имени метки во всех мониторимых метриках Prometheus, например, label_values(job).
    label_values(metric, label)Возвращает все доступные значения для имени метки в указанной метрике Prometheus, например, label_values(up, job).
    metrics(metric)Возвращает все имена метрик, удовлетворяющих заданному регулярному выражению, например, metrics(cpaas_active).
    query_result(query)Возвращает результат запроса для указанного Prometheus запроса, например, query_result(up).

    Общие переменные

    При определении настроек запроса можно комбинировать общие функции в переменные для быстрого создания пользовательских переменных. Ниже приведены распространённые определения переменных для справки:

    Имя переменнойФункция запросаРегулярное выражение
    clusterlabel_values(cpaas_cluster_info,cluster)-
    nodelabel_values(node_load1, instance)/(.*?):.*/
    namespacequery_result(kube_namespace_labels)/.*namespace=\"(.*?)\".*/
    deploymentlabel_values(kube_deployment_spec_replicas{namespace="$namespace"}, deployment)-
    daemonsetlabel_values(kube_daemonset_status_number_ready{namespace="$namespace"}, daemonset)-
    statefulsetlabel_values(kube_statefulset_replicas{namespace="$namespace"}, statefulset)-
    podlabel_values(kube_pod_info{namespace=~"$namespace"}, pod)-
    vmclusterlabel_values(up, vmcluster)-
    daemonsetlabel_values(kube_daemonset_status_number_ready{namespace="$namespace"}, daemonset)-

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

    Использование функции query_result(query) для запроса значения: node_load5 и извлечения IP.

    1. В Query Settings заполните query_result(node_load5).

    2. В области Variable Value Preview пример превью: node_load5{container="node-exporter",endpoint="metrics",host_ip="192.168.178.182",instance="192.168.178.182:9100"}.

    3. В Regular Expression заполните /.*instance="(.*?):.*/ для фильтрации значения.

    4. В области Variable Value Preview пример превью: 192.168.176.163.

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

    1. Добавьте первую переменную: namespace, используя функцию query_result(query) для запроса значения: kube_namespace_labels и извлечения namespace.

      • Query Settings: query_result(kube_namespace_labels).
      • Variable Value Preview: kube_namespace_labels{container="exporter-kube-state", endpoint="kube-state-metrics", instance="12.3.188.121:8080", job="kube-state", label_cpaas_io_project="cpaas-system", namespace="cert-manager", pod="kube-prometheus-exporter-kube-state-55bb6bc67f-lpgtx", project="cpaas-system", service="kube-prometheus-exporter-kube-state"}.
      • Regular Expression: /.+namespace=\"(.*?)\".*/.
      • В области Variable Value Preview пример превью включает несколько namespace, таких как argocd, cpaas-system и другие.
    2. Добавьте вторую переменную: deployment, ссылаясь на ранее созданную переменную:

      • Query Settings: kube_deployment_spec_replicas{namespace=~"$namespace"}.
      • Regular Expression: /.+deployment="(.*?)",.*/.
    3. Добавьте панель в текущий дашборд и используйте ранее добавленные переменные, например:

      • Имя метрики: pod Memory Usage under Compute Components.
      • Пара ключ-значение: kind: Deployment, name: $deployment, namespace: $namespace.
    4. После добавления и сохранения панелей вы можете просмотреть соответствующую информацию на главной странице дашборда.

    Примечания при использовании встроенных метрик

    WARNING

    Следующие метрики используют пользовательские переменные namespace, name и kind, которые не поддерживают множественный выбор или выбор всех.

    • namespace поддерживает выбор только одного конкретного namespace;
    • name поддерживает только три типа вычислительных компонентов: deployment, daemonset, statefulset;
    • kind поддерживает указание только одного из типов: Deployment, DaemonSet, StatefulSet.
    • workload.cpu.utilization

    • workload.memory.utilization

    • workload.network.receive.bytes.rate

    • workload.network.transmit.bytes.rate

    • workload.gpu.utilization

    • workload.gpu.memory.utilization

    • workload.vgpu.utilization

    • workload.vgpu.memory.utilization