Управление панелями мониторинга
Содержание
Обзор функции
Платформа предоставляет мощный функционал управления панелями мониторинга, предназначенный для замены традиционных инструментов 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, руководствуясь следующими инструкциями для настройки соответствующих параметров.
- После добавления нажмите Create для завершения создания панели. Далее необходимо добавить переменные, добавить панели и добавить группы для завершения общей компоновки.
Импорт панели мониторинга
Платформа поддерживает прямой импорт JSON из Grafana для преобразования его в панель мониторинга для отображения.
- В настоящее время поддерживается только Grafana JSON версии V8+; более низкие версии запрещены к импорту.
- Если какие-либо панели в импортированной панели не входят в поддерживаемый платформой диапазон, они могут отображаться как unsupported panel types, но вы можете изменить настройки панели для нормального отображения.
- После импорта панели вы можете выполнять любые операции управления, как обычно, без отличий от панелей, созданных в платформе.
Добавление переменных
-
В области формы переменных нажмите Add.
-
Нажмите OK для добавления одной или нескольких переменных.
Добавление панелей
Совет: Вы можете настроить размер панели, щёлкнув по правому нижнему углу; щёлкните в любом месте панели, чтобы изменить порядок панелей.
- Нажмите Add Panel, руководствуясь следующими инструкциями для настройки соответствующих параметров.
-
Panel Preview: Область динамически отображает данные, соответствующие добавленным метрикам.
-
Add Metric: Настройте заголовок панели и метрики мониторинга в этой области.
-
Способ добавления: Поддерживается использование встроенных метрик или собственных пользовательских метрик. Оба способа объединяются и действуют одновременно.
- Built-in Metrics: Выберите часто используемые метрики и параметры легенды, встроенные в платформу, для отображения данных в текущей панели.
- Примечание: Все метрики, добавленные в панель, должны иметь единый измерительный блок; нельзя добавлять метрики с разными единицами измерения в одну панель.
- Native: Настройте единицу измерения метрики, выражение метрики и параметры легенды. Выражение метрики следует синтаксису PromQL; подробности смотрите в PromQL Official Documentation.
- Built-in Metrics: Выберите часто используемые метрики и параметры легенды, встроенные в платформу, для отображения данных в текущей панели.
-
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.
Другие операции
Вы можете нажать кнопку операций справа на странице панели для выполнения нужных действий с панелью.
Управление панелями
Платформа предоставляет различные методы визуализации для поддержки разных сценариев использования. В этой главе будут представлены типы панелей, параметры настройки и методы использования.
Описание панелей
Описание настройки панелей
Общие параметры
Специальные параметры для панелей
Создание панелей мониторинга через CLI
-
Создайте новый YAML-файл конфигурации с именем
example-dashboard.yaml. -
Добавьте ресурс MonitorDashboard в YAML-файл и отправьте его. Следующий пример создаёт панель мониторинга с именем demo-v2-dashboard1:
Общие функции и переменные
Общие функции
При определении настроек запроса, помимо использования PromQL, платформа предоставляет некоторые общие функции для удобства настройки:
Общие переменные
При определении настроек запроса вы можете комбинировать общие функции в переменные для быстрого определения пользовательских переменных. Ниже приведены некоторые распространённые определения переменных для справки:
Пример использования переменной №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и другие.
- Query Settings:
-
Добавьте вторую переменную: deployment, ссылаясь на ранее созданную переменную:
- Query Settings:
kube_deployment_spec_replicas{namespace=~"$namespace"}. - Regular Expression:
/.+deployment="(.*?)",.*/.
- Query Settings:
-
Добавьте панель в текущую панель мониторинга и ссылайтесь на ранее добавленные переменные, например:
- Имя метрики: pod Memory Usage under Compute Components.
- Пара ключ-значение:
kind:Deployment,name:$deployment,namespace:$namespace.
-
После добавления и сохранения панелей вы можете просмотреть соответствующую информацию панели на главной странице панели мониторинга.
Примечания при использовании встроенных метрик
Следующие метрики используют пользовательские переменные 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