AJ-Report是全开源的一个BI平台,酷炫大屏展示。做系统监控很合适,它可以基于sql或者http查询系统监控指标,与业务系统可以充分的解耦,个人觉得非常不错,但是在使用中也遇到了一些问题,并进行了代码改进,本想向官方提交PR,只可惜,人家说我这是特殊情况就不往主干上合并了,好吧, 那就自己用吧,在此记录一下。
AJ-Report支持两种数据集,分别为sql和http,sql是根据数据源配置将数据通过sql查询的方式展示出来,如果有现成的采集数据并且已经入库,这种方式很方便。http方式是需要通过http调用查询目标服务的接口,将结果展示出来,但是目前官方的http调用只支持json类型的返回数据源,对text类型并不支持,官方的解释是json已经满足了大部分场景,所以只支持这一种。在我们的项目中使用了阿里的druid数据源,我们希望把druid数据源的指标数据也集成到AJ-Report监控体系中,所以采用了http调用的方式来查询,但是druid开放的接口中返回的类型是text/html类型,AJ-Report并不支持。
没办法,自己动手丰衣足食,找到http调用的源码部分进行改造,原始代码是这样的
可以看到返回类型只支持Object类型。改造后如下
使用String类型接收text类型,当然,这样改造后界面的查询参数 需要增加Accept内容
这样查询才知道用哪种类型来接收 。
总结:这样的改造是最少的,还有一种方式是通过sql方式,那样就需要系统将druid数据源的监控指标通过后台线程采集到表里,需要对druid内置的api进行重写,这样我觉得更麻烦,改开源代码的改动量更少一些,顺便还能提个PR,但是......没关系,至少是一次不错的尝试ヾ(◍°∇°◍)ノ゙