最近在做数据质量管理,使用的组件是 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官方文档

  1. 在 Grafana 中添加 DataSource,选择 JSON API DataSource,
    在这里插入图片描述
  2. 在 Grafana DashBoard 页面,使用上述配置好的数据源,具体的字段取值,使用 jsonpath 直接取即可
    在这里插入图片描述
Griffin 添加数据暴露接口

我想要暴露 Griffin 中的 job 的执行记录数据,这部分数据 Griffin 提供的 /api/v1/metrics 接口虽然也暴露出来了,但是返回的数据 json 格式根据监控的字段和规则数量不同而动态变化的,现在的 jsonpath 取不到所有的数据。

有两种解决方式:

  1. 自己重新写一个 数据暴露接口
    自己写的接口中规范化返回的json数据格式,类似之前的 /api/v1/metrics接口,不展开说明。
  2. 限制Griffin中measure的rule 使用,每次只监控一个或几个指标。
    在使用measure时,规定 每次只监控制定数量的指标,也就变相限制返回的json个数据格式,但还是有些弊端的。

未完待续。。。

Logo

鸿蒙生态一站式服务平台。

更多推荐