sofastack / sofa-tracer

SOFATracer is a component for the distributed system call trace. And through a unified traceId logging the logs of various network calls in the invoking link. These logs can be used for quick discovery of faults, service governance, etc.
Apache License 2.0
1.1k stars 372 forks source link

redis-trace #167

Open yangzhongj opened 5 years ago

yangzhongj commented 5 years ago

redis-trace

sofa对于redis-trace实现在未来是怎么做的,如何app---》redis-proxy--》redis 串联在一起。类似的还有mysql-proxy等

Your scenes

describe your use scenes (why need this feature)

Your advice

describe the advice or solution you'd like

Environment

glmapper commented 5 years ago

@yangzhongj SOFATracer 组件埋点是基于拦截或者代理来实现的,对于 redis 或者 mysql ,基于 SOFATracer 本身API 的埋点或者基于Opentracing API 的埋点实现也是基于上述基本思路。

khotyn commented 5 years ago

@yangzhongj 问下你们是在用什么样的 redis-proxy?

yangzhongj commented 5 years ago

类似codis的java版redis-proxy, redis-proxy都是通过redis协议的请求。我理解traceId应该在传递在协议层做的。但是redis协议没法是无法改变的。

yangzhongj commented 5 years ago

要是方便加下weixin : r93508

yangzhongj commented 5 years ago

在proxy端无法获取traceid,好像无法和真实的后端数据源进行关联。

glmapper commented 5 years ago

类似codis的java版redis-proxy, redis-proxy 都是通过 redis 协议的请求。我理解traceId应该在传递在协议层做的。但是redis协议没法是无法改变的。

是开源的产品吗?可以提供一些具体的信息,方便我们调研然后支持。另外我们后面会逐渐向 opentracing-contrib 靠近,opentracing-contrib 已经有贡献redis 客户端的埋点实现,可以参考。如果你们对此有需求,我们会尽快推进对此的支持。

khotyn commented 5 years ago

@glmapper 我理解 @yangzhongj 说的 redis-proxy 就是类似于 https://github.com/CodisLabs/codis 这样在应用和 Redis Server 之间的 Proxy。这个要做的确需要看 Redis 自身的协议上是否有扩展能力,可以携带 TraceId,RpcId 过去,也要看 Codis 本身是否有扩展能力。

yangzhongj commented 5 years ago

redis协议不容易不支持。假设要支持相关命令改动也是很大的。其实mysql-proxy 也存在这个问题