Grafana + Mysql 可视化报表搭建指南
Grafana 是大规模指标数据可视化展现的开源工具,广泛应用于监控报警、数据分析。它可以支持多种数据源,包括 Graphite,Elasticsearch,CloudWatch,InfluxDB,OpenTSDB,Prometheus,MySQL,Postgres,Microsoft SQL Server (MSSQL)。
这里介绍下在 Mac 环境下,使用 MySQL 作为数据源时,搭建 Grafana 的流程。
安装并启动 Mysql
从官网下载 dmg 安装包:https://dev.mysql.com/downloads/mysql/
注意安装过程中保存这个密码,这是首次登陆 mysql 时的 root 密码:
从 Mac 的系统偏好设置打开 Mysql,如下图,点击 Start MySQL Server 就启动了 Mysql。
打开终端,用命令行操作 Mysql,首先登陆,密码就是安装过程中显示的那个密码:
mysql -u root -p
登陆之后首先要修改密码,否则执行 sql 命令都会失败:
SET PASSWORD = PASSWORD('123456');
接下来创建给 Grafana 作为数据源的 database 和 table,table 包括两列,time 作为横轴数据,counter 作为纵轴数据:
CREATE DATABASE grafana;
USE grafana;
CREATE TABLE counter_table (time DATETIME, counter INT);
写入一些测试数据:
INSERT INTO counter_table (time, counter) VALUES ('2018-10-27 09:00:00', 5);
INSERT INTO counter_table (time, counter) VALUES ('2018-10-27 10:00:00', 1);
INSERT INTO counter_table (time, counter) VALUES ('2018-10-27 11:00:00', 10);
安装并启动 Grafana
brew update
brew install grafana
brew tap homebrew/services
brew services start grafana
浏览器设置 Grafana
通过浏览器打开:http://localhost:3000/,首先设置 Data Sources,按如下图所示设置即可:
然后新建一个 Graph 类型的 dashboard,点击 Panel Title,从列表中选择 Edit:
接下来将 Data Source 设置成上面给 Data Source 起的名字,并设置 sql 语句:
SELECT
UNIX_TIMESTAMP(time) as time_sec,
counter as value,
'counter' as metric
FROM counter_table
WHERE $__timeFilter(time)
ORDER BY time ASC
最后调整好时间范围,mysql 的数据就展示在了报表上了:
最终的显示效果: