Управление панелями мониторинга
Содержание
Обзор функции
Платформа предоставляет мощный функционал управления панелями мониторинга, предназначенный для замены традиционных инструментов 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 в кластере, мы автоматически запросим кластер хранения для получения соответствующих данных без необходимости специальной настройки.
Управление панелями мониторинга
Панель мониторинга — это коллекция, состоящая из одной или нескольких панелей, организованных и расположенных в одной или нескольких строках для предоставления ясного обзора релевантной информации. Эти панели могут запрашивать исходные данные из источников данных и преобразовывать их в ряд визуальных эффектов, поддерживаемых платформой.
Создание панели мониторинга
- Нажмите Create Dashboard, руководствуясь следующими инструкциями для настройки соответствующих параметров.
Параметр | Описание |
---|
Folder | Папка, в которой находится панель мониторинга; можно ввести или выбрать существующую папку. |
Label | Метка панели мониторинга; позволяет быстро находить существующие панели по фильтру меток при переключении. |
Set as Main Dashboard | Если включено, текущая панель будет установлена как основная после успешного создания; при повторном входе в функцию панели мониторинга по умолчанию будет отображаться основная панель. |
Variables | Добавьте переменные при создании панели для использования в качестве параметров метрик в добавленных панелях, которые также могут использоваться как фильтры на главной странице панели мониторинга. |
- После добавления нажмите Create для завершения создания панели. Далее необходимо добавить переменные, добавить панели и добавить группы для завершения общей компоновки.
Импорт панели мониторинга
Платформа поддерживает прямой импорт JSON из Grafana для преобразования его в панель мониторинга для отображения.
- В настоящее время поддерживается только Grafana JSON версии V8+; более низкие версии запрещены к импорту.
- Если какие-либо панели в импортированной панели не входят в поддерживаемый платформой диапазон, они могут отображаться как unsupported panel types, но вы можете изменить настройки панели для нормального отображения.
- После импорта панели вы можете выполнять любые операции управления, как обычно, без отличий от панелей, созданных в платформе.
Добавление переменных
-
В области формы переменных нажмите Add.
Параметр | Описание |
---|
Type | В настоящее время поддерживаются только переменные типа Query, которые позволяют фильтровать данные по признакам временных рядов. Выражение запроса может быть задано для динамического вычисления и генерации результатов запроса. |
Display Filter | Значение по умолчанию для отображения выпадающего фильтра на главной странице панели; поддерживается отображение имени и значения, только значения или скрытие фильтра (без отображения). |
Query Settings | Использование переменных типа Query позволяет фильтровать данные по признакам временных рядов. При определении настроек запроса, помимо использования PromQL для запроса временных рядов, платформа также предоставляет некоторые общие переменные и функции. Смотрите раздел Common Functions and Variables. |
Regular Expression | С помощью регулярных выражений можно отфильтровать нужные значения из содержимого, возвращаемого запросами переменных. Это делает каждое имя опции в переменной более ожидаемым. Вы можете предварительно просмотреть, соответствуют ли отфильтрованные значения ожиданиям, в Variable Value Preview. |
Selection Settings | - Multiple Selection: При выборе из верхних фильтров на главной странице панели позволяет выбирать несколько опций одновременно. Для просмотра данных, соответствующих значению переменной, необходимо ссылаться на эту переменную в выражении запроса панелей. - All: Если отмечено, в опциях фильтра появится вариант All для выбора всех данных переменной. |
-
Нажмите OK для добавления одной или нескольких переменных.
Добавление панелей
Совет: Вы можете настроить размер панели, щёлкнув по правому нижнему углу; щёлкните в любом месте панели, чтобы изменить порядок панелей.
- Нажмите 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.
-
Нажмите Save для завершения добавления панелей.
-
В панели мониторинга можно добавить одну или несколько панелей.
-
После добавления панелей можно выполнить следующие операции для обеспечения соответствия отображения и размера панелей вашим ожиданиям.
- Щёлкните правый нижний угол панели для настройки её размера.
- Щёлкните в любом месте панели для изменения порядка панелей.
-
После настройки нажмите кнопку Save на странице панели мониторинга для сохранения изменений.
Добавление групп
Группы — это логические разделители внутри панели мониторинга, которые могут группировать панели вместе.
- Нажмите выпадающее меню Add Panel > Add Group и настройте параметры согласно следующим инструкциям.
- Group: Название группы.
- Repeat: Поддерживает отключение повторов или выбор переменных для текущих панелей.
- Disable Repeat: Не выбирать переменную, использовать созданную по умолчанию группу.
- Parameter Variables: Выберите переменные, созданные в текущих панелях, и панель мониторинга сгенерирует строку идентичных подгрупп для каждого соответствующего значения переменной. Подгруппы не поддерживают изменение, удаление или перемещение панелей.
- После добавления группы можно выполнять следующие операции для управления отображением панелей внутри панели мониторинга.
- Группы можно сворачивать или разворачивать для скрытия части содержимого панели. Панели внутри свернутых групп не отправляют запросы.
- Перемещайте панели в группу, чтобы позволить группе управлять этими панелями. Группа управляет всеми панелями между ней и следующей группой.
- При сворачивании группы можно также перемещать все панели, управляемые этой группой, вместе.
- Сворачивание и разворачивание групп также считается изменением панели. Чтобы сохранить это состояние при следующем открытии панели, нажмите кнопку Save.
Переключение панелей мониторинга
Установите созданную пользовательскую панель мониторинга в качестве основной. При повторном входе в функцию панели мониторинга по умолчанию будет отображаться основная панель.
-
В левой навигационной панели нажмите Operations Center > Monitoring > Monitoring Dashboards.
-
По умолчанию открывается основная панель мониторинга. Нажмите Switch Dashboard.
-
Можно найти панели, фильтруя по меткам или выполняя поиск по имени, и переключать основную панель с помощью переключателя Main Dashboard.
Другие операции
Вы можете нажать кнопку операций справа на странице панели для выполнения нужных действий с панелью.
Операция | Описание |
---|
YMAL | Открывает фактический код ресурса CR панели, хранящийся в Kubernetes кластере. Вы можете изменить всё содержимое панели, редактируя параметры в YAML. |
Export Expression | Позволяет экспортировать метрики и соответствующие выражения запросов, используемые в текущей панели, в формате CSV. |
Copy | Копирует текущую панель; вы можете редактировать панели по необходимости и сохранить как новую панель. |
Settings | Изменяет основную информацию текущей панели, например, смену меток и добавление дополнительных переменных. |
Delete | Удаляет текущую панель мониторинга. |
Управление панелями
Платформа предоставляет различные методы визуализации для поддержки разных сценариев использования. В этой главе будут представлены типы панелей, параметры настройки и методы использования.
Описание панелей
№ | Название панели | Описание | Рекомендуемые сценарии использования |
---|
1 | Trend Chart | Отображает тенденцию данных во времени с помощью одной или нескольких линий. | Показывает тенденции во времени, например, изменения использования CPU, памяти и т.д. |
2 | Step Line Chart | Построен на основе линейного графика, соединяя точки горизонтальными и вертикальными сегментами, образуя ступенчатую структуру. | Подходит для отображения временных меток дискретных событий, например, количества оповещений. |
3 | Bar Chart | Использует вертикальные прямоугольные столбцы для представления величины данных, высота столбцов соответствует значению. | Столбчатые диаграммы интуитивно понятны для сравнения значений, полезны для выявления закономерностей и аномалий, подходят для сценариев, ориентированных на изменение значений, например, количество подов, количество нод и т.д. |
4 | Horizontal Bar Chart | Аналогичен столбчатой диаграмме, но использует горизонтальные прямоугольные столбцы для представления данных. | При большом количестве измерений данных горизонтальные столбчатые диаграммы лучше используют пространство и повышают читаемость. |
5 | Gauge Chart | Использует полукруглые или кольцевые формы для отображения текущего значения индикатора и его доли от общего. | Интуитивно отражает текущее состояние ключевых показателей мониторинга, таких как использование CPU и памяти системы. Рекомендуется использовать пороги оповещений с изменением цвета для обозначения аномалий. |
6 | Gauge Bar Chart | Использует вертикальные прямоугольные столбцы для отображения текущего значения индикаторов и их доли. | Интуитивно отражает текущее состояние ключевых индикаторов, таких как прогресс выполнения цели и нагрузка системы. При наличии нескольких категорий одного индикатора рекомендуется использовать gauge bar chart, например, доступное место на диске. |
7 | Pie Chart | Использует сектора для отображения пропорционального соотношения частей к целому. | Подходит для демонстрации состава общих данных по разным измерениям, например, доли кодов ответов 4XX, 3XX и 2XX за период. |
8 | Table | Организует данные в формате строк и столбцов, облегчая просмотр и сравнение конкретных значений. | Подходит для отображения структурированных многомерных данных, таких как подробная информация о нодах, подробная информация о подах и т.д. |
9 | Stat Chart | Отображает текущее значение одного ключевого индикатора, обычно требует текстового пояснения. | Подходит для отображения в реальном времени значений важных показателей мониторинга, таких как количество подов, количество нод, текущее количество оповещений и т.д. |
10 | Scatter Plot | Использует декартовы координаты для построения серии точек данных, отражая корреляцию между двумя переменными. | Подходит для анализа взаимосвязей между двумя индикаторами, выявления закономерностей, таких как линейная корреляция и кластеризация по распределению точек, помогает обнаружить взаимосвязи между метриками. |
11 | Text 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 Chart | Graph Style | Можно выбрать между линейным графиком или графиком с заполненной областью; линейные графики больше отражают тенденции изменений индикаторов, а графики с заполненной областью акцентируют внимание на изменениях общей и частичной доли. Выбирайте в зависимости от ваших потребностей. |
Gauge Chart | Gauge Chart Settings | Display Direction: При необходимости просмотра нескольких метрик в одной диаграмме можно настроить их расположение по горизонтали или вертикали. Unit Redefinition: Можно задать независимые единицы измерения для каждой метрики; если не задано, платформа использует единицы из Standard Settings. |
Pie Chart | Pie Chart Settings | Maximum Number of Slices: Можно задать параметр для уменьшения количества секторов в круговой диаграмме, чтобы снизить влияние категорий с низкой долей, но большим количеством. Избыточные секторы объединяются и отображаются как Others. Label Display Fields: Можно настроить поля, отображаемые в подписях круговой диаграммы. |
Pie Chart | Graph Style | Можно выбрать отображение в виде pie или donut. |
Table | Table Settings | Hide Columns: Можно уменьшить количество столбцов в таблице, чтобы сосредоточиться на основных. Column Alignment: Можно изменить выравнивание данных в столбце. Display Name and Unit: Можно изменить названия столбцов и используемые единицы измерения. |
Text Card | Graph Style | Style: Можно редактировать содержимое текстовой карточки в редакторе с поддержкой форматирования rich-text или в HTML. |
Создание панелей мониторинга через CLI
-
Создайте новый YAML-файл конфигурации с именем example-dashboard.yaml
.
-
Добавьте ресурс 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). |
Общие переменные
При определении настроек запроса вы можете комбинировать общие функции в переменные для быстрого определения пользовательских переменных. Ниже приведены некоторые распространённые определения переменных для справки:
Имя переменной | Функция запроса | Регулярное выражение |
---|
cluster | label_values(cpaas_cluster_info,cluster) | - |
node | label_values(node_load1, instance) | /(.*?):.*/ |
namespace | query_result(kube_namespace_labels) | /.*namespace=\"(.*?)\".*/ |
deployment | label_values(kube_deployment_spec_replicas{namespace="$namespace"}, deployment) | - |
daemonset | label_values(kube_daemonset_status_number_ready{namespace="$namespace"}, daemonset) | - |
statefulset | label_values(kube_statefulset_replicas{namespace="$namespace"}, statefulset) | - |
pod | label_values(kube_pod_info{namespace=~"$namespace"}, pod) | - |
vmcluster | label_values(up, vmcluster) | - |
daemonset | label_values(kube_daemonset_status_number_ready{namespace="$namespace"}, daemonset) | - |
Пример использования переменной №1
Использование функции query_result(query) для запроса значения: node_load5
и извлечения IP.
-
В Query Settings заполните query_result(node_load5)
.
-
В области Variable Value Preview пример предварительного просмотра: node_load5{container="node-exporter",endpoint="metrics",host_ip="192.168.178.182",instance="192.168.178.182:9100"}
.
-
В Regular Expression заполните /.*instance="(.*?):.*/
для фильтрации значения.
-
В области Variable Value Preview пример предварительного просмотра: 192.168.176.163
.
Пример использования переменной №2
-
Добавьте первую переменную: 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
и другие.
-
Добавьте вторую переменную: deployment, ссылаясь на ранее созданную переменную:
- Query Settings:
kube_deployment_spec_replicas{namespace=~"$namespace"}
.
- Regular Expression:
/.+deployment="(.*?)",.*/
.
-
Добавьте панель в текущую панель мониторинга и ссылайтесь на ранее добавленные переменные, например:
- Имя метрики: pod Memory Usage under Compute Components.
- Пара ключ-значение:
kind
: Deployment
, name
: $deployment
, namespace
: $namespace
.
-
После добавления и сохранения панелей вы можете просмотреть соответствующую информацию панели на главной странице панели мониторинга.
Примечания при использовании встроенных метрик
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