系统集成

Grafana-IoTDB

Grafana是开源的指标量监测和可视化工具,可用于展示时序数据和应用程序运行分析。Grafana支持Graphite,InfluxDB等国际主流时序数据库作为数据源。在IoTDB项目中,我们开发了Grafana展现IoTDB中时序数据的连接器IoTDB-Grafana,为您提供使用Grafana展示IoTDB数据库中的时序数据的可视化方法。

Grafana的安装与部署

安装

simple-json-datasource数据源插件安装

具体下载方法是:到Grafana的插件目录中:{Grafana文件目录}\data\plugins\(Windows系统,启动Grafana后会自动创建data\plugins目录)或/var/lib/grafana/plugins (Linux系统,plugins目录需要手动创建)或/usr/local/var/lib/grafana/plugins(MacOS系统,具体位置参看使用brew install安装Grafana后命令行给出的位置提示。

执行下面的命令:

  1. Shell > git clone https://github.com/grafana/simple-json-datasource.git

然后重启Grafana服务器,在浏览器中登录Grafana,在“Add data source”页面中“Type”选项出现“SimpleJson”即为安装成功。

启动Grafana

进入Grafana的安装目录,使用以下命令启动Grafana:

  • Windows系统:
  1. Shell > bin\grafana-server.exe
  • Linux系统:
  1. Shell > sudo service grafana-server start
  • MacOS系统:
  1. Shell > grafana-server --config=/usr/local/etc/grafana/grafana.ini --homepath /usr/local/share/grafana cfg:default.paths.logs=/usr/local/var/log/grafana cfg:default.paths.data=/usr/local/var/lib/grafana cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins

更多安装详情,请点这里Grafana-IoTDB - 图1 (opens new window)

IoTDB安装

参见https://github.com/apache/iotdbGrafana-IoTDB - 图2 (opens new window)

Grafana-IoTDB连接器安装

  1. git clone https://github.com/apache/iotdb.git

启动Grafana-IoTDB

  • 方案一(适合开发者)

导入整个项目,maven依赖安装完后,直接运行iotdb/grafana/rc/main/java/org/apache/iotdb/web/grafana目录下TsfileWebDemoApplication.java,这个grafana连接器采用springboot开发

  • 方案二(适合使用者)
  1. cd iotdb
  2. mvn clean package -pl grafana -am -Dmaven.test.skip=true
  3. cd grafana/target
  4. java -jar iotdb-grafana-{version}.war
  5. . ____ _ __ _ _
  6. /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
  7. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  8. \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  9. ' |____| .__|_| |_|_| |_\__, | / / / /
  10. =========|_|==============|___/=/_/_/_/
  11. :: Spring Boot :: (v1.5.4.RELEASE)
  12. ...

如果您需要配置属性,将grafana/src/main/resources/application.properties移动到war包同级目录下(grafana/target

使用Grafana

Grafana以网页的dashboard形式为您展示数据,在使用时请您打开浏览器,访问http://<ip>:<port&gt;

默认地址为http://localhost:3000/

注:IP为您的Grafana所在的服务器IP,Port为Grafana的运行端口(默认3000)。默认登录的用户名和密码都是“admin”。

添加IoTDB数据源

点击左上角的“Grafana”图标,选择Data Source选项,然后再点击Add data sourceGrafana-IoTDB - 图3

在编辑数据源的时候,Type一栏选择SimplejsonURL一栏填写http://<ip>:<port>,IP为您的IoTDB-Grafana连接器所在的服务器IP,Port为运行端口(默认8888)。之后确保IoTDB已经启动,点击“Save & Test”,出现“Data Source is working”提示表示配置成功。 Grafana-IoTDB - 图4

操作Grafana

进入Grafana可视化页面后,可以选择添加时间序列,如下图。您也可以按照Grafana官方文档进行相应的操作,详情可参看Grafana官方文档:http://docs.grafana.org/guides/getting\_started/。

Grafana-IoTDB - 图5

配置grafana

  1. # IoTDB的IP和端口
  2. spring.datasource.url=jdbc:iotdb://127.0.0.1:6667/
  3. spring.datasource.username=root
  4. spring.datasource.password=root
  5. spring.datasource.driver-class-name=org.apache.iotdb.jdbc.IoTDBDriver
  6. server.port=8888
  7. # Use this value to set timestamp precision as "ms", "us" or "ns", which must to be same with the timestamp
  8. # precision of Apache IoTDB engine.
  9. timestamp_precision=ms
  10. # 是否开启降采样
  11. isDownSampling=true
  12. # 默认采样interval
  13. interval=1m
  14. # 用于对连续数据(int, long, float, double)进行降采样的聚合函数
  15. # COUNT, FIRST_VALUE, LAST_VALUE, MAX_TIME, MAX_VALUE, AVG, MIN_TIME, MIN_VALUE, NOW, SUM
  16. continuous_data_function=AVG
  17. # 用于对离散数据(boolean, string)进行降采样的聚合函数
  18. # COUNT, FIRST_VALUE, LAST_VALUE, MAX_TIME, MIN_TIME, NOW
  19. discrete_data_function=LAST_VALUE

其中interval具体配置信息如下

<1h: no sampling

1h~1d : intervals = 1m

1d~30d:intervals = 1h

>30d:intervals = 1d

配置完后,请重新运行war包

  1. java -jar iotdb-grafana-{version}.war