背景
当下微服务盛行的阶段,系统之间服务的依赖和复杂性也逐步提高。所以要保证业务的正常运行和团队的SLA,就需要对线上问题的避免和快速定位。这时就体现日志的重要性,问题是日志如何记录,当一个服务被不停调用时,快速定位一个请求就变的很奢侈。包括用户的一次操作,微服务之间有可能进行数百次网络调用,如何定位哪些步骤慢。为了解决这样的问题,阿里的EagleEye出现了。
实现
-
原理
前端请求到服务器时,EagleEye通过埋点的方式(Filter机制) 生成一个唯一的traceid,然后将traceid放在RpcContext上下文中,RpcContext 上下文会存储在ThreadLocal中。
当有异步操作或者RPC调用时,获取当前ThreadLocal的上下文,将上下文中RPCId序号递增,然后将上下文作为下次请求的附件发送。 -
TraceID组成
TraceID
RpcIDIP为本地IP对应的十六进制数,顺序号为一个自增的计数器,范围为1000~9999,标志位暂时没有使用。
RPCId用链路调用顺序来递增。
阿里云相似产品:Tracing Analysis
效果图:
网友评论