37DATA

【全链路监控】之业务追踪

一、引子

寒江孤影,江湖故人,相逢何必曾相识——《龙门飞甲》

Image

        凌雁秋心心念念等待着和赵怀安再次相见,用赵怀安的名字四处行侠仗义,再次相见为了不让赵怀安担忧,一个人独自走了,为了救赵怀安又赶回来身负重伤,把赵怀安送到安全的地方后,拖着身负重伤的身体,骑上马,说:若我留下来,他会有牵挂。逍遥远去,不想让赵怀安看见这样的自己,一骑绝尘的走了,从此两位绝世高手也过上了独自为战的日子......待续

二、背景

项目监控发展史

众多的技术工具和技术栈:

  1. Zabbix、OpenFalcon、OpenTSDB 基础监控

  2. ELKB 日志套件

  3. InfluxDB 的TICK套件

  4. Prometheus

  5. Spark、Storm、Kafka、Flink 等大数据套件

  6. Netdata、Sentry、EagleEye、SkyWalking 等市场成熟方案

通过不断对比之后,结合多种语言项目环境考虑,我们使用了各种技术完成了监控建设,并较好的覆盖各个服务节点,如下示例图

Image

是的,我们完美的解决了每个环节的监控,但也只是解决了“监控数据集中展示”,我们希望看到各个监控数据之间的关联关系。我们希望可以通过各层次、各依赖服务、各资源的监控状态,

以及它们之间的关联关系,来辅助业务方构建一个更立体的全局视角。让凌雁秋和赵怀安能齐心协力,解决是否不再独添悲伤,当然我不是导演,那么接下来怎么能把服务整个请求链路的监控数据汇总到一张图表呢?

这个可以有

基于Grafana插件FlowCharting实现的业务监控

Image

一个业务流程就刻画出来了,我们可以一眼看到业务各个服务当前状态。如下图所示,我们把一个请求从「投放端」到「服务端」以及「媒体服务」和「资源服务」的监控数据都汇总到了一起。

通过为不同的监控数据设置不同的阀值、配置不同的颜色,可以更直观的看到整个系统的健康状态。

三、整体设计

第一步

流程图绘制工具可采用:

Image

第二步

导入Grafana

Image

第三步

图形元素绑定监控数据源

Image

四、未来展望

基于FlowCharting的监控实践和信息更丰富的,相比于常规监控方式,虽然略新颖,但是基本还是围绕“业务流程”的层面开展的。这还需要结合自己的业务决定是否使用:

同时我们也需要有一个认识 ---- “监控只是帮助我们达成某些目标的工具或手段,而不是最终的目的”。因此我们还可以继续往前迈进,做更多的横向连接和扩展。比如:

如果目标是「服务的稳定性」,可以跟服务的弹性策略、异常处理、故障自愈做联动,更好地做服务质量保障。
如果目标是「降低成本」,监控数据可以提供强有力的支撑,配合对监控数据的挖掘,指导我们更好的做容量规划。

当然,未来在监控上可以做的事情也远不止这些,我们可以一同努力、共同期待。

五、总结

本文意图将监控节点集中汇总成业务链路,逐步将监控数据从多个环节收敛到一个图表。用Grafana的FlowCharting插件把监控数据的集中展示,

同时巧用FlowCharting插件来体现监控数据之间的关联关系,由此我们就可以用它以较低的成本构建出一个「端到端的全链路监控」了。

在此感谢Grafana和FlowCharting作者的贡献

六、告警

敬请期待......