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