Grafana连接oracle数据库插件

Granfana作为前端监控显示程序提供了迅速图形化查看数据库数据的方式。虽然官网提供了部分免费数据库插件,但毕竟太少,最近需要在Oracle数据库上做项目,发现官方的oracle插件是收费的,几经周折找到一个免费插件simpod-json-datasorce(下载地址https://storage.googleapis.com/plugins-community/simpod-json-datasource/release/0.6.2/simpod-json-datasource-0.6.2.zip),在simpod插件基础上,编写后端程序实现了Grafana与oracle数据库的连接。

配置方法:

1.安装grafana,将simpod-json-datasorce插件解压到grafana安装目录的plugins-bundled目录下

 

 2.将target目录下的sp-0.0.1-SNAPSHOT.war,复制到tomcat项目文件夹下,程序会自动解压。正常情况下,下面的URL为:http://locaohost/sp-0.0.1-SNAPSHOT:8080。这个地方tomcat如果配置正常,下面test的时候就能通过。 

3.登录grafana设置数据源,选择others里的JSON数据源。

在数据源设置里,需要设置URL,这个URL为上面tomcat中sp-0.0.1-SNAPSHOT的服务地址,默认应该是http://locaohost/sp-0.0.1-SNAPSHOT:8080,然后点击“save@test",如果测试正常,数据源就保存好了。

 

4.配置oracle数据库,tomcat自动解压项目文件后,找到application.properties文件,进去配置Oracle数据库的url,username和password。该项目是连接的Oracle数据库,熟悉springboot开发的,稍微修改下源码数据源的配置,就可以适应其它数据库。

使用方法:

1.设置好数据源后,添加新panel,进入编辑,在Data source中选择设置的数据源,这里是”JSON“,在下面的Metric中有三个选项,其中sql_express返回时序序列数据,可用time series模版绘制曲线图;table_express返回表格式的数据,可用table模版显示数据表;other_express为保留接口。

 

2.进入sql_express或table_express后,设置payload。在Builder中选择Experimental模式,可以看到from,select,time,where和others四个选项。

3.选择sql_express时,from选择表名,select选项数据列,time指定时间轴的序列名,where设置除时间选择外的其它查询条件,后端程序会根据这些字符串拼接为对应的sql语句,在后端执行查询并返回。

others选项用于设置返回数据格式,如果others为”true",返回的序列为原始数据扣除线性部分的残差,如果others为其它字符串,返回的序列为原始数据,如果others为空,payload中将没有others这个key,可能无法返回数据。

上图中查询名称“A”可以设置返回序列的名称,假如序列名为”value“,就把“A”改为“value"。如果在一个查询中返回多个序列,只需把“A"修改为多个序列名称的拼接,中间用英文”,“分隔,假如返回”v1"和“v2"连个序列,只需把“A"修改为”v1,v2"。程序支持多个查询,对应图中数据序列的名称就是查询的名称。

4.选择table_express时,from选择表名,select选项数据列,如果time指定时间轴的序列名,where设置除时间选择外的其它查询条件,此时界面上的时间设置有效。如果time没有设置时间轴序列,where设置所有查询条件,此时界面上的时间设置将失效。后端程序会根据这些字符串拼接为对应的sql语句,在后端执行查询并返回。

others选项用于设置表头显示名称和表列的数据类型。如果不设置others选项,默认的列名称为SQL语句中的列名,默认所有列返回string类型。如果要设置others选项,格式可查看 simpod-json-datasorce插件目录下的readme.md文件。

如图others输入“[
      {"text":"Time","type":"time"},
      {"text":"Country","type":"string"},
      {"text":"Number","type":"number"}
    ]” 

就设置了Time,Country和Number三个表列,类型分别为time,string,number

5.在设置payload时,也可以在Builder中选择Code模式,此时可以更加灵活地输入json格式的payload数据,缺点是from,select和time都将无法根据数据源自动渲染数据,需要完全手工输入,两种方式可以配合使用,先在Experimental模式下进行基本设置,再转换为Code模式,手动灵活修改。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值