Grafana插件—simpod-json-datasource的安装及使用

需求:grafana中的dashboard的metric需要根据不同的参数进行逻辑处理后获取可选项
在这里插入图片描述

如:不同的用户访问该dashboard,某指标需要根据该用户信息,返回不同的可选项。
这里,我们就需要simpod-json-datasource这一插件来帮助实现。

1. 安装simpod-json-datasource

1.1 本地安装

本地安装十分简单,只需要使用grafana-cli工具,运行

grafana-cli plugins install simpod-json-datasource

然后,需要重新启动grafana。
mac安装直接执行上面的命令后,重启即可。
centos、redhat安装后,执行上面的插件安装命令重启后,看不到新的数据源。因为这个插件安装后的默认位置是 /var/lib/grafana/plugins,需要手动将这个插件复制到./grafana-7.2.0/data/plugins目录下,因为defaults.ini配置文件中指定了插件读取的位置。或将配置文件中的位置修改为/var/lib/grafana/plugins。

1.2 使用Dockerfile安装

如果是二次开发grafana,将插件安装到镜像中:
cd 到 /packaging/docker/custom路径下,使用该路径下的Dockerfile构建镜像。

docker build \                                                      
  --build-arg "GRAFANA_VERSION=latest" \
  --build-arg "GF_INSTALL_PLUGINS=simpod-json-datasource" \
  -t grafana:grafana -f Dockerfile .

如果需要在二次开发的代码基础上安装插件,可以将使用/Dockerfile构建的镜像tag成grafana/grafana:latest,或者将 /packaging/docker/custom下的dockerfile的基础镜像改成使用/Dockerfile构建好的镜像,在此基础上执行上述docker build命令,在镜像中安装插件。

1.3 签名

安装成功后,你可以在plugins列表中看到json插件
在这里插入图片描述

由于该插件未签名,需要在配置文件中添加

[plugins]
allow_loading_unsigned_plugins = simpod-json-datasource

这样,虽然没有签名也可以允许使用了。

2. 获取指标

2.1 接口开发

simpod-json-datasource插件需要后端实现4个接口,以实现不同的功能。
在这里插入图片描述

这里实现//search接口,/接口返回{"success":true}即可,用于test接口是否可以使用;/search接口返回list即可,用于dashboard中metric的可选项。
grafana会将variable中的query参数封装为"target":"$query"作为body传给/search接口(后文也会解释),所以这个接口应该首先解析出target后面的内容作为参数。
示例代码如下:

@RequestMapping(value = "/**", method = RequestMethod.GET) public Object checkDataSource() throws Exception {
        Map<String, Object> body = new HashMap<>();
        body.put("success", true);
        return successReturn(body);
    }
    
 @RequestMapping(value = "/search", method = RequestMethod.POST) public List<String> searchProjectIds(@RequestBody JSONObject request)
            throws IOException {
        String url = SafeFastJsonUtil.getString(request, "target");
        String method = url.substring(0, url.indexOf("?"));
        if ("getProjectId".equals(method)) {
            String accountId = url.substring(url.indexOf("accountId=") + "accountId=".length(), url.indexOf("&"));
            String tenantName = url.substring(url.indexOf("tenantId=") + "tenantId=".length());
            String tenantId = tenantName.substring(tenantName.lastIndexOf("-") + 1);
            if (accountId.isEmpty() || tenantId.isEmpty()) {
                return new ArrayList<>();
            }
            return extendGrafanaDataSourceService.getProjectIds(accountId, tenantId);
        } else if ("getTenantId".equals(method)) {
            String accountId = url.substring(url.indexOf("accountId=") + "accountId=".length());
            if (accountId.isEmpty()) {
                return new ArrayList<>();
            }
            return extendGrafanaDataSourceService.getTenantIds(accountId);
        }
        return null;
    }

/search接口中,我将body中的参数解析出来,并返回一个list列表。

2.2 配置数据源

将接口部署好后,新建一个JSON类型的datasource,url即为部署好的接口("/"接口即可),save&test。
在这里插入图片描述

2.3 配置Variables

在dashboard的设置中,新建Variables,选择刚刚配置好的Data source。
在这里插入图片描述
这里grafana会先去get这个Data source,获取后端接口,然后将query里的值作为body发起post请求,获取结果。上图中就是将getTenantId?accountId=$account_id包装成"target":"getTenantId?accountId=$account_id"发给后端。
然后,update一下就可以看到接口的返回值。
保存一下dashboard,就完成这个需求啦。

3. 避坑必看

在安装json插件的过程中,我本来是基于grafana-v7.1.0版本进行开发,按上述流程制作镜像。结果页面前端一直报错"Datasource named JSO8N was not found"。调试很久找不到问题出在哪。于是将代码版本升到v7.3.5,问题解决。(真是太坑了。)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 Grafana 的第三方grafana-oracle-datasource,可以按照以下步骤进行: 1. 确保你的 Grafana 已经安装并且正在运行。你可以从 Grafana 官方网站下载适用于你的操作系统的安装包,并按照官方文档进行安装和配置。 2. 找到 Grafana 件目录。件目录的位置取决于你的操作系统和安装方式。一般情况下,件目录位于 Grafana 安装目录下的 `data/plugins` 文件夹。 3. 下载件文件。你可以从 Grafana 件市场或者件的 GitHub 仓库中找到 grafana-oracle-datasource 的件文件。通常为一个压缩文件(如 .zip 或 .tar.gz)。 4. 解压缩件文件。将件文件解压缩到步骤 2 中找到的件目录中。 5. 重启 Grafana 服务。在安装件后,需要重启 Grafana 服务以使件生效。具体重启方式取决于你的操作系统和安装方式。 6. 登录 Grafana 管理界面。在浏览器中访问 Grafana 的 URL,并使用管理员账号登录。 7. 配置数据源。在左侧导航栏中选择 "Configuration",然后点击 "Data Sources"。在数据源页面中,点击右上角的 "Add data source" 按钮。 8. 选择 Oracle 数据源。在弹出的添加数据源页面中,选择 "Oracle" 作为数据库类型。 9. 配置连接信息。根据实际情况填写 Oracle 数据库的连接信息,包括主机名、端口号、数据库名称、用户名和密码。 10. 保存数据源配置。在页面底部点击 "Save & Test" 按钮,以保存数据源配置并测试连接。 完成上述步骤后,你就成功安装和配置了 grafana-oracle-datasource 件,并可以在 Grafana使用 Oracle 数据库作为数据源了。你可以创建仪表盘和查询语句来展示和分析 Oracle 数据库中的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值