平台提供强大的面板管理功能,旨在替代传统的 Grafana 工具,为用户带来更全面灵活的监控体验。该功能汇聚平台内的各类监控数据,呈现统一的监控视图,显著提升您的配置效率。
目前监控面板仅支持查看平台内监控组件采集的监控数据。因此,在配置监控面板前,请做好以下准备:
面板是由一个或多个 pannels 组成的集合,按一行或多行组织排列,提供清晰的相关信息视图。这些 pannels 可从数据源查询原始数据,并转换为平台支持的一系列可视化效果。
参数 | 说明 |
---|---|
文件夹 | 面板所在的文件夹,可输入或选择已有文件夹。 |
标签 | 监控面板的标签,可通过顶部标签筛选快速查找已有面板。 |
设为主面板 | 启用后,创建成功时将当前面板设为主面板;重新进入监控面板功能时,默认展示主面板数据。 |
变量 | 创建面板时添加变量,供新增 pannels 引用作为指标参数,也可作为面板首页的过滤器使用。 |
平台支持直接导入 Grafana JSON,将其转换为监控面板进行展示。
在变量表单区域,点击 添加。
参数 | 说明 |
---|---|
类型 | 目前仅支持 Query 类型变量,允许基于时序特征维度过滤数据。可指定查询表达式动态计算生成查询结果。 |
显示过滤器 | 面板首页下拉过滤器的默认显示值,支持显示名称和值、仅值或不显示(隐藏过滤框)。 |
查询设置 | Query 类型变量允许基于时序特征维度过滤数据。定义查询设置时,除使用 PromQL 查询时序外,平台还提供部分常用变量和函数。参考 常用函数和变量。 |
正则表达式 | 通过正则表达式过滤变量查询返回内容中的期望值,使变量中每个选项名称更符合预期。可在 变量值预览 中预览过滤结果。 |
选择设置 | - 多选:面板首页顶部过滤器选择时,允许同时选择多个选项。需在 pannels 查询表达式中引用该变量以查看对应数据。 - 全部:勾选后,过滤选项中启用包含 全部 的选项,可选择所有变量数据。 |
点击 确定 添加一个或多个变量。
向当前创建的监控面板添加多个 pannels,用于展示不同资源的数据。
提示:可点击 pannel 右下角自定义大小;点击 pannel 任意位置可调整 pannels 顺序。
pannel 预览:动态展示所添加指标对应的数据内容。
添加指标:配置 pannel 标题和监控指标。
添加方式:支持使用内置指标或原生自定义指标,两者取并集同时生效。
图例参数:控制 pannels 中曲线对应的名称。可使用文本或模板:
{{.xxxx}}
格式,例如 {{.hostname}}
会替换为表达式返回的 hostname 标签对应值。即时切换:开启 即时 开关时,通过 Prometheus Query 接口查询即时值并排序,适用于统计图和仪表图。关闭时使用 query_range
方法计算,查询指定时间段内的一系列数据。
pannel 设置:支持选择不同 pannel 类型可视化指标数据。详见 管理 pannels。
点击 保存 完成添加 pannels。
可在面板内添加一个或多个 pannels。
添加后,可通过以下操作确保 pannels 显示和大小符合预期:
调整完成后,点击面板页面的 保存 按钮保存修改。
分组是面板内的逻辑分隔符,可将 pannels 归类管理。
添加分组后,可对分组执行以下操作管理面板内 pannels 显示:
分组可折叠或展开,隐藏面板部分内容。折叠的分组内 pannels 不发送查询。
将 pannel 移入分组,使该 pannel 由该分组管理。分组管理该分组与下一分组之间的所有 pannels。
分组折叠时,也可整体移动该分组管理的所有 pannels。
分组的折叠与展开也属于面板调整,若希望下次打开面板时保持该状态,请点击 保存。
将创建的自定义监控面板设置为主面板,重新进入监控面板功能时默认展示主面板数据。
在左侧导航栏点击 运维中心 > 监控 > 监控面板。
默认进入主监控面板,点击 切换面板。
可通过标签筛选或名称搜索查找面板,通过 主面板 开关切换主面板。
可点击面板页面右侧操作按钮,根据需要对面板执行操作。
操作 | 说明 |
---|---|
YAML | 打开存储于 Kubernetes 集群中的面板实际 CR 资源代码,可通过编辑 YAML 中参数修改面板所有内容。 |
导出表达式 | 可导出当前面板使用的指标及对应查询表达式,格式为 CSV。 |
复制 | 复制当前面板,可根据需要编辑 pannels 并另存为新面板。 |
设置 | 修改当前面板的基本信息,如更改标签及添加更多变量。 |
删除 | 删除当前监控面板。 |
平台提供多种可视化方式,支持不同使用场景。本章主要介绍这些 pannel 类型、配置选项及使用方法。
序号 | pannel 名称 | 说明 | 建议使用场景 |
---|---|---|---|
1 | 趋势图 | 通过一条或多条折线展示数据随时间的趋势。 | 展示随时间变化的趋势,如 CPU 利用率、内存使用量等。 |
2 | 阶梯折线图 | 在折线图基础上,使用水平和垂直线段连接数据点,形成阶梯状结构。 | 适合展示离散事件的时间戳,如告警次数。 |
3 | 柱状图 | 使用垂直矩形柱表示数据大小,柱高代表数值。 | 柱状图直观对比数值差异,有助发现模式和异常,适合关注数值变化的场景,如 Pod 数量、节点数量等。 |
4 | 水平柱状图 | 类似柱状图,但使用水平矩形柱表示数据。 | 数据维度较多时,水平柱状图更好利用空间布局,提升可读性。 |
5 | 仪表图 | 使用半圆或环形表示指标当前值及其占比。 | 直观反映关键监控指标当前状态,如系统 CPU 利用率、内存使用率。建议配合告警阈值颜色变化,提示异常情况。 |
6 | 仪表柱状图 | 使用垂直矩形柱展示指标当前值及占比。 | 直观反映关键指标当前状态,如目标完成进度、系统负载。存在同类指标多类别时,更推荐使用仪表柱状图,如可用磁盘空间或利用率。 |
7 | 饼图 | 使用扇形展示部分与整体的比例关系。 | 适合展示整体数据在不同维度的组成,如一段时间内 4XX、3XX、2XX 响应码比例。 |
8 | 表格 | 以行列形式组织数据,便于查看和对比具体数值。 | 适合展示结构化多维数据,如节点详细信息、Pod 详细信息等。 |
9 | 统计图 | 展示单个关键指标的当前值,通常需要文字说明。 | 适合展示重要监控指标的实时数值,如 Pod 数量、节点数量、当前告警数等。 |
10 | 散点图 | 使用笛卡尔坐标系绘制一系列数据点,反映两个变量间的相关性。 | 适合分析两个指标间关系,通过数据点分布发现线性相关、聚类等模式,帮助挖掘指标间关联。 |
11 | 文本卡片 | 以卡片形式展示关键信息文本,通常包含标题和简要说明。 | 适合展示文本信息,如 pannel 说明、故障排查说明等。 |
参数 | 说明 |
---|---|
基本信息 | 根据所选指标数据选择合适的 pannel 类型,添加标题和说明;可添加一个或多个链接,点击标题旁对应链接名可快速访问。 |
标准设置 | 原生指标数据使用的单位。此外,仪表图和仪表柱状图支持配置 总值 字段,图表中将显示为 当前值/总值 的百分比。 |
提示信息 | 鼠标悬停 pannels 时实时数据的显示开关,支持选定排序。 |
阈值参数 | 配置 pannels 的阈值开关,启用时在 pannels 中以选定颜色显示阈值,支持阈值大小调整。 |
数值 | 设置数值的计算方式,如最新值或最小值。该配置仅适用于统计图和仪表图。 |
数值映射 | 重新定义指定数值或数值区间,如定义 100 为满载。该配置仅适用于统计图、表格和仪表图。 |
pannel 类型 | 参数 | 说明 |
---|---|---|
趋势图 | 图形样式 | 可选择折线图或面积图作为显示样式;折线图更侧重反映指标趋势变化,面积图更关注总量及部分比例变化。根据实际需求选择。 |
仪表图 | 仪表图设置 | 显示方向:当需在单图查看多个指标时,可设置指标水平或垂直排列。 单位重定义:可为每个指标设置独立单位,未设置时平台显示 标准设置 中单位。 |
饼图 | 饼图设置 | 最大切片数:可设置减少饼图切片数量,降低比例较低但数量较多类别的干扰。超出部分合并显示为 其他。 标签显示字段:可设置饼图标签中显示的字段。 |
饼图 | 图形样式 | 可选择饼图或甜甜圈图作为显示样式。 |
表格 | 表格设置 | 隐藏列:可减少表格列数,聚焦部分主要列信息。 列对齐:可修改列内数据对齐方式。 显示名称和单位:可通过该参数修改列名和单位。 |
文本卡片 | 图形样式 | 样式:可选择在富文本编辑框或 HTML 中编辑文本卡片显示内容。 |
example-dashboard.yaml
。定义查询设置时,除使用 PromQL 设置查询外,平台还提供以下常用函数供您自定义查询设置时参考。
函数名 | 作用 |
---|---|
label_names() | 返回 Prometheus 中所有标签,如 label_names()。 |
label_values(label) | 返回 Prometheus 中所有监控指标中标签名对应的所有可选值,如 label_values(job)。 |
label_values(metric, label) | 返回 Prometheus 中指定指标中标签名对应的所有可选值,如 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) | - |
使用 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="(.*?)",.*/
。
向当前面板添加 pannel,引用之前添加的变量,例如:
指标名称:计算组件下 Pod 内存使用。
键值对:kind
:Deployment
,name
:$deployment
,namespace
:$namespace
。
添加并保存 pannels 后,可在面板首页查看对应 pannel 信息。
以下指标使用自定义变量 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