4. Grafana使用mysql作为数据源,呈现图表

4. Grafana使用mysql作为数据源,呈现图表,第1张

近期在使用python写一套模拟API请求的监控项目,考虑数据可视化这方面就采用grafana来呈现,下面来看看怎么弄。

首先安装好mysql,将监控的日志数据写入到mysql之中。如下图:

好了,这里就已经准备好了相关的测试模拟数据。那么下面就使用Grafana来配置图表看看。

如果有不清楚Grafana怎么安装的朋友,可以点击 这里 查看如何安装部署。

按照脚本我已经设置好了 admin 的密码为 newpwd 了。

输入用户名 admin 和 密码 newpwd ,点击 Log In 登录系统。

在登陆系统后的首页,就可以进行数据源的添加了。

访问不了 localhost:3306 的原因是因为Grafana是使用docker容器启动的,而容器当然没有部署mysql。

所以,修改mysql访问配置如下:

好了,数据源mysql已经配置好了。下一步就是配置图表的呈现了。

下面来编写一个SQL查询来看看。

从上图看出,从mysql中查询的结果直接就可以从Grafana表格呈现了。

好了,基本上table表格已经呈现,但是单纯这样的一个表格满足不了我的胃口。

那么下面就来再整一个曲线图来看看。

我不是想单独增加一个新的面板,而是想在刚刚创建的table上面创建一个曲线图,那么该怎么做呢?

从上这个图表的配置我一开始也没太理解清楚,配置过后,看着图表呈现就更加好的理解了。

根据图表的内容,我查询的分析如上图。

当然还可以呈现更加多的图表,这里就基本介绍到这里啦。

假设我有2种类型的服务器,一种是本地电脑(每个指标名称都存在{nodename='mac-local'}),一种是阿里云服务器(每个指标名称都存在{nodename='aliyun'}),同时每个指标下都存在一个 {instance='具体的服务器的ip地址'}标签。

即我们采集的时间序列大致上都有如下标签:

eg:

node_uname_info{nodename='xxxx',instance='yyyy'}

我们想监控一下每台主机的cpu的使用情况。同时不能在一个图形上显示出所有的机器的cpu使用率,需要根据用户的选择而显示。即要出现下图所示的结果,这个情况我们可以通过grafana的 模板变量 来实现。

从上图可以,instance的出现是根据 服务器类型 的选择而不同的。

1、在Dashboard页面点击小齿轮⚙️图标。

2、点击创建一个变量

注意:

instance 变量的值是根据上一步 nodename 变量的值而来的,及选择不同的 nodename,instance 的值应该是不同的。及在 instance 变量的查询语句中需要引用 nodename 变的值,通过 $nodename 即可引用。

做完上方出现的1,2两步,即可出现需求中出现的画面。

在 grafana 中引入此json串,即可实现上图的效果。 但是要保证每个时间序列都存在 nodename 和 instance的标签。

1、 grafana模板变量的使用


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7613239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存