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模式,手动灵活修改。

文章知识点与官方知识档案匹配,可进一步学习相关知识

[转帖]Grafana连接oracle数据库插件的更多相关文章

  1. 利用Navicat Premium连接Oracle数据库

    利用Navicat Premium连接Oracle数据库 Navicat premium是一款数据库管理工具,支持多种数据库,也非常轻量: 安装包准备:Navicat Premium_11.1.8简体 ...

  2. Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库

    Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...

  3. java连接Oracle数据库

    Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...

  4. 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题

    起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...

  5. NodeJs连接Oracle数据库

    nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...

  6. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  7. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  8. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  9. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  10. [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下

    一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...

随机推荐

  1. Redis 打怪升级进阶成神之路(2023 最新版)!

    前面我们学习:MySQL 打怪升级进阶成神之路(2023 最新版)!,然后我们就开始了 NoSQL 卷王之路.从第一篇文章开始,我们逐步详细介绍了 Redis 基础理论与安装配置.9 种数据类型和应用 ...

  2. 永久免费!国产操作系统 Deepin V20 Beta版发布(附安装教程)

    深度操作系统(DEEPIN)是武汉深之度科技有限公司致力于为全球用户提供美观易用.安全可靠的Linux发行版.经过一段时间的测试,这款操作系统的Beta版终于今天和大家见面了.这次Deepin v20 ...

  3. 用Roslyn玩转代码之一: 解析与执行字符串表达式

      最近框架中的可视化界面设计需要使用到表达式引擎(解析代码字符串并动态执行),之前旧框架的实现是将表达式字符串解析为语法树后解释执行该表达式,本文介绍如何使用Roslyn解析表达式字符串,并直接转换 ...

  4. 微短剧市场暴涨267.65%,用微短剧场景AUI Kit精巧入局

    微短剧,不仅上头,更要上心. 微短剧,深度"拿捏"了这个碎片化时代,也是刚过去的2023年绕不开的热词. 与传统影视剧制作精益求精.耗时长相反,门槛与耗时"双低" ...

  5. 原理一、Java中的HashMap的实现

    文章从JDK1.7和JDK1.8两个版本解析HashMap的实现原理及其中常见的面试题(两个版本HashMap最大的区别,1.7版HashMap=数组+链表,1.8版HashMap=数组+红黑树+链表 ...

  6. 让 AI “潜入”物流中心,你的快递很快就到!

    摘要:华为利用数字化.智能化的手段从传统物流运营转升成为专业智慧物流,在那些"看不见的地方"华为正在默默耕耘. 网购已经成为了新时代下的"日常",于是每年的「6 ...

  7. 使用Mask R-CNN模型实现人体关键节点标注

    摘要:在本案例中,我们将展示如何对基础的Mask R-CNN进行扩展,完成人体关键节点标注的任务. 本文分享自华为云社区<使用Mask R-CNN模型实现人体关键节点标注>,作者: 运气男 ...

  8. hadoop fs,hadoop dfs以及hdfs dfs区别

    1.hadoop dfs 专门针对hdfs系统 2.hdfs dfs 和hadoop dfs,当使用hadoop dfs时会被转为hdfs dfs命令 3.hadoop fs 范围更广

  9. 以平安银行“智能化银行3.0”实践,看火山引擎DataTester如何助推金融行业数智化进程

    作者:DataTester   银行业正在进入一场围绕客户为中心的新革命时期.流量红利逐渐消失,银行零售进入存量客户精细化经营时代:"互联网+"给金融带来更多的场景,智能化成为零售 ...

  10. Spring Boot CMD 运行日志输出中文乱码

    Spring Boot 在Windows CMD 中运行,日志输出中文乱码name="CONSOLE" 设置成 charset utf-8 ,在windows cmd 中运行时,l ...