Grafana变化趋势:Graph面板

Graph面板是最常用的一种可视化面板,其通过折线图或者柱状图的形式显示监控样本随时间而变化的趋势。Graph面板天生适用于Prometheus中Gauge和Counter类型监控指标的监控数据可视化。例如,当需要查看主机CPU、内存使用率的随时间变化的情况时,可以使用Graph面板。同时,Graph还可以非常方便的支持多个数据之间的对比。
在这里插入图片描述

Graph面板与Prometheus

Graph面板通过折线图或者柱状图的形式,能够展示监控样本数据在一段时间内的变化趋势,因此其天生适合Prometheus中的Counter和Gauge类型的监控指标的可视化,对于Histogram类型的指标也可以支持,不过可视化效果不如Heatmap Panel来的直观。

使用Graph面板可视化Counter/Gauge

以主机为例, CPU使用率的变化趋势天然适用于使用Grapn面板来进行展示:
在这里插入图片描述
在Metrics选项中,我们使用以下PromQL定义 如何从Prometheus中读取数据:

1 - (avg(irate(node_cpu{mode='idle'}[5m])) without (cpu))

如下所示:
在这里插入图片描述
根据当前Prometheus的数据采集情况,该PromQL会返回多条时间序列(在示例中会返回3条)。

Graph面板会从时间序列中获取样本数据,并绘制到图表中。 为了让折线图有更好的可读性,我们可以通过定义Legend format为{{ instance }} 控制每条线的图例名称:
在这里插入图片描述
使用Legend format模板化图例

由于当前使用的PromQL的数据范围为0~1表示CPU的使用率,为了能够更有效的表达出度量单位的概念,我们需要对Graph图表的坐标轴显示进行优化。如下所示,在Axes选项中可以控制图标的X轴和Y轴相关的行为:
在这里插入图片描述
默认情况下,Y轴会直接显示当前样本的值,通过Left Y的Unit可以让Graph面板自动格式化样本值。

当前表达式返回的当前主机CPU使用率的小数表示,因此,这里选择单位为percent(0.0.-1.0)。除了百分比以外,Graph面板支持如日期、货币、重量、面积等各种类型单位的自动换算,用户根据自己当前样本的值含义选择即可。

除了在Metrics设置图例的显示名称以外,在Graph面板的Legend选项可以进一步控制图例的显示方式,如下所示:
在这里插入图片描述
Options中可以设置图例的显示方式以及展示位置,Values中可以设置是否显示当前时间序列的最小值,平均值等。 Decimals用于配置这些值显示时保留的小数位,如下所示:
在这里插入图片描述
除了以上设置以外,我们可能还需要对图表进行一些更高级的定制化,以便能够更直观的从可视化图表中获取信息。在Graph面板中Display选项可以帮助我们实现更多的可视化定制的能力,其中包含三个部分:Draw options、Series overrides和Thresholds。
在这里插入图片描述
Draw Options用于设置当前图标的展示形式、样式以及交互提示行为。其中,Draw Modes用于控制图形展示形式:Bar(柱状)、Lines(线条)、Points(点),用户可以根据自己的需求同时启用多种模式。Mode Options则设置各个展示模式下的相关样式。Hover tooltip用于控制当鼠标移动到图形时,显示提示框中的内容。

如果希望当前图表中的时间序列以不同的形式展示,则可以通过Series overrides控制,顾名思义,可以为指定的时间序列指定自定义的Draw Options配置,从而让其以不同的样式展示。例如:
在这里插入图片描述
这里定义了一条自定义规则,其匹配图例名称满足/localhost/的时间序列,并定义其以点的形式显示,在图表中,修改后的图标显示效果如下:
在这里插入图片描述
Display选项中的最后一个是Thresholds,Threshold主要用于一些自定义一些样本的阈值,例如,定义一个Threshold规则,如果CPU超过50%的区域显示为warning状态,可以添加如下配置:
在这里插入图片描述
Graph面板则会在 图表中显示一条阈值,并且将所有高于该阈值的区域显示为warining状态,通过可视化的方式直观的在图表中显示一些可能出现异常的区域。

使用Graph面板可视化Histogram

以Prometheus自身的监控指标

prometheus_tsdb_compaction_duration为例,

该监控指标记录了Prometheus进行数据压缩任务的运行耗时的分布统计情况。如下所示,是Prometheus返回的样本数据:
在这里插入图片描述
Histogram用于统计样本数据的分布情况,其中标签le定义了分布桶Bucket的边界,如上所示,表示当前Prometheus共进行了36次数据压缩,总耗时为51.31017077500001ms。其中任务耗时在01ms区间内的为2次、在02ms区间范围内为36次,以此类推。

如下所示,如果需要在Graph中显示Histogram类型的监控指标,需要在Query Editor中定义查询结果的Format as为Heatmap。通过该设置Grafana会自动计算Histogram中的Bucket边界范围以及该范围内的值:
在这里插入图片描述
Graph面板重新计算了Bucket边界,如下所示,在01ms范围内的任务次数为2,在12ms范围内的运行任务次数为34。通过图形的面积,可以反映出各个Bucket下的大致数据分布情况:
在这里插入图片描述
不过通过Graph面板展示Histogram也并不太直观,其并不能直接反映出Bucket的 大小以及分布情况,因此在Grafana V5版本以后更推荐使用Heatmap面板的方式展示Histogram样本数据。关于Heatmap面板的使用将会在接下来的部分介绍。

PS:需要笔记资料可以联系老师获取

VX:chuansinfo_sz
在这里插入图片描述

### 添加 InfluxDB 数据源 在 Grafana 中添加 InfluxDB 数据源的过程相对简单。进入 Grafana 的 Web 界面后,导航到左侧菜单中的“Configuration”,再点击“Data Sources”。随后点击页面顶部的“Add data source”按钮,在弹出的选择框中找到并选择“InfluxDB”。 完成选择之后,将会跳转至配置界面。在此界面上需填写必要的连接信息,比如 HTTP 请求地址、访问认证方式等[^1]。 对于身份验证部分,默认情况下应启用基本认证选项,并输入相应的用户名密码来确保能够成功连接到 InfluxDB 实例。如果所使用的 InfluxDB 版本为 2.x,则还需指定组织名称以及存储桶名称以适配新版本架构下的数据读取需求。 最后保存设置即可使新的数据源生效,此时便可以在创建仪表板时利用该数据源获取所需的数据用于展示图表或其他形式的内容了。 ### 创建基于 InfluxDB 的面板 为了构建一个有效的监控视图,通常会在 Grafana 上建立多个面板组合成完整的仪表盘。针对已添加好的 InfluxDB 数据源,新建面板的方式如下: 通过点击首页左上角的 "+" 号,选取“Dashboard”项;接着按提示操作直至出现空白画布为止。这时可以按下右下角带有加号图标的小方块开启编辑模式,从而允许向当前布局内拖拽不同类型的组件——即所谓的“Panel”。 选定要加入的具体 Panel 类型(例如 Graph 或 Statistic),随即会展开一系列属性设定供进一步调整优化。其中最关键的是切换上方工具栏里的查询编辑器至先前准备完毕的那个 InfluxDB 来源处,编写 Flux 查询语句提取目标度量指标作为后续渲染的基础素材。 ```sql from(bucket: "example-bucket") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "cpu_usage" and r["host"] == "serverA") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) ``` 上述代码片段展示了如何从名为 `example-bucket` 的 bucket 中检索特定主机 CPU 使用率的时间序列记录,并计算平均值以便于直观呈现趋势变化情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值