精选文章 grafana使用MYSQL数据源展示

grafana使用MYSQL数据源展示

作者:2018_like菜 时间: 2020-08-05 03:20:13
2018_like菜 2020-08-05 03:20:13

新增数据源

Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。

官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。

每个数据源的查询语言和能力都是不同的。
你可以把来自多个数据源的数据组合到一个仪表板dashboard。

登录grafana 界面

默认用户和密码均为admin

在左侧栏中选中Configuration --> Data sources

grafana使用MYSQL数据源展示1
进入页面后 点击 add data source

grafana使用MYSQL数据源展示2

选择 符合自己的 数据库类型

grafana使用MYSQL数据源展示3

填入相关信息即可

grafana使用MYSQL数据源展示4

新增dashboard

两个入口,可以点击左侧栏的加号新增 dashboard

grafana使用MYSQL数据源展示5
也可以先点击左侧栏dashboard 进入 manage页面

点击 new dashboard 按钮

grafana使用MYSQL数据源展示6

grafana使用MYSQL数据源展示7

可以看到有两个按钮,一个先新建查询条件,一个是先选择展示的视图。 可以任意选择一个进入,编辑过程中可以切换。

使用官方的模版

如果是常用的监控,我们没有必要 一步步的构建我们的视图和查询条件,可以直接使用官方的模版或者 其他用户已经编辑好的模版。

官方模版地址

以mysql各项指标监控为例子。

通过访问官方模版地址来查看已有仪表盘模板,选取合适的使用。

grafana使用MYSQL数据源展示8

有些模版 使用前有相应的 操作说明,比如需要安装my2。

https://github.com/meob/my2Collector

复制模版的id备用

grafana使用MYSQL数据源展示9

回到自己的Grafana节点,打开Import界面

grafana使用MYSQL数据源展示10

粘贴id,点击文本框外 如果找到该模版,会自动跳转。

grafana使用MYSQL数据源展示11

grafana使用MYSQL数据源展示12

选择相应数据源和 放置的目录即可。

成功展示如图:
grafana使用MYSQL数据源展示13

导入导出dashboard的json

有时候我们想要使用的模版并不是官网的,或者因为版本的问题和 没有外网等原因,grafana可能找不到。

grafana使用MYSQL数据源展示14

这种情况可以使用json的方式导入。

步骤如下:

点击获取 【Download JSON】

grafana使用MYSQL数据源展示15

导入时 点击 upload json 选中下载到本地的json即可。

grafana使用MYSQL数据源展示16

假如我们有一个做好的模版想要复用或者备份,也可以导出json。

点击 右上角的 share dashboard

grafana使用MYSQL数据源展示17

点击export 中的 view json即可

grafana使用MYSQL数据源展示18

grafana使用MYSQL数据源展示19

自定义表格

比如我们在mysql数据中有一个表格如下:

grafana使用MYSQL数据源展示20

想要在 grafana中展示,则需要使用同样的sql

select 
   id   as '序号',
   apartment   as '型号',
   area   as '面积',
   floor   as '层数',
   buildtime   as '建造时间',
   all_price   as '总价',
   unit_price   as '单价'
from 
   `basic`

根据之前的步骤新建dashboard,选择add query。

grafana使用MYSQL数据源展示21

在Query的下拉框 选中我们的数据源。

这里 sql语句有两种模式,一种是 build模式,填入相应的字段即可。

不过sql模式 更直观一些。

点击Edit SQL。

输入如上 sql语句。

点击左侧栏的visualiztion,选中table。

grafana使用MYSQL数据源展示22

回到 sql界面,format as 选中table即可

grafana使用MYSQL数据源展示23

点击右上角的保存按钮。

即可在 dashboard中查看如图,点击右下角可以拖拽 拉长拉宽。

grafana使用MYSQL数据源展示24

grafana使用MYSQL数据源展示25

自定义图形

我们已经尝试了展示表格,实际上 图形也是常用的展示,以下 举一些常用的例子。

重点说明 graph的参数,其他图形 可以参考graph的参数。

变化趋势:Graph面板

Graph面板是最常用的一种可视化面板,其通过折线图或者柱状图的形式显示监控样本随时间而变化的趋势。例如,当需要查看主机CPU、内存使用率的随时间变化的情况时,可以使用Graph面板。同时,Graph还可以非常方便的支持多个数据之间的对比。

创建Graph —曲线图

点击左侧栏的创建Create ----》 dashboard --》Choose Visualization 选中graph。

点击左侧大图标的 Queries。

在Query下拉框中选中 数据源。

点击 Edit SQL

输入 想要展示的sql语句,需要注意的是,语句中需要包含time_sec 和 metric 以及 value 。

