size++; } } } 很多场景下可通过ThreadLocal来透传全局上下文的; 比如用ThreadLocal来存储监控系统的某个标记位,暂且命名为traceld 某次请求下所有的traceld都是一致的,以获得可以统一解析的日志文件; 但在实际开发过程中,发现子线程里的traceld为null,跟主线程的traceld并不一致,所以这就需要刚才说到的InheritableThreadLocal 来解决父子线程之间共享线程变量的问题,使整个连接过程中的traceld一致.
详细 跟踪粒度 细 一般 代码侵入性 无 无 告警 支持 支持 JVM监控 支持 支持 UI丰富度 很高 一般 实现方式 字节码注入 字节码注入 兼容 OpenTracing 否 是 扩展性 低 高 Traceld
Butterfly为每个请求生成全局唯一的ID(Traceld),通过它将不同系统的“孤立的”调用信息关联在一起,还原出更多有价值的数据。 ?
详细 跟踪粒度 细 一般 代码侵入性 无 无 告警 支持 支持 JVM监控 支持 支持 UI丰富度 很高 一般 实现方式 字节码注入 字节码注入 兼容 OpenTracing 否 是 扩展性 低 高 Traceld
Butterfly为每个请求生成全局唯一的ID(Traceld),通过它将不同系统的“孤立的”调用信息关联在一起,还原出更多有价值的数据。 ?