最新消息:

grafana读取mysql数据并绘制柱状图

心情杂感 ipcpu 111浏览 0评论

grafana柱状图.md

概述

grafana作为一款优秀的时序数据库展示工具,在业内使用极为广泛,但是我们很多时候需要展示一些非时序型的数据或者时间跨度很大的数据,比如月度费用走势这样,一个月只有一个值的柱状图,大家往往无从下手。本文简单的阐述了一些柱状图的实现方法。

grafana图形的三要素

在实现柱状图之前,我们先看下grafana中每个图形的三要素。
时间time、值value、指标metric
时间和值的组合(prometheus中称作sample)就可以形成图像中的一个点;
若干个时间和值的组合(sample)就会组成一个图像,如下面的折线图

我们也可以把多个指标metric放到同一个图上,如下图

在默认的图形中,时间time 永远是作为X轴数据出现的,值value 作为Y轴出现,指标metric用来标识不同的线。

grafana中柱状图的实现

grafana提供了切换X轴数据的功能,可以将X轴切换为指标metric(grafana中Mode方式是Series),Y轴仍然是 值value 。
在面板的X-Axis中可以设置,如下


由于grafana一般是从时序型数据库中获取数据,因此,每个metric(series) 有很多个值,grafana也提供了选择方式,可以选择最新数据current或者是average平均,还可以选项count个数等等。

grafana中使用mysql作为datasource绘制柱状图

假如我们的数据表结构和内容如下

SQL查询语句如下

SELECT
  create_time AS time,
  date_format(create_time, '%Y-%m') AS metric,
value
FROM testgraph


这张图上是个点状图,时间点跨度很大,因此我们时间区间(time range) 必须选择正确才能看到。

但其实对这张图来讲,时间区间并不重要,我们只想获取数据库中存在的字段,可以把时间改成如下方式,

SELECT
  Now() AS "time",

图形设置为柱状图,得到如下的图形

这个时间一定要修改,要不然图形上会有报错信息提示

扩展

假如每个月有两个项目,ProjectA和ProjectB都要画到图上,就会出现如下的图形。但是如何把A和B堆叠起来,这个我也不会。大家有会的记得告诉我呀。

转载请注明:IPCPU-网络之路 » grafana读取mysql数据并绘制柱状图

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址