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