Управление панелями мониторинга

Содержание

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

Платформа предоставляет мощный функционал управления панелями мониторинга, предназначенный для замены традиционных инструментов 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.

    ПараметрОписание
    TypeВ настоящее время поддерживаются только переменные типа Query, которые позволяют фильтровать данные по признакам временных рядов. Выражение запроса может быть задано для динамического вычисления и генерации результатов запроса.
    Display FilterЗначение по умолчанию для отображения выпадающего фильтра на главной странице панели; поддерживается отображение имени и значения, только значения или скрытие фильтра (без отображения).
    Query SettingsИспользование переменных типа Query позволяет фильтровать данные по признакам временных рядов. При определении настроек запроса, помимо использования PromQL для запроса временных рядов, платформа также предоставляет некоторые общие переменные и функции. Смотрите раздел Common Functions and Variables.
    Regular ExpressionС помощью регулярных выражений можно отфильтровать нужные значения из содержимого, возвращаемого запросами переменных. Это делает каждое имя опции в переменной более ожидаемым. Вы можете предварительно просмотреть, соответствуют ли отфильтрованные значения ожиданиям, в Variable Value Preview.
    Selection Settings- Multiple Selection: При выборе из верхних фильтров на главной странице панели позволяет выбирать несколько опций одновременно. Для просмотра данных, соответствующих значению переменной, необходимо ссылаться на эту переменную в выражении запроса панелей.
    - All: Если отмечено, в опциях фильтра появится вариант All для выбора всех данных переменной.
  2. Нажмите 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. После добавления панелей можно выполнить следующие операции для обеспечения соответствия отображения и размера панелей вашим ожиданиям.

    • Щёлкните правый нижний угол панели для настройки её размера.
    • Щёлкните в любом месте панели для изменения порядка панелей.
  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Можно выбрать между линейным графиком или графиком с заполненной областью; линейные графики больше отражают тенденции изменений индикаторов, а графики с заполненной областью акцентируют внимание на изменениях общей и частичной доли. Выбирайте в зависимости от ваших потребностей.
Gauge ChartGauge Chart Settings
Display Direction: При необходимости просмотра нескольких метрик в одной диаграмме можно настроить их расположение по горизонтали или вертикали.
Unit Redefinition: Можно задать независимые единицы измерения для каждой метрики; если не задано, платформа использует единицы из Standard Settings.
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: panel标题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' # Настройка ступенчатого графика; по умолчанию поддерживается только 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 # Ограничение количества секторов в круговой диаграмме
            textMode: 'value' # Конфигурация stat; определяет стиль отображения значения метрики; опции: auto, value, value_and_name, name, none (в настоящее время не поддерживается в конфигурации страницы, но поддерживается при импорте)
            colorMode: 'value' # Конфигурация stat; определяет режим цвета для отображения значений метрик; опции: none, value, background (по умолчанию value; не поддерживается в конфигурации, но адаптировано при импорте)
            displayLabels: ['name', 'value', 'percent'] # Поля, отображаемые в подписях круговой диаграммы
            pieType: 'pie' # Тип круговой диаграммы; опции: pie и donut
            mode: 'html' # Режим текстовой диаграммы; опции: html и richText
            content: '<div>xxx</div>' # Содержимое текстовой диаграммы
            footer:
              enablePagination: true # Включение пагинации таблицы

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

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

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

ФункцияНазначение
label_names()Возвращает все метки в Prometheus, например, label_names().
label_values(label)Возвращает все доступные значения для имени метки во всех метриках Prometheus, например, label_values(job).
label_values(metric, label)Возвращает все доступные значения для имени метки в указанной метрике, например, 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