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