天天看点

微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比

1 监控在微服务架构的地位

微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比

2 为何需要调用链监控?

  • 在初期的单体应用,应用都打在一个包中,无分布式概念,监控也只需对一些埋点监控。
微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比

但是微服务时代下,很多服务在各自的包,一旦出现问题,没有调用链监控就很难定位问题!

3 没有应用监控可能带来的坑点

  • 线上发布了服务,怎么知道一切正常?
  • 大量报错,到底哪里产生的,谁才是根因?
  • 人工配置错误,上线前通宵排错,结婚了还得来修 bug!
  • 应用程序有性能问题,怎么尽早发现问题?
  • 数据库问题,在出问题之前能洞察吗?

最后谁都查不出问题,全部甩锅网络问题~

可能出错的事总会出错!!!(墨菲定律)

微服务需要应用监控!!!

4 DevOps 实践

  1. 要提升先测量

    开尔文曾经曰过:If you can’t measure it, you can’t improve it.

    知道系统的当前性能指标,才知道该如何优化。

  2. 研发自主监控所负责的系统

5 Open Tracing

为了这些监控软件而规范,支持很多语言无缝切换。

微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比

监控演进史

eBay的老员工跳槽到点评后开发了 CAT。

微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比

开源产品对比

微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比
微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比
微服务调用链监控开源工具CAT1 监控在微服务架构的地位2 为何需要调用链监控?3 没有应用监控可能带来的坑点4 DevOps 实践5 Open Tracing监控演进史开源产品对比

调用链监控主要适用于同步场景。异步调用一般不建议,因为异步多线程没有明确调用先后时序关系。实际有些场景(比如异步消息追踪)确实需要的话,也是可以做到的,原理就是在跨越线程边界的时候(类似跨越进程边界),需要把trace上下文向异步线程传递,具体做法一般需要定制。Skywalking的异步支持做的比较好,它提供的一些plugin有些已经支持异步追踪,如果你理解原理,也可以自己实现埋点,参考:

https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Application-toolkit-trace-cross-thread.md

参考