Grafana 获取 api 的数据
最近在做数据质量管理,使用的组件是 Griffin 。在收集到数据后,还是想把数据用起来,比如说自动告警啥的。就想到了能否使用 Grafana 接入 Griffin 的数据,来自动告警,这里简单记录下实验过程。Grafana 接入 api 的数据Grafana 自带的 DataSource plugin(插件)不能接入 api 的数据,需要通过安装额外的插件。去Grafana plugin 的官网
·
最近在做数据质量管理,使用的组件是 Griffin 。在收集到数据后,还是想把数据用起来,比如说自动告警啥的。就想到了能否使用 Grafana 接入 Griffin 的数据,来自动告警,这里简单记录下实验过程。
Grafana 接入 api 的数据
Grafana 自带的 DataSource plugin
(插件)不能接入 api 的数据,需要通过安装额外的插件。去Grafana plugin 的官网上找了几个支持 api 的插件,例如 JSON API、Infinity 、Simple Json,逐个使用下。
安装 plugin
官方文档上都有具体的安装方式,这里推荐使用 grafana-cli 直接安装;
如果通过下载 zip 安装包然后放到 plugin 目录下,可能会出现一些问题。
安装命令类似: grafana-cli plugins install yesoreyeram-infinity-datasource
使用
通过测试上述几个插件,还是发现 JSON API
比较好用,它的 jsonPath 语法支持最全,能取到较细层级的数据。这里简单记录下使用方式。
首推,JSON API官方文档 。
- 在 Grafana 中添加 DataSource,选择 JSON API DataSource,
- 在 Grafana DashBoard 页面,使用上述配置好的数据源,具体的字段取值,使用 jsonpath 直接取即可
Griffin 添加数据暴露接口
我想要暴露 Griffin 中的 job 的执行记录数据,这部分数据 Griffin 提供的 /api/v1/metrics 接口虽然也暴露出来了,但是返回的数据 json 格式根据监控的字段和规则数量不同而动态变化的,现在的 jsonpath 取不到所有的数据。
有两种解决方式:
- 自己重新写一个 数据暴露接口
自己写的接口中规范化返回的json数据格式,类似之前的/api/v1/metrics
接口,不展开说明。 - 限制Griffin中measure的rule 使用,每次只监控一个或几个指标。
在使用measure时,规定 每次只监控制定数量的指标,也就变相限制返回的json个数据格式,但还是有些弊端的。
未完待续。。。
更多推荐
已为社区贡献1条内容
所有评论(0)