简介:
在KOO分期的线下业务中,需要对很多关键业务指标进行实时监控,并需要根据一定的数据格式,通过企微机器人发往对应的企微群,因此KOO分期技术团队在KOO业务指标库之上,搭建了一套KOO分期业务指标监控系统,简称哨兵系统。
模块组成
哨兵系统主要分为6个主要部分组成:
企业中台:主要提供相关接口,将结果推送给对应的企微群或者应用,比如:推送excel、图片、文本。
决策中心:主要负责圈人、圈组织,每一次的数据推送都要有一个数据采集的范围。
指标平台:主要负责KOO分期业务指标的维护,哨兵系统推送的数据也主要基于指标平台的指标。
任务执行模块:主要确认该次任务执行的方式(定时或者时间触发),通知配置对应的执行策略。
消息通知模块: 数据组装成要推送的数据格式,然后调用企业微信的接口推送出去。
规则模块: 将决策、指标调用、任务执行、消息通知脚本化,实现动态化配置满足业务上频繁变动的场景。
流程设计
假设要给XX大区的销售每一次成交都要推送一条播报,播报内容是:
恭喜~[鼓掌]XX销售[强] 促成现金成交 XX元[哇]
那我们要怎么做呢?
监听成交的消息事件,通过决策平台获取到当前成交的销售是否为XX大区并获取到销售信息。
通过指标平台调用现金成交对应的指标数据。
将要推送的动态内容,拆解成变量,通过任务执行过程,动态填充,最终通过企微推送到对应的企微群。
规则引擎设计
在规则引擎设计方面,首先要考虑的是配置可视化,业务上可拓展,维护便捷,执行效率高4个部分。因此在设计上我们优先考虑通过json格式来存储,采用JEXL表达式引擎执行。
{ "relation": "AND", "subRuleItems": [ { "indicatorCode": "code1", "indicatorType": "type1", "indicatorInfo": { "timeType": "typeA", "queryScene": "sceneA", "referInfo": "infoA" }, "operator": ">=", "ruleValue": "10" }, { "indicatorCode": "code2", "indicatorType": "type2", "indicatorInfo": { "timeType": "typeB", "queryScene": "sceneB", "referInfo": "infoB" }, "operator": "<", "ruleValue": "5" } ]}
通过以上的JSON,我们就可以最终构建出业务指标(code1)>=10&&业务指标2(code2)<5的表达式,通过JEXL表达式引擎最终实现动态判断,同时我们将JSON映射到界面上,最终实现了规则的可视化操作。
企微推送
在推送方面,我们接入了企微图片推送功能,,那我们如何将数据最终渲染成一张图片呢?通过企微文档得知,我们首先我们需要把文字转成一张图片,其次我们需要将图片转成Base64字符串,最终我们将图片推送到企业微信群
因此通过多种方案的试验,我们最终采用了FreeMarker+Java2DRender,既能够实现部分图片样式满足业务需求,同时又兼顾了一定的灵活度方便后期的调整。
最终我们推送的形式如下(注:数据为测试数据):
总结
通过企微中台、指标平台基础建设之上,我们采用脚本 + 规则组件化的方式,最终实现了KOO分期的业务监控系统-哨兵系统,通过哨兵系统的实时监控能力,能够满足业务方95%的监控诉求,有效的降低了KOO分期的销售管理成本。