按照如下格式:

SELECT
  UNIX_TIMESTAMP() as time_sec,
   as value,
   as metric
FROM 
WHERE $__timeFilter(time_column)
ORDER BY  ASC
 

time_sec 表示发生的时间,与x轴对应,该字段的数据必须为时间格式。
value 表示 数值 与 y轴对应
metric 表示 系列,也就是有几根线,可以看成是分组

我的语句如下:

SELECT
  UNIX_TIMESTAMP(insert_time) as time_sec,
  unit_price as value,
  concat(area,"平米") as metric
FROM basic
WHERE $__timeFilter(insert_time)
ORDER BY insert_time ASC

$__timeFilter() 表示只选中该字段值是时间的 数据。
UNIX_TIMESTAMP()则表示 转换为 时间戳

注意 如果我们的数据不是持续产生的话, 需要 在右上角 展示时间段内 调整下 展示时间段, 比如我的数据只有4月份的,所以需要调整成 展示最近1年。

展示如下:
grafana使用MYSQL数据源展示26

创建Graph —柱状图

柱状图 的创建方式跟 曲线图一致,区别在于 需要在visualization 中 把模式Draw modes 调整成 bar。

grafana使用MYSQL数据源展示27

这时候 我们发现 如果按照 insert_time 作为 x轴坐标,不符合我们想要看的 纬度,则可以 对 sql 语句进行修改,重新制定分组,然后 在Axes 中 调整X-Axis调整 x轴的mode 为 按系列分,选中series 。 如下:

SELECT
  now() as time_sec,
  unit_price as value,
  concat(area,"平米") as metric
FROM basic
WHERE unit_price < 20000
group by metric
ORDER BY metric ASC

grafana使用MYSQL数据源展示28

结果如图:
grafana使用MYSQL数据源展示29

如果数据很多,x轴排列不下,我们可以取消 x轴的文字显示,而是在下面使用标注的显示方式。

在Axes 中 调整X-Axis调整 x轴的show 为 关闭
grafana使用MYSQL数据源展示30

在Legend 中 调整Options 的show 为 打开

grafana使用MYSQL数据源展示31
效果如图:
grafana使用MYSQL数据源展示32

配置说明

Graph里面的选项有:

General(常规选择)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Alert(告警)、Time range(时间范围)

不同版本会有差异。

