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年。
展示如下:

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

这时候 我们发现 如果按照 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

结果如图:

如果数据很多,x轴排列不下,我们可以取消 x轴的文字显示,而是在下面使用标注的显示方式。
在Axes 中 调整X-Axis调整 x轴的show 为 关闭

在Legend 中 调整Options 的show 为 打开

效果如图:

配置说明
Graph里面的选项有:
General(常规选择)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Alert(告警)、Time range(时间范围)
不同版本会有差异。
1)General(常规选择:http://docs.grafana.org/features/panels/graph/)

General允许定制面板的外观和菜单选项。
General Options
Title:仪表盘上的面板标题
Description:仪表盘描述信息
Transparent :是否透明,选择之后会把该图的背景去掉,即透明状态
Repeat panel:是否重复panel,填写是重复的变量(参考后文变量配置),即这个标题名中添加对应的变量,引用该变量需添加$,图标题即可随着自选的变量而变化。
panel links(为当前panel增加超链接)
(2)Axes(坐标轴)

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(图例)

通过选择显示复选框隐藏图例。如果它被显示,它可以通过检查表复选框显示为一个值表。没有值的系列可以使用隐藏空复选框,从而在图例中隐藏。
options:
show:是否显示图例
as table:作为表格样式显示
to the right:显示在右边
values:
在图例中,显示每个series的max\min\avg\total\current,能设置小数点位数。在图上显示,
通过点击列标题(如果保存的话,这个选项将会被持久化)来排序,通过min/max/avg来排序。
点击图例,也可单独显示某个series。
(4)Display(显示样式)

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:

Thresholds 可以写多条临界值在界面上显示,大于400,和大于600两个。如设置了alert,就不能设置这个。
Time regions 时间区域允许你突出特定的时间区域图的,更容易看到例如周末营业时间和/或工作时间。
(5)Alert(告警)

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轴的方法。

当前状态: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中可以为Dashboard定义一组变量(Variables),变量一般包含一个到多个可选值。
通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单:

用户需要指定变量的名称,后续用户就可以通过$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面板为例。
首先设置好环境变量名和类型如下:

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

点击左边的save按钮,填入版本描述信息。
点击左上的箭头回到 编辑图表界面。
点击左侧的General按钮,在title栏里输入 单价小于$max_price的房子总价,发现变量生效了。

sql中使用如下:
SELECT
now() as time,
sum(all_price) as value
FROM basic
WHERE unit_price < '${max_price}'
保存dashboard后 在 界面上即可通过输入 变量 进行 筛选了。

更多图表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