监控面板管理
目录
功能概述
平台提供强大的面板管理功能,旨在替代传统的 Grafana 工具,为用户带来更全面灵活的监控体验。该功能汇聚平台内的各类监控数据,呈现统一的监控视图,显著提升您的配置效率。
主要功能
- 支持为业务视图和平台视图配置自定义监控面板。
- 支持在业务视图中查看平台视图中公开共享的面板,数据基于业务所属命名空间进行隔离。
- 支持管理面板内的 panels,允许用户添加、删除、修改 panels,支持 panels 放大/缩小及拖拽移动。
- 允许在面板中设置自定义变量,用于过滤查询数据。
- 支持在面板中配置分组,用于管理 panels。分组可基于自定义变量重复展示。
- 支持的 panel 类型包括:趋势图、阶梯折线图、柱状图、水平柱状图、柱状仪表图、仪表图、表格、统计图、XY 图、饼图、文本。
- 支持一键导入 Grafana 面板。
优势
- 支持用户自定义监控场景,不受预设模板限制,真正实现个性化监控体验。
- 提供丰富的可视化选项,包括折线图、柱状图、饼图,以及灵活的布局和样式配置。
- 与平台角色权限无缝集成,业务视图可定义自身监控面板,同时确保数据隔离。
- 深度集成容器平台各项功能,支持即时访问容器、网络、存储等监控数据,为用户提供全面的性能观察和故障诊断。
- 完全兼容 Grafana 面板 JSON,方便从 Grafana 迁移并继续使用。
使用场景
- IT 运维管理:作为 IT 运维团队成员,您可以使用监控面板统一展示和管理容器平台的各类性能指标,如 CPU、内存、网络流量等。通过自定义监控报表和告警规则,及时发现并定位系统问题,提高运维效率。
- 应用性能分析:对于应用开发和测试人员,监控面板提供多样化的可视化选项,直观展示应用运行状态和资源消耗。您可以定制针对不同应用场景的专用监控视图,深入分析应用性能瓶颈,提供优化依据。
- 多集群管理:对于管理多个容器集群的用户,监控面板可汇聚不同集群的监控数据,帮助您一目了然掌握系统整体运行状况。
- 故障诊断:当系统出现问题时,监控面板为您提供全面的性能数据和分析工具,快速定位问题根因。您可以根据告警信息迅速查看相关监控指标的波动,进行深入故障分析。
前置条件
目前监控面板仅支持查看平台内监控组件采集的监控数据。因此,在配置监控面板前,请做好以下准备:
- 确保您要配置监控面板的集群已安装监控组件,具体为 ACP Monitor with Prometheus 或 ACP Monitor with VictoriaMetrics 插件。
- 确保您希望在面板中展示的数据已被监控组件采集。
监控面板与监控组件的关系
- 监控面板资源存储于 Kubernetes 集群中,您可通过顶部的 Cluster 标签页切换不同集群视图。
- 监控面板依赖集群内的监控组件查询数据源,因此使用前请确保当前集群已成功安装监控组件且运行正常。
- 监控面板默认请求对应集群的监控数据。如果您在集群中以代理模式安装了 VictoriaMetrics 插件,平台会为您请求存储集群查询该集群对应的数据,无需额外配置。
管理监控面板
面板是由一个或多个 panel 组成的集合,按一行或多行组织排列,提供清晰的相关信息视图。这些 panel 可从数据源查询原始数据,并转换为平台支持的一系列可视化效果。
创建监控面板
- 点击 创建面板,参考以下说明配置相关参数。
- 添加完成后,点击 创建 完成面板创建。接下来,您需要 添加变量、添加 panels 和 添加分组,完成整体布局设计。
导入面板
平台支持直接导入 Grafana JSON,将其转换为监控面板进行展示。
- 目前仅支持 Grafana JSON V8+ 版本,低版本将禁止导入。
- 导入的面板中若存在平台不支持的 panel 类型,可能显示为 不支持的 panel 类型,但您可修改面板设置实现正常展示。
- 导入后,您可像使用平台创建的 panels 一样进行管理操作,无差异。
添加变量
-
在变量表单区域,点击 添加。
-
点击 确定 添加一个或多个变量。
添加 panels
提示:您可点击 panel 右下角自定义大小;点击 panel 任意位置可调整 panels 顺序。
- 点击 添加 panel,参考以下说明配置相关参数。
-
panel 预览:区域动态展示所添加指标对应的数据情况。
-
添加指标:配置 panel 标题和监控指标。
-
添加方式:支持使用内置指标或使用原生自定义指标,两者取并集同时生效。
- 内置指标:选择平台内置的常用指标和图例参数,展示当前 panel 下的数据情况。
- 注意:添加到 panel 的所有指标必须单位统一,不能在一个 panel 中添加多单位指标。
- 原生:自定义指标单位、指标表达式和图例参数。指标表达式遵循 PromQL 语法,详情请参考 PromQL 官方文档。
- 内置指标:选择平台内置的常用指标和图例参数,展示当前 panel 下的数据情况。
-
图例参数:控制 panel 中曲线对应的名称,可使用文本或模板:
- 规则:输入值必须为
{{.xxxx}}格式,如{{.hostname}}将替换为表达式返回的 hostname 标签对应值。 - 提示:若输入格式错误,panel 中曲线对应名称将按原格式显示。
- 规则:输入值必须为
-
即时开关:开启时通过 Prometheus Query 接口查询即时值并排序,适用于统计图和仪表图;关闭时使用
query_range方式计算,查询特定时间段内的一系列数据。 -
panel 设置:支持选择不同 panel 类型展示指标数据。详情请参考 管理 panels。
-
点击 保存 完成添加 panels。
-
您可在面板内添加一个或多个 panels。
-
添加完成后,您可通过以下操作确保 panels 显示和大小符合预期:
- 点击 panel 右下角自定义大小。
- 点击 panel 任意位置调整 panels 顺序。
-
调整完成后,点击面板页面的 保存 按钮保存修改。
添加分组
分组是面板内的逻辑划分,可将 panels 归类管理。
- 点击 添加 panel 下拉菜单 > 添加分组,参考以下说明配置相关参数。
- 分组:分组名称。
- 重复:支持禁用重复或选择当前 panels 的变量。
- 禁用重复:不选择变量,使用默认创建的分组。
- 参数变量:选择当前 panels 创建的变量,监控面板将为变量的每个对应值生成一行相同的子分组。子分组不支持修改、删除或移动 panels。
-
添加分组后,您可对分组执行以下操作以管理面板显示:
- 分组可折叠或展开,隐藏面板部分内容。折叠的分组内 panels 不会发送查询。
- 将 panel 移入分组,使该 panel 由该分组管理。分组管理其与下一个分组之间的所有 panels。
- 分组折叠时,也可整体移动该分组管理的所有 panels。
- 分组折叠与展开也属于面板调整,若希望下次打开面板时保持该状态,请点击 保存。
切换面板
将已创建的自定义监控面板设为主面板,重新进入监控面板功能时默认展示主面板数据。
-
在左侧导航栏点击 运营中心 > 监控 > 监控面板。
-
默认进入主监控面板,点击 切换面板。
-
可通过标签筛选或名称搜索查找面板,通过 主面板 开关切换主面板。
其他操作
您可点击面板页面右侧操作按钮,根据需要对面板执行操作。
管理 panels
平台提供多种可视化方式,支持不同使用场景。本章主要介绍这些 panel 类型、配置选项及使用方法。
panel 说明
panel 配置说明
通用参数
panel 特殊参数
通过 CLI 创建监控面板
-
新建名为
example-dashboard.yaml的 YAML 配置文件。 -
在 YAML 文件中添加 MonitorDashboard 资源并提交。以下示例创建名为 demo-v2-dashboard1 的监控面板:
常用函数和变量
常用函数
定义查询设置时,除使用 PromQL 设置查询外,平台还提供以下常用函数供您自定义查询设置参考。
常用变量
定义查询设置时,您可将常用函数组合成变量,快速定义自定义变量。以下为部分常用变量定义,供您参考:
变量使用示例一
使用 query_result(query) 函数查询值:node_load5,并提取 IP。
-
在 查询设置 中填写
query_result(node_load5)。 -
在 变量值预览 区域,预览示例为
node_load5{container="node-exporter",endpoint="metrics",host_ip="192.168.178.182",instance="192.168.178.182:9100"}。 -
在 正则表达式 中填写
/.*instance="(.*?):.*/过滤值。 -
在 变量值预览 区域,预览示例为
192.168.176.163。
变量使用示例二
-
添加第一个变量:namespace,使用 query_result(query) 函数查询值:
kube_namespace_labels,并提取 namespace。- 查询设置:
query_result(kube_namespace_labels)。 - 变量值预览:
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"}。 - 正则表达式:
/.+namespace=\"(.*?)\".*/。 - 在 变量值预览 区域,预览示例包含多个 namespace,如
argocd、cpaas-system等。
- 查询设置:
-
添加第二个变量:deployment,引用之前创建的变量:
- 查询设置:
kube_deployment_spec_replicas{namespace=~"$namespace"}。 - 正则表达式:
/.+deployment="(.*?)",.*/。
- 查询设置:
-
在当前面板添加 panel,引用之前添加的变量,例如:
- 指标名称:计算组件下 Pod 内存使用。
- 键值对:
kind:Deployment,name:$deployment,namespace:$namespace。
-
添加 panels 并保存后,您可在面板首页查看对应 panel 信息。
使用内置指标注意事项
以下指标使用自定义变量 namespace、name 和 kind,不支持 多选 和选择 全部。
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