1)General(常规选择:http://docs.grafana.org/features/panels/graph/)

grafana使用MYSQL数据源展示33

General允许定制面板的外观和菜单选项。

General Options

Title:仪表盘上的面板标题

Description:仪表盘描述信息

Transparent :是否透明,选择之后会把该图的背景去掉,即透明状态

Repeat panel:是否重复panel,填写是重复的变量(参考后文变量配置),即这个标题名中添加对应的变量,引用该变量需添加$,图标题即可随着自选的变量而变化。

panel links(为当前panel增加超链接)

(2)Axes(坐标轴)

grafana使用MYSQL数据源展示34
Left Y和Right Y可以自定义,即可以设置多重坐标轴,方便对比查看

Show:是否显示,可以通过从显示轴中取消适当的框来隐藏轴。

Unit:y轴的显示单元

Scale:Y轴的间隔度。选择“log base 2”以double的速度递增,(0、1、2、4、8…),选择“log base 32”,就是(0、1、32…)

Y-Min:Y轴的最小值(默认atuo)

Y-Max:Y轴的最大值(默认atuo)

Lable:Y轴的文本标签

(3)Legend(图例)

grafana使用MYSQL数据源展示35

通过选择显示复选框隐藏图例。如果它被显示,它可以通过检查表复选框显示为一个值表。没有值的系列可以使用隐藏空复选框,从而在图例中隐藏。

options:

show:是否显示图例

as table:作为表格样式显示

to the right:显示在右边

values:

在图例中,显示每个series的max\min\avg\total\current,能设置小数点位数。在图上显示,

通过点击列标题(如果保存的话,这个选项将会被持久化)来排序,通过min/max/avg来排序。

点击图例,也可单独显示某个series。

(4)Display(显示样式)

grafana使用MYSQL数据源展示36

1、Draw option

Draw Modes:Bars(柱状图)、lines(折线图)、Points(点)

Mode Options:Fill(充满区域透明度),Line Width(线宽度),Staircase(是否阶梯),Point Radius(点的半径,以此控制点的大小)

Hover tooltip

Mode:All series(鼠标移到点上显示所有图例的值),single(鼠标移到点上显示该series图例的值)

Sort order:None(按图例排列顺序显示),increaseing(值的从小到大递增),Decreasing(值从大到小递减)

Stacking&Null value :stack(多series是否堆叠显示),percent(百分比),Null value:空值怎么显示(connected:null值被忽略,直线直接跳转到下一个值,null:空值被保留为空,这将在图中留下空白区域,null as zero:空值被绘制为零值)

2、series overrieds:多坐标轴重写,即可以在这里设置y轴正负轴或z轴的正负轴,需要选择对应的指标,而且因指标、指标别名的变化需重新设置,设置完成后对比效果更好

alias or regex:series图例名称

Y-axis:显示在Y轴左右哪边,

z-index(多series显示前后位置),

stack:堆叠,可选择,metric中A\B\C\D哪个。

transform(negative-Y:将值显示为负数)

fill below to:(将两者值充满颜色 ,由上往下从大值到小值,所以不可以写成min fill below tu max写法如图:)

3、Thresholds & Time regions:

grafana使用MYSQL数据源展示37

Thresholds 可以写多条临界值在界面上显示,大于400,和大于600两个。如设置了alert,就不能设置这个。

Time regions 时间区域允许你突出特定的时间区域图的,更容易看到例如周末营业时间和/或工作时间。

(5)Alert(告警)

grafana使用MYSQL数据源展示38

Alert Config

Name & Evaluation interval:在这里可以指定警报规则的名称,以及调度器应该多长时间对警报规则进行评估。

Conditions:目前唯一存在的条件类型是一个查询条件,允许您指定查询字母(metric里查询语句的字母,代表哪个查询语句)、时间范围和聚合函数。

Notifications

在警告选项卡中,还可以指定警报规则通知,以及关于警报规则的详细信息。这个消息可以包含任何信息,关于如何解决这个问题的信息,链接到runbook等。实际的通知被配置并在多个警报之间共享。

State History

警戒状态的变化都被记录在内部注释Grafana的数据库表。状态更改可视为警报规则的图形面板中的注释。

graph更多解析可参考:https://www.jianshu.com/p/7e7e0d06709b

分布统计:Heatmap面板

Heatmap是是Grafana v4.3版本以后新添加的可视化面板,通过热图可以直观的查看样本的分布情况。
在Grafana v5.1版本中Heatmap完善了对Prometheus的支持。

创建步骤:

点击左侧栏的创建Create ----》 dashboard --》Choose Visualization 选中 Heatmap。

点击左侧大图标的 Queries。

在Query下拉框中选中 数据源。

点击 Edit SQL

输入 想要展示的sql语句,需要注意的是,语句中需要包含time_sec 和 metric 以及 value 。

按照如下格式:

SELECT
  UNIX_TIMESTAMP() as time_sec,
   as value,
   as metric
FROM 
WHERE $__timeFilter(time_column) ORDER BY ASC

语句可以相应修改,比如我需要看 不同的时间段中面积的分布。

使用sql如下:

SELECT
  UNIX_TIMESTAMP(insert_time) as time_sec,
  unit_price as value
FROM basic
WHERE 1=1

效果如图:

目前 Heatmap 只支持使用时间作为 X轴,暂时没发现可以不使用时间作为X轴的方法。

grafana使用MYSQL数据源展示39

当前状态:SingleStat面板

Singlem Panel侧重于展示系统的当前状态而非变化趋势。如下所示,在以下场景中特别适用于使用SingleStat:

当前系统中所有服务的运行状态;
当前基础设施资源的使用量;
当前系统中某些事件发生的次数或者资源数量等。

创建步骤:

点击左侧栏的创建Create ----》 dashboard --》Choose Visualization 选中 SingleStat。

点击左侧大图标的 Queries。

在Query下拉框中选中 数据源。

点击 Edit SQL

输入 想要展示的sql语句,需要注意的是,语句中需要包含time_sec 和 metric 以及 value 。

使用SQL如下:

SELECT
  now() as time,
  sum(all_price) as value
FROM basic
WHERE 1=1

需要注意的是 SingleStat使用的sql,除了必备的time字段外, 必须只有一个值,也就是总的数值。

如下所示,是使用SingleStat进行数据可视化的显示效果:

grafana使用MYSQL数据源展示40

使用变量

在Grafana中可以为Dashboard定义一组变量(Variables),变量一般包含一个到多个可选值。

通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单:

grafana使用MYSQL数据源展示41
用户需要指定变量的名称,后续用户就可以通过$variable_name的形式引用该变量。

Grafana目前支持7种不同的变量类型。

类型工作方式
Query允许用户通过Datasource查询表达式的返回值动态生成变量的可选值
Interval该变量代表时间跨度,通过Interval类型的变量,可以动态改变PromQL区间向量表达式中的时间范围。如rate(node_cpu[2m])
Datasource允许用户动态切换当前Dashboard的数据源,特别适用于同一个Dashboard展示多个数据源数据的情况
Custom用户直接通过手动的方式,定义变量的可选值
Constant常量,在导入Dashboard时,会要求用户设置该常量的值
Text box输入框,允许用户输入
Ad hoc filters非常特殊的变量,目前仅适用于某些数据源,InfluxDB和Elasticsearch。它允许您添加键/值过滤器,这些过滤器将自动添加到使用指定数据源的所有度量标准查询中

我们以Text box演示变量的用法,以SingleStat面板为例。

首先设置好环境变量名和类型如下:

grafana使用MYSQL数据源展示42

点击Add 按钮 看到创建变量成功如下:

grafana使用MYSQL数据源展示43

点击左边的save按钮,填入版本描述信息。

点击左上的箭头回到 编辑图表界面。

点击左侧的General按钮,在title栏里输入 单价小于$max_price的房子总价,发现变量生效了。

grafana使用MYSQL数据源展示44

sql中使用如下:

SELECT
  now() as time,
  sum(all_price) as value
FROM basic
WHERE unit_price < '${max_price}'

保存dashboard后 在 界面上即可通过输入 变量 进行 筛选了。

grafana使用MYSQL数据源展示45

更多图表json参考

自定义组件–Dashboard List Panel等
https://grafana.com/docs/grafana/latest/features/panels/dashlist/

模版
https://github.com/percona/grafana-dashboards/tree/master/dashboards

模版
http://grafana.openstack.org/dashboards

模版
http://47.96.36.117:3000/d/000000002/nginxfang-wen-tong-ji?orgId=1

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:Yolo系列详解

下一篇:Java Optional类源码解析和用法

您可能感兴趣

  • 图解一致性哈希算法,全网(小区局域网)最通俗易懂

    好久不见小伙伴们,最近都快忙晕了,后端技术学堂差点停课,不过还是抽时间写了这篇文章带大家一起学习一致性哈希算法。 很多同学应该都知道什么是哈希函数,在后端面试和开发中会遇到「一致性哈希」,那么什么是一致性哈希呢?名字听起来很厉害的样子,其实原理并不复杂,这篇文章带你彻底搞懂一致性哈希! 进入主题前,先来一场紧张刺激的模拟面试吧。 模拟面试 面试官:看你简历上写参与了一个大型项目,用到了分布式...

  • 在Windows Server 2016和SQL Server Always On可用性组上安装SQL Server 2019

    In this article, we will proceed with configuring a SQL Server Always On Availability Groups and perform failover validations. 在本文中,我们将继续配置SQL Server Always On可用性组并执行故障转移验证。 You should go through t...

  • sql关于视图的sql_学习SQL:SQL视图

    sql关于视图的sql SQL views are another powerful database object we have at our disposal. In the previous two articles of this series, we’ve talked about user-defined functions and user-defined procedure...

  • 将事务日志应用于SQL Server Always On可用性组中的辅助副本

    介绍 (Introduction) SQL Server Always On Availability Groups provides HADR solutions for the SQL databases. Here HA refers to high availability and DR refers to disaster recovery. The priority of thi...

  • SQL Server安全机制–如何控制用户能够在报告中查看哪些数据

    介绍 ( Introduction ) A few years back, a client asked me to implement a quick and dirty “security mechanism” to control what data the myriad of users were able to view within their reports. There we...

  • SQL Server商业智能–在已建立的数据仓库中扩展事实表

    介绍 (Introduction) 在生活中,听起来简单的事情并非总是最简单的事情。 在计算机科学中,情况更是如此。 实际上,信息技术工作中最具挑战性的事情之一通常是与老板之间的沟通,这些老板对技术知之甚少,并且需要为看似简单的任务花费的时间辩护。 但是,出于同样的原因,未经训练的人似乎不可能完成的任务通常非常简单,易于实施,并且可以使您容易受到尊重。 扩展事实表 (Expanding fa...

  • 使用SQL Server事务复制将SQL Server数据库迁移到Azure SQL数据库

    In this guide, we’ll discuss more about migrating a SQL Server database to Azure SQL Database using SQL Server Transactional Replication. 在本指南中,我们将讨论有关使用SQL Server事务复制将SQL Server数据库迁移到Azure SQL数据库的...

  • sp_MSforeachtable简介; 遍历数据库中的所有表运行命令

    介绍 (Introduction) There have always been some undocumented objects in SQL Server that are used internally by Microsoft, but they can be used by anybody that have access to it. One of those objects ...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。