需求
《可视化业务流程监控,是解决方案更是运维之道!》一文让我们知道可以借助Grafana 两个插件:Diagram、FlowCharting,满足我们对于图形+数据+业务流程的可视化监控,但是在使用前需要我们做好以下两点工作:
- 源数据的完整性 这意味着我们仍要持续的进行多维度的监控指标的收集,不断丰富业务流程对关键指标的依赖。
- 多数据源无法集中合并展示 受限于Grafana的Dashboard的数据源单一性,即无法在一个Dashboard中关联多个数据源进行集中展示。
以上第一点是一个长期性的工作,也是一个非常重要的基础性工作;而第二点我们可通过使用mix数据源,实现数据源合并展示。
图形化展示
相对于Diagram,FlowCharting通过draw.io
进行图形化编排,结合各个数据源提供实时数据,并在流程图中定义数据与图表进行多样性交互:
- 监视状态和性能
- 与图表交互
- 根据数据或状态改变显示的对象
- 向对象添加链接
- 充分利用变量来修改形状,颜色,链接,下载路径等。
- 支持用于匹配和替换的正则表达式
以下是通过FlowCharting编排的几个DEMO:
1.网络拓扑图
2.扩展和伸缩图
3.架构图
4.告警事件和动画
通过以上几个DEMO的展示,可以看出FlowCharting丰富的图形化和数据展示功能。
当然运维还是要落地的,因此我们通过一个自定义流程来进行具体展示。
业务审批流程
现在我们有一个业务审批流程需要进行监控,之前总是出现卡审批的现象,需要业务运维拉开发人员来进一步定位,这无疑大大延长了故障修复时间。后来经过复盘,原因主要集中在以下几方面:
- Rabbitmq 队列生产速度>消费速度,导致消息积压;
- Kafka topic 生产速度>消费速度,导致消息积压;
- 业务应用发生异常导致无法消费;
- 等等
1.业务审批流程图
业务审批流程大致为:
收单–>Rabbitmq 相关队列 --> 信贷系统 --> 全面风险管理系统 --> Kafka 相关topic --> 其他业务自子系统
整个业务流程,我们通过监控Rabbitmq、Kafka相关队列的消费情况,来比运营人员更早的发现问题,甚至是提前将问题解决。
2.数据源设置metric
图中绿色部分是我们通过以下数据源与其关联的:
- Zabbix数据源
- ELK数据源
由于粒度比较粗,我们还可以添加prometheus、mysql等数据源来进行更好的补充。
3.数据关联
以上是我们对Rabbitmq其中的一个队列“cmis_rule_loan”进行数据关联,根据配置我们可以得到:
- 绿色:正常,即队列积压低于50;
- 橙色:队列积压超50;
- 红色:队列积压超80;
比较有趣的是,当告警时可以在图中设置动画,如:反转、倾斜、闪动等,以便我们更好的发现问题。
总结
图形化的业务流程监控给我们运维打开了另一个维度的监控思路,之前我们的监控维度主要为:
- 硬件监控
- 服务器基础状态监控
- 应用状态监控
- 流量监控
这些监控可以帮助我们解决80%的问题,但总感觉缺少一点灵魂
。通过业务流程监控正好可以补齐这个短板,以上各个维度的数据都可为业务流程监控提供数据支撑,这让我们的思维更进一个台阶。