JSON数据源针对任意后端执行JSON请求。Grafana虽然支持很多数据源,但是有一些特殊的数据处理没办法实现,JSON数据源使得我们更加灵活的组装我们想要的数据。使Grafana不在有数据源的限制,更加灵活。
官网地址:https://grafana.com/grafana/plugins/simpod-json-datasource/
github地址:https://github.com/simPod/GrafanaJsonDatasource
一、安装
1、本地安装,针对通过二进制方式安装的Grafana。
grafana-cli plugins install simpod-json-datasource
【注意】mac在安装完成之后直接重启grafana即可。centos、redhat安装后,执行上面的插件安装命令重启后,看不到新的数据源。因为这个插件安装后的默认位置是/var/lib/grafana/plugins,需要手动将这个插件复制到安装目录的/plugins目录下。因为配置文件中指定了插件的位置,或者将配置文件中插件的位置修改为/var/lib/grafana/plugins。

2、Docker安装
# 进入grafana
docker exec -it grafana bash
# 安装插件
grafana-cli plugins install simpod-json-datasource
# 退出docker
exit
# 将docker中的插件拷贝到宿主机的插件目录下,因为docker启动挂载了宿主机目录
docker cp grafana:/var/lib/grafana/plugins/simpod-json-datasource /Users/guanxin/tools/grafana/plugins
# 查询docker信息
docker ps
# 重启
docker restart <container_id_or_name>
二、添加数据源
登录Grafana,按照一下目录:Home > Connections > Add new connections > JSON

三、接口开发
接口的相关的请求参数和返回参数格式参考官方文档和openapi.yaml文件,地址如下:
https://github.com/simPod/GrafanaJsonDatasource/blob/0.6.x/openapi.yaml
完成 GET / 接口后,点击数据源Save & Test,提示DataSource is working

以下GrafanaController.java的地址要在gateway服务添加放行路由,项目中用的Sa-Token权限认证框架,所以要在网关服务的SaTokenConfigure.java类中添加"/**/grafana/ds/json/**"路由,具体如下图:

GrafanaController.java
@RestController
@RequestMapping(value = "/grafana")
@Api(tags = {"Grafana"})
public class GrafanaController {
@Autowired
private GrafanaJsonDsService grafanaJsonDsService;
@GetMapping(value = "/ds/json/")
@ApiOperation(value = "测试连接", httpMethod = "GET")
public Result testConnect() {
return Result.success();
}
@PostMapping(value = "/ds/json/metrics")
@ApiOperation(value = "指标", httpMethod = "POST")
public JSONArray getMetrics() {
return grafanaJsonDsService.getMetrics();
}
@PostMapping(value = "/ds/json/metric-payload-options")
@ApiOperation(value = "度量有效载荷选项", httpMethod = "POST")
public JSONArray getPayloadOptions() {
return grafanaJsonDsService.getP

最低0.47元/天 解锁文章
5060

被折叠的 条评论
为什么被折叠?



