关于SkyWalking 8.4.0版本中traceId的生成规则,是可以通过自定义实现的。具体的实现方式如下:
- 实现 TraceIdGenerator 接口
public interface TraceIdGenerator {
/**
* Generate a new trace id.
* @param context Carrier from remote, can be null.
* @return new trace id.
*/
String generate(ContextCarrier context);
}
- 在 SkyWalking 的配置文件中添加如下配置:
# 自定义TraceId生成器
# 将其中的 com.example.TraceIdGenerator 替换为实现 TraceIdGenerator 接口的类的全限定名
trace.traceid.generator=com.example.TraceIdGenerator
这样,SkyWalking 就会使用您自定义的 TraceIdGenerator 来生成 traceId。
需要注意的是,自定义 TraceIdGenerator 时,需要遵循 SkyWalking 的 traceId 格式,即:{traceId}-{segmentId}-{spanId}
。其中,traceId、segmentId、spanId 都是由 16 进制数表示,且长度都为 16 个字符。
希望这些信息能够帮助到您。