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. Kernel Memory 中使用 PaddleSharp OCR

    Kernel Memory 中使用 PaddleSharp OCR Kernel Memory 中进行文档处理的时候可以上传图片作为文档,这时候就需要使用到 OCR 技术来识别图片中的文字. 官方默认 ...

  2. [Luogu 4998 信号塔] 题解报告

    估计没人看的简化版题意: 给定一个数轴,以及数轴上的 \(n\) 个点(这些点可能坐落在同一坐标上),第 \(i\) 个点的坐标为 \(a_i\) .现在要在数轴上找 \(k\) 个点,第 \(i\) ...

  3. 一些JavaSE学习过程中的思路整理(二)(主观性强,持续更新中...)

    目录 一些JavaSE学习过程中的思路整理(二)(主观性强,持续更新中...) 将一个子类的引用对象赋值给超类的对象(多态) 抽象方法和抽象类 简单概括以下包装器类的作用 面向接口编程时的一些细节 f ...

  4. Windows10 Docker安装详细教程

    前言: 在上一章节已经成功的在Linux CentOS 8.4远程服务器中安装了Docker,下面让我们一起来试试如何在Windows10中安装Docker并运行起来.有人说你既然在Linxu环境中安 ...

  5. 3个轻量级物联网新品实验,带您深度体验IoT开发

    摘要:一键创建实验环境,开发者通过实验手册指导,快速体验华为云IoT服务,在云端即可实现云服务的实践.调测和验证等开发流程. 本文分享自华为云社区<物联网云上实验上新,带您深度体验华为云IoT服 ...

  6. 实例讲解将Graph Explorer搬上JupyterLab

    摘要:基于 Graph Explorer 在 Jupyter 上进行图探索,可以大大降低编码成本,丰富 JupyterLab 的数据表现力. 本文分享自华为云社区<将 Graph Explore ...

  7. JVM面试必问:G1垃圾回收器

    摘要:G1垃圾回收器是一款主要面向服务端应用的垃圾收集器. 本文分享自华为云社区<JVM面试高频考点:由浅入深带你了解G1垃圾回收器!!!>,原文作者:Code皮皮虾 . G1垃圾回收器介 ...

  8. 面对 Log4j2 漏洞,安全人都做了什么?

    摘要:本文从漏洞复现.漏洞防护.漏洞检测.软件供应链安全等方面,介绍安全人针对该漏洞做的尝试. 本文分享自华为云社区<面对 Log4j2 漏洞,安全人都做了什么?>,作者:maijun. ...

  9. 一文带你了解什么是GitOps

    摘要:说起GitOps,可能很多朋友马上会联想到DevOps,那么GitOps和DevOps之间有什么关系.又有什么区别呢? 本文分享自华为云社区<浅谈GitOps>,作者: 敏捷的小智. ...

  10. 利用 Solon-web 框架写一个 Hello World

    Solon 项目的开源地址: https://gitee.com/noear/solon 最近看了不少别人写的各种框架的 Hello world 示例,有些看起来,真的很复杂. 今天,我们用号称简单到 ...