数据源插件分享 - 时序数据库 InfluxDB

前言

InfluxDB 是一个时序数据库,使用的是非标准的 SQL 语法,我使用 DataEase 的插件扩展机制开发了此数据源插件,放到论坛里共享出来,想用的朋友可以下载安装使用。

插件包下载地址

链接: 百度网盘 请输入提取码
提取码: 0ate

使用说明

1 前提条件
本插件基于 InfluxDB 1.8 版本开发,InfluxDB 2.X 不支持,链接 InfluxDB 数据库之前,请收集以下信息:

  • 数据库服务器的 IP 地址和端口号
  • 数据库用户名和密码
  • 数据库名称

2 上传数据源插件
在【系统管理】插件管理安装插件,上传下载好的 influxdb.zip 文件。

安装成功后,在插件管理列表多一条记录,同时新建插件的类型选项也会多出一种类型。

提示: 如果页面没显示新的数据源插件类型,请清除浏览器缓存重新登录。

3 配置数据源链接步骤
步骤一:登入 DataEase 系统。
步骤二:按照以下步骤,选择 InfluxDB 图标。

步骤三:填入收集的 IP 、端口、数据库等相关的信息。

详细说明信息如下:

基础属性 说明
显示名称 数据源界面左侧列表中的显示名称
描述 填写与此数据源相关的一些附属说明信息
驱动 此字段为数据源插件默认字段,对 InfluxDB 数据源无意义
主机名/IP 地址 填写数据库所在服务器的 IP 地址
端口 填写正确的端口,默认为 8086
用户名 数据库对应的用户名
密码 数据库对应的密码
数据库 连接的数据库的名称

步骤四:数据源检验,校验成功后如下图所示,点击保存即可。

功能支持

序号 InfluxDB 测试项 状态 备注
1 数据源添加 正常
2 数据源更新 正常
3 数据源校验 正常
4 数据源表及字段详情查看 正常
5 数据库数据集 正常
6 数据集预览 正常
7 明细表 正常
8 视图自定义排序 正常
9 数值格式切换 正常
10 文本下拉筛选 正常
11 文本搜索 正常
12 数值区间筛选 正常
13 日期筛选 正常
14 日期范围筛选 正常
15 查询按钮 正常
16 清空按钮 正常
17 记录数统计条目数 正常 InfluxDB 不能用 count() 进行计数,count() 会对每个 field 字段单独计数,此处加了特殊处理,获取到某个 field 字段进行计数:count(field)
18 指标卡 正常
19 行权限配置(企业版功能) 正常
20 列权限配置(企业版功能) 正常
21 SQL 数据集 1、必须符合 InfluxDB 的查询语法规则 2、不支持查询 time 字段,查询 time 字段时会提示“存在重复字段,请修改后重试” 3、不支持使用 order by time desc 使用 order by time desc 保存后,预览数据时默认查询前 1000 条数据会自动嵌套一层,拼接后的这个 SQL 拿到 influxdb 执行是不支持的,因为这个 order by time desc 和嵌套的 limit 1000 默认方向存在不一致的冲突。
22 SQL 数据集变量传参 使用标准 SQL 语法格式时支持 设置 SQL 参数变量的同时设置 group by time(30d) 等非标准 SQL 语法格式时不支持
23 字段管理修改字段类型 支持数值格式、文本格式转换,不支持时间类型转换 数据库限制
24 视图字段排序 1、支持时间 time 字段 和 field 字段排序 2、仅支持对一个字段进行排序,且对 field 字段排序时不支持选择“全部” 数据库限制
25 汇总表 添加 time 做维度时,指标里必须添加值 influxdb 按时间分组时,要求查询的值中必须至少存在一个聚合函数才行,所以添加 time 做维度时,指标里必须添加值
26 视图下钻 不支持明细表时间字段下钻 不支持将时间按值过滤,类似下面这样是不支持的SELECT sum(iOpsRead::float) AS f_ay_0 FROM cloud_disk_metric WHERE (time =~/^2023-04-06T00:00:00Z$/) GROUP BY time(1d),accountId
27 视图联动 1、支持 tag 字段和 time 字段的联动设置2、不支持对 field 字段进行关联的联动设置 数据库限制
28 折线/面积图 1、折线或面积图不添加指标也会异常,查询中必须含有 field 字段,否则没有数据返回 2、排序存在限制 数据库限制
29 堆叠折线图 排序存在限制 数据库限制
30 柱状图&饼图 排序存在限制 数据库限制
31 视图指标汇总方式 不支持标准差、方差、去重计数 数据库限制
32 漏斗/环形图 排序存在限制 数据库限制
33 散点图 排序存在限制 数据库限制
34 视图过滤字段(时间、数值、文本) 不支持利用转换类型后的字段进行过滤 数据库限制
35 关联数据集 不支持 数据库限制
36 定时同步 不支持
37 新建计算字段 不支持 数据库限制
38 视图日期格式切换 不支持 数据库限制
39 过滤组件排序 不支持 数据库限制
40 数值下拉、数字列表筛选 不支持 数据库限制

源码地址

https://github.com/ZhaoQian1222/dataease-extensions.git
此仓库是由 DateEase 官方插件仓库 fork 的仓库,从 dev 分支迁出了新的分支,开发了 InfluxDB 数据源插件。
如果你想对此插件进行进一步的优化或修改,可 clone 此插件源码进行修改,代码分支是pr@dev@influxdb_datasource_plugin,开发相关问题可参考 DataEase 官方文档:

厉害了,新数据源插件。

赞!可以分析自己的监控数据了!感谢分享! :+1:

厉害厉害,之前就想要influxDB数据源的

您开发的原工程可以开放出来。官方的插件开发工程制作新的数据源加载,Driver driverClass = (Driver) jdbcClassLoader.loadClass(driverClassName).newInstance(); 总是报找不到 对应类型“XXX.XXX.JDBC.XXXDriver”

这不得点这个赞 :laughing:

源码在这:
North-CS/dataease-extensions: DataEase 插件 (github.com)

重启dataease以后保存
No bean named ‘influxdbDsProvider’ available

导致之前配的图表全部访问不了。。。这个错误有办法解决吗?

升级后会出现这种情况,需要修改下数据库,将数据库 my_plygin 表中此插件对应行的 version 修改为实际插件的版本号即可。