数字孪生中台Grafana数据源集成

在Grafana中使用JSON数据源插件可以集成中台的Grafana数据源,Grafana中JSON数据源插件使用方式可参考Grafana Labs。数字孪生中台支持提供多种数据源给Grafana使用,数据源测试连接地址为http://${url}/tarsier-platform/grafana/datasource/${type},其中url为中台访问地址,type为已加载的数据源类型。

1. 上传数据源Jar包

将要加载的数据源Jar包上传到中台部署目录的/plugins文件夹。
image.png

2. 数据源接口

参考Grafana Labs中的JSON插件说明文档可知,一个数据源可以实现如下接口:

调用方式 接口路径 说明
GET / with 200 status code response. Used for “Test connection” on the datasource config page.
POST /search returning available metrics when invoked.
POST /query returning metrics based on input.
POST annotations returning annotations.
其中中台已实现/、/search、/query三个接口,除此之外还实现了上传、卸载、查询数据源接口
调用方式 接口路径 说明
GET http://${url}/tarsier-platform/grafana/datasource/getAll 查询已加载的所有数据源
GET http://${url}/tarsier-platform/grafana/datasource/${type} 数据源链接测试
POST http://${url}/tarsier-platform/grafana/datasource/${type}/search 查询数据源可用指标
POST http://${url}/tarsier-platform/grafana/datasource/${type}/query 通过所选指标查询数据
上述接口需要在header中添加认证信息Authorization:Bearer ${token},token为用户登录生成的token。

1)加载、卸载

Grafana数据源使用公共组件的热加载功能进行管理,可参考文档数字孪生中台插件开发手册

2)查询已加载数据源

获取已加载全部数据源接口:http://${url}/tarsier-platform/grafana/datasource/getAll,返回数据格式为:

{
    "success": true,
    "code": 200,
    "message": "",
    "data": [
        {
            "type": "performance",
            "name": "性能数据",
            "loadTime": 1628496239048
        },
        {
            "type": "statistics-service",
            "name": "统计服务",
            "loadTime": 1628495267526
        },
        {
            "type": "demo",
            "name": "demo数据源",
            "loadTime": 1628490178787
        }
    ],
    "version": "v1"
}

这里返回的type字段对应http://${url}/tarsier-platform/grafana/datasource/${type}接口中的type,例如,“性能数据”数据源的链接测试接口为:http://${url}/tarsier-platform/grafana/datasource/performance
相应的/query接口为http://${url}/tarsier-platform/grafana/datasource/performance/query
/search接口为http://${url}/tarsier-platform/grafana/datasource/performance/search

3)Grafana所需接口

其中/、/query、/search三个接口是在Grafana中使用的链接测试及数据查询接口,具体功能参考Grafana Labs

3. 中台已提供的数据源插件

目前中台已提供查询性能数据和*统计汇聚服务(指标)*两种数据的数据源,可以按照上述方式加载,git仓库地址和数据源信息如下。

名称 type Git仓库
性能数据 performance git@git.uino.com:uino-base/uino-middle-platform-plugin/grafana-data-source/plugin-grafana-data-source-performance.git
统计服务 statistics-service git@git.uino.com:uino-base/uino-middle-platform-plugin/grafana-data-source/plugin-grafana-data-source-statistics-service.git

4. 在Grafana中配置数据源

对于已经在中台加载成功并可以查询到的数据源,可以直接在Grafana设置数据源页面添加数据源,选择JSON类型,URL中填写链接测试接口,Custom HTTP Header中添加认证信息Authorization:Bearer ${token},点击Save & Test看到Data source is working即添加成功。
image.png

5. 在Grafana中使用数据源生成仪表盘

在Grafana编辑仪表盘的页面选择已创建的数据源即可通过数据源获指标和数据数据。
image.png
其中下拉列表Metric中的数据由/search接口提供、选择相应指标后用于成图的数据由/query接口提供。
对于性能数据数据源,需要在Metric中选择性能指标,并在Body中填写查询结构,查询结构为JSON。性能数据数据源的查询结构中必须指定孪生体,可以使用的字段如下:

	@ApiModelProperty(value = "对象id/孪生体id", example = "456")
	private Long ciId;

	@ApiModelProperty(value = "对象id/孪生体ciCode", example = "abc")
	private String ciCode;

	@ApiModelProperty(value = "业务主键", example = "abc")
        private String ciPrimaryKey;

选择其中一个用来查询即可。