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