当前公司使用的是 sofa-trace (非 boot 版本,只是 sofa-core ),mybatis 与 feign 插件等都算是 copy 的基础上修改了一下
由于领导要求我写一个工具,于是我研究了一下 sofa-trace-stratr-boot ,发现有很多缺点,例如报错没有 traceid ,线程池情况没有 traceid ,feign 调用依赖兼容问题也不小,等等
问题:
1 ,请问大家公司都是使用的什么方案,Spring-Cloud-Sleuth 及其自带的 Zinkin ?还是基于什么方案制作的,请指教
2 ,不知道有什么办法可以解决线程池没有 traceid 的问题,agent 代理所有的多线程东西嘛,
1
putaozhenhaochi 2022-09-17 13:12:05 +08:00 via Android
蚂蚁开源的这些是不是他们真实环境在用的。 还是开源的是单独一套代码
|
2
swuzjb 2022-09-17 14:14:47 +08:00
@putaozhenhaochi 开源版本和内部版本不一样 真实环境的很多东西拿不出来
|
3
BBCCBB 2022-09-17 14:22:28 +08:00 1
pinpoint.. 代码较少, 也比较清晰? 好改一点..
|
4
4kingRAS 2022-09-17 14:27:03 +08:00 1
http://icyfenix.cn/distribution/observability/tracing.html
基本就两种,一种是注入字节码的,影响性能。一种是代理模式,请求的出口带上 traceid ,线程池这种地方你不应该用 trace 而应该用 metric 。 |
5
wolfie 2022-09-17 14:47:40 +08:00 1
我们用 skywalking 。
跨线程池 trace: https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/application-toolkit-trace-cross-thread/。 如果只是 log 的话,spring 的 ThreadPoolTaskExecutor 线程池,可以添加 TaskDecorator ,去操作 MDC 上下文。 |
6
jiajianjava 2022-09-17 17:43:55 +08:00 1
可以看看 TLog
|
7
collery 2022-09-17 19:23:07 +08:00 1
这些年的几家公司 skywalking pinpoint zipkin 都用过。 都差不多。
|
8
issakchill 2022-09-18 17:51:57 +08:00 1
简单使用的话 TLog 确实不错
|
9
Aresxue 2022-10-09 10:05:53 +08:00 1
链路用 skywalking ( pinpoint 要能接受比较高的性能损耗),线程池和父子线程的问题用 TransmittableThreadLocal + mdc 解决了,zipkin 是侵入式方案个人不是很喜欢,trace 、metric 、log 还是非侵入式的用起来更舒服,业务也没有感知。
|