

简介
什么是 Grafana ?
在时序分析及监控展现领域里,Grafana 无疑是一款将时序数据转换为精美图形和可视化效果的工具,提供分析、警报和查询等功能。Grafana 可以快速灵活创建数据图表,具有丰富的仪表盘插件,支持接入 MatrixDB 等多种不同的数据源,并广泛应用在工业物联网、车联网、交通等领域。

为什么使用 MatrixDB ?
MatrixDB 五大亮点:
简单来说,MatrixDB 就是
高性能!易使用!低成本!
本教程包含如下内容:
Grafana 安装
Grafana 使用
创建可视化视图
指定 MatrixDB 时序数据源
Grafana 安装
如何安装 Grafana ?
从 Grafana 官网,下载 Grafana 最新版本。
官网链接:https://grafana.com/
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.3-1.x86_64.rpmsudo yum install grafana-enterprise-8.1.3-1.x86_64.rpm
安装成功后,启动 Grafana
sudo systemctl daemon-reloadsudo systemctl start grafana-server
Grafana 使用

默认账户和密码都是 admin,直接输入即可登录。
指定数据源
登录后即可看到 Grafana 主界面。

在使用 Grafana 进行数据展示之前,首先需要“创建数据源”,点击左侧设置选项卡。



填写数据库连接信息并保存。

创建可视化视图
添加 MatrixDB 为数据源后,下面开始创建可视化视图来展示数据。
Grafana 的数据展示是由仪表盘和面板组成。仪表盘展示了整个系统的可视化运行状态,是由多个面板所组成,是每个面板展示的一个指标。
创建新仪表盘

创建时间序列可视化视图
仪表盘创建好后,下面开始创建仪表盘上的面板。
mxadmin=# \d sensor_dataTable "public.sensor_data"Column | Type | Collation | Nullable | Default--------+--------------------------+-----------+----------+---------ts | timestamp with time zone | | |tagid | integer | | |value | real | | |Distributed by: (tagid)

2. 右边可视化列表里列出了所有可视化效果,选择 Time series。

本节使用 SQL 生成器来编写,在下面的查询生成栏里填写 SQL 的具体信息。

在面板里会显示出数据曲线,为了让数据看得更清楚,可以在时间过滤条件里选择 Last 5 minutes。


创建饼图可视化视图
下面,演示添加一个饼图可视化视图,点击上边栏的 Add panel ,再创建一个 Empty panel 。

这次,在 Visualizations 里选择 Bar chart 。


SELECT'设备'||tagid::text,avg(value)FROMsensor_dataWHERE$__timeFilter(ts)GROUP BY tagid
其中 $__timeFilter(ts) 是 Grafana 提供的时间函数,用来允许用户在界面上选择时间过滤条件。
写完 SQL 并应用后,就可以在 Dashboard 里看到刚才创建完成的两个 Panel 。
同时可以在右上角点击刷新,仪表盘的数据会按刷新频率更新。

指定 MatrixDB 时序数据源
使用MatrixDB时序组件和函数
下面准备使用 MatrixDB 时序组件里提供的 time_bucket 函数来修改前面展示指标值时间序列图,使每个指标点表示的含义为1分钟的平均值。
在使用时序组件前,首先需要在数据库中创建组:
mxadmin=# CREATE EXTENSION matrixts;CREATE EXTENSION
点击编写 SQL,并将 SQL 语句做如下改写:
SELECTtime_bucket('1 minutes', ts) AS time,AVG(value)FROMsensor_dataWHERE$__timeFilter(ts)GROUP BY time

窗口函数
SELECTts AS time,(CASE WHEN lag(value) OVER (ORDER BY ts) IS NULL THEN NULLELSE value - lag(value) OVER (ORDER BY ts)END) AS valueFROM sensor_dataWHERE $__timeFilter(ts) AND tagid = 1

推 荐 阅 读





加小M助手为好友即可入群


转发,点赞,在看,安排一下?





