大数据应用 基于Grafana+SimpleJson的灵活报表解决方案
沉沙 2018-10-11 来源 : 阅读 2338 评论 0

摘要:本篇教程介绍了大数据应用 基于Grafana+SimpleJson的灵活报表解决方案,希望阅读本篇文章以后大家有所收获,帮助大家对大数据云计算大数据应用的理解更加深入。

本篇教程介绍了大数据应用 基于Grafana+SimpleJson的灵活报表解决方案,希望阅读本篇文章以后大家有所收获,帮助大家对大数据云计算大数据应用的理解更加深入。

<

在时序分析及监控展现领域,Grafana无疑是开源解决方案中的翘楚,其灵活的插件机制,支持各种漂亮的面板、丰富的数据源以及强大的应用。典型的面板有Graph、Text、Singlestat、PieChart、Table、Histogram等,支持的数据源有ES、Graphite、InfluxDB、OpenTSDB、MySQL、Druid 、Prometheus、SimpleJson等,提供的应用有Zabbix、K8s等。
 
 
         由于公司某些业务用到了SQLServer数据库,因此需要将SQLServer中的统计数据展现在Grafana中,但美中不足的是Grafana官方至今没有提供对SQLServer数据源的支持,如何将SQLServer中的数据灵活展现在Grafana中,是一个摆在我们面前的痛点问题。
经过研究Grafana支持的数据源,我们使用SimpleJson数据源,搭建WebAPI站点,构建报表解析引擎,通过编写契约式的SQL语句,可以将SQLServer中的数据灵活展现在Grafana中,很好的解决了这个痛点问题,整体架构如下所示:
 
 
一、WebAPI
如果要支持SimpleJson,后端WebAPI需要实现4个URL:

/:返回200,用于SimpleJson数据源测试连通性;
/search:返回所有可选的指标;
/query:返回对应指标的时间序列点;
/annotations:返回注解。

二、报表引擎
一个报表对应一个查询SQL,这些查询SQL要事先定义好,并存储在数据库中,对Grafana只暴露报表名称。
当在Grafana中选择了指定的报表名称后,会发起一个WebAPI请求,报表引擎负责解析该请求,通过报表名称获得对应的查询SQL,进行SQL安全性校验,如果校验通过,则根据报表关联的数据源,到指定数据库中执行该查询SQL,并将返回结果组装成DataTable,然后构造SimpleJson所需的数据格式。
三、查询SQL契约
因为Grafana用于展现时序数据,所以返回的数据中,必须有一列是Time列,因此我们对查询SQL做了约定:
如果Grafana中以表格形式展现数据时,查询SQL可以是多列,必须有一列是时间列。
 
如果Grafana中以数字、折线图、柱状图、饼图等展现数据时:

查询SQL最多返回两列;
查询SQL只返回一列时,必须是数字列,报表引擎自动补上时间列为当前时间,适用于在Grafana中只展示数字的情况;

 
  3.查询SQL返回两列时
a)      若含有时间列,则第一列是时间列(带有“Time”字样),第二列是数字列,适用于在Grafana中展现折线图、柱状图等情况;
 

 b)     若不含时间列,则第一列是名称,第二列是数字列,报表引擎自动根据名称进行分组,并补上时间列为当前时间,适用于在Grafana中展现饼图的情况。
 
        当要在一个图中展现多条时序数据时,可以将多个查询SQL组合到一起返回,也就是报表组的功能,因此一个报表可以单独展现,也可以和其他报表组成一个报表组一起展现。
        综上所述,基于SimpleJson数据源,只要按照SQL查询契约书写SQL,就能将SQLServer中的数据灵活展现在Grafana中,同时还要考虑报表权限、SQL安全校验、定时执行报表、报表缓存等,不再赘述。当然SimpleJson只是一个数据源协议载体,理论上可以对接任何类型的后台数据,只要组装成它支持的格式即可。
   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据应用频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved