背景
目前我们已经使用 TDengine 存储了大量的数据,这些数据一般要求以各种方式呈现给用户或者统计后传给上层业务。作为一款时序数据库,非常适合存储结构化的日志数据,类似于 InfluxDB , TDengine 可以方便地与 Grafana 进行集成,整个过程无需任何代码开发, TDengine 中数据表的内容可以在仪表盘上进行可视化展现。这次我们先以 TDengine 自行记录的日志以及官方提供的 tdengine-grafana.json 数据屏来演示。
Note: TDengine 2.1.2.0 服务运行在 CentOS7 虚拟机上, Grafana 6.2.5 安装在 Windows 操作系统(Win10)上。
先看下效果
TDengine的Grafana插件
- 添加插件
将
TDengine的Grafana插件/usr/local/taos/connector/grafanaplugin目录拷贝到D:\Applications\grafana-6.2.5\data\plugins\tdengine目录
- 启动Grafana
双击 D:\Applications\grafana-6.2.5\bin\grafana-server.exe 。
配置使用TDengine数据源
导入Dashboard
导入插件目录下的 tdengine-grafana.json : D:\Applications\grafana-6.2.5\data\plugins\tdengine\dashboard\tdengine-grafana.json
TDengine的日志在Grafana中展示时用到的SQL
-- req_select
select sum(req_select) from log.dn where ts >= now-1h and ts < now interval(1m)
-- req_insert
select sum(req_insert) from log.dn where ts >= now-1h and ts < now interval(1m)
-- mem_taosd
select max(mem_taosd) from log.dn where ts >= now -10m and ts < now
-- mem_system
select max(mem_system) from log.dn where ts >= now -10h and ts < now
-- band_speed
select avg(band_speed) from log.dn where ts >= now-1h and ts < now interval(1m)
-- cpu_system11
select avg(cpu_system) from log.dn where ts >= now-1h and ts < now interval(1s)
-- cpu_taosd
select avg(cpu_taosd) from log.dn where ts >= now-1h and ts < now interval(1s)
-- avg_disk_used
select avg(disk_used) disk_used from log.dn where ts >= '2021-07-29T01:01:46.744Z' and ts < '2021-07-29T02:01:46.744Z' interval(1s) group by fqdn
遇到的问题
在上一步的 导入Dashboard 中,浏览器报错:
解决方法:通过源码仓库的Issues查到了类似的问题,使用更新后的 tdengine-grafana.json 导入即可。
Reference
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!
本文已参与「新人创作礼」活动,一起开启掘金创作之路。