grafana免费连接Oracle/MongoDB——simpod-json-datasource

一、简介

grafana官方提供的Oracle、MongoDB插件都需要付费使用。

在需求促使下,我发现了一个官方提供的可以白嫖的simpod-json-datasource。

JSON plugin for Grafana | Grafana Labs

这款插件允许自定义数据源,我们只需要提供接口,并按数据库数据按规定格式响应,即可将数据传给grafana。

二、实现

1、下载grafana

官网网址:

Download Grafana | Grafana Labs

国内镜像:

Index of grafana-local

2、安装插件

下载zip后解压

在bin目录下cmd

运行

 grafana-cli plugins install simpod-json-datasource

 3、运行grafana

双击grafana-server.exe

没有报错一般就是成功

从网页进入grafana,端口默认是3000,用户名密码默认admin/admin

4、运行接口实现项目

从本文中下载我写的Springboot项目(如果下载积分涨了,有需求的可以私信我)

修改数据库连接信息

启动我的Springboot项目

5、创建DataSource

URL是Springboot项目的控制器请求地址,配置下面几项后,点击save & test

保存成功,oracle同理

6、使用dashboard

创建

6.1先说明相对简单的oracle

在这里输入sql

不同的图表对sql有不同的要求,以time series为例,第一个字段应该是y轴的数字值,第二个字段需要是时间值,数据线别名则需要另穿一个metric字段

$__to和$__from变量是grafana的自带的全局变量,指开始时间和结束时间,由于会传一个时间戳,所以sql语句里需要转换为日期类型

6.2MongoDb

mongodb界面和oracle一样。

暂时只支持aggregate查询,这里要注意$_from和$_to和上面oracle的不一样。oracle的$__from和$__to有两个“_”符号,是官方自带的变了。而Mongo的$_from和$_to只有一个“_”,这是因为mongodb的解析起来比较特殊,$_from是我代码里定义的解析变量,有兴趣的可以看看我的潦草代码。

db.coll1.aggregate([
    {
        "$match": {
            "create_time": {
                "$gte": "$_from",
                "$lt": "$_to"
            }
        }
    },
    {
        "$project": {
            "_id": 0,
            "value": { "$toDouble": "$count" },
            "time": "$create_time",
            "metric": "游戏去试次数"
        }
    }
], { "allowDiskUse": true })

7、查看报错

在控制台或者Query inspector中可以查看报错信息

8、原理

 简单说明,我的项目其实是grafana和数据库之间的数据中转站,grafana向我的服务器传递sql,接收到sql后,我的服务器再使用这条数据库查询对应的数据库(查询不同数据库可以用不同的url),再把查询到的数据按规范格式响应给garafana,最后grafana显示这些数据。

官方教程:

JSON plugin for Grafana | Grafana Labs

注:不同版本的请求内容不尽相同,实际可以用浏览器开发者工具中的网络捕获查看具体请求内容。

9、结语

这套方案的扩展性很好,后续可以拓展其他grafana付费数据源。但Springboot项目里有很多局限性没有解决,比如报错信息查看不方便,mongodb查询语句复杂,代码缺少注释等等,同道可自行优化。

<think>嗯,用户想在自己的电脑上本地部署这个Gitee上的KTG-MES项目,但他自称是小白,可能需要非常详细的步骤指导。首先,我需要确定这个项目是用什么技术栈开发的,可能需要查看项目的README文件或者文档。不过用户提供的链接无法直接访问,所以我得基于常见的情况来推测。 MES系统通常可能使用Java、Python或者.NET等技术,后端可能用Spring Boot、Django等框架,前端可能是Vue、React或Angular。数据库可能是MySQL、PostgreSQL或者MongoDB。所以,用户需要安装相应的运行环境和依赖。 接下来,用户需要克隆代码库到本地。可能需要安装Git,并配置好。然后检查项目结构,看是否有pom.xml(Maven)、package.json(Node.js)或者requirements.txt(Python)等文件,以确定如何安装依赖。 数据库方面,可能需要创建数据库并导入SQL脚本。用户可能需要安装MySQL或其他数据库,并执行初始化脚本。此外,配置文件可能需要修改,比如数据库连接信息、端口设置等。 然后,启动后端服务和前端服务。如果是前后端分离的项目,可能需要分别进入各自的目录,安装依赖并运行启动命令。例如,后端用Spring Boot的mvn spring-boot:run,前端用npm run serve。 可能遇到的问题包括环境变量配置错误、依赖安装失败、端口冲突、数据库连接问题等。需要提醒用户注意查看日志,逐步排查错误。 另外,用户可能需要了解基本的命令行操作,比如如何进入目录,运行命令。对于小白来说,可能需要详细说明每个步骤,甚至包括如何安装Git、JDK、Node.js等工具。 可能还需要检查项目是否有详细的部署文档,如果没有,可能需要用户自己根据项目结构推断。或者建议用户联系项目维护者获取帮助,或者在Issues中查找类似问题。 最后,确保所有步骤都正确,服务成功启动后,访问本地地址进行测试。如果有错误,根据日志信息进行调试,可能需要安装缺失的库或调整配置。</think>以下是为小白整理的KTG-MES本地部署步骤指南: --- ### 一、基础环境准备 1. **安装Git** - 官网下载:https://git-scm.com/ - 安装后验证: ```bash git --version ``` 2. **安装Java环境**(以JDK8为例) - 官网下载:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html - 配置环境变量(参考安装界面指引) 3. **安装MySQL数据库** - 官网下载:https://dev.mysql.com/downloads/mysql/ - 记住设置的root账户密码 4. **安装Maven**(Java项目构建工具) - 官网下载:https://maven.apache.org/download.cgi - 配置环境变量`MAVEN_HOME` --- ### 二、项目获取与配置 1. **克隆代码仓库** ```bash git clone https://gitee.com/kutangguo/ktg-mes.git ``` 2. **数据库配置** - 创建新数据库(假设命名为`ktgmes`) - 执行项目中的SQL脚本(一般在`/sql`目录下) 3. **修改配置文件** - 找到`application.yml`或`application.properties` - 修改数据库连接信息: ```yaml spring.datasource.url=jdbc:mysql://localhost:3306/ktgmes spring.datasource.username=root spring.datasource.password=你的密码 ``` --- ### 三、项目构建与启动 1. **安装依赖** ```bash cd ktg-mes mvn clean install ``` 2. **启动后端服务** ```bash mvn spring-boot:run ``` 3. **前端部署**(如果包含前端) - 安装Node.js:https://nodejs.org/ - 进入前端目录: ```bash cd frontend npm install npm run dev ``` --- ### 四、访问验证 1. 浏览器访问: - 后端接口:http://localhost:8080 - 前端界面:http://localhost:3000(端口根据实际配置可能不同) --- ### 五、常见问题处理 1. **端口冲突** - 修改`application.yml`中的`server.port` 2. **依赖下载失败** - 尝试更换Maven镜像源: ```xml <!-- 修改maven/conf/settings.xml --> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> ``` 3. **数据库连接失败** - 检查MySQL服务是否启动 - 验证用户名密码是否正确 - 确认是否有远程访问权限 --- ### 六、学习建议 1. 仔细阅读项目中的`README.md`文档 2. 使用Postman测试API接口 3. 通过查看控制台日志定位问题 4. 建议先使用测试账号登录(查看项目文档是否有说明) 如果遇到具体报错信息,可以提供截图或日志内容,我可以进一步帮助分析问题原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值