很多时候我们进行分析业务系统问题的时候不简单的只是请求带宽情况,对于数据的实时状态也是比较重要的
比如tcp 的延迟情况(需要实时,尤其是在分析黑盒以及复杂系统的时候,db,以及基于网络的复杂业务系统)
一张参考图
方案很简单,实际上现在有好多链路分析的工具 ,这里只关注黑盒模式同时系统有没有使用相关扩展的(opentracing,prometheus....)
简单说明
模型比较简单,主要是简单服务的,基于从请求应该的service 以及依赖的db(也可以是其他的中间件)我们基于tcprstat可以方便的分析网络链接
的延迟情况,基于tcpcollect 我们可以分析mysql 的请求情况,对于无法处理的特定场景,我们可以基于tcpdump 以及wiresharp 或者gorreplay 等
工具方便的分析,对于windows 系统的中间件我们可以通过proxy 模式解决(比如sql server的,可以基于haproxy 解决实时请求的分析,同时基于
proxy的数据访问模式也是一种不错的设计)实际上以上的工具还是比较单一而且比较简单的,很多时候需要从更深入的内核角度分析linux系统的ebpf
是特别好的方法
参考资料
https://www.microsoft.com/en-us/download/details.aspx?id=4865
https://github.com/hoterran/tcpcollect
https://github.com/y123456yz/tcprstat
https://github.com/Lowercases/tcprstat
https://www.datadoghq.com/blog/collecting-mysql-statistics-and-metrics/
https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
https://github.com/appneta/tcpreplay