Java 如何使用Opencencsus库附加带有自定义跨距的Strackdriver跟踪?

Java 如何使用Opencencsus库附加带有自定义跨距的Strackdriver跟踪?,java,trace,google-cloud-stackdriver,opencensus,Java,Trace,Google Cloud Stackdriver,Opencensus,我正在建立一个标准的Java AppEngine服务,我需要在代码中跟踪自定义位置。我遵循了Google提供的教程:设置跟踪,然而问题是,这种方法创建了一个新的跟踪,而不是在Google启动的跟踪中添加新的跨距 为了向现有跟踪追加新的跨距,我尝试从X-Cloud-trace-Context头中提取traceId和rootSpanId,并使用spanBuilderWithRemoteParent方法创建子跨距 但是,问题是,SpanId.fromLowerBase16需要一个16字节的ID,其中作

我正在建立一个标准的Java AppEngine服务,我需要在代码中跟踪自定义位置。我遵循了Google提供的教程:设置跟踪,然而问题是,这种方法创建了一个新的跟踪,而不是在Google启动的跟踪中添加新的跨距

为了向现有跟踪追加新的跨距,我尝试从
X-Cloud-trace-Context
头中提取traceId和rootSpanId,并使用
spanBuilderWithRemoteParent
方法创建子跨距

但是,问题是,
SpanId.fromLowerBase16
需要一个16字节的ID,其中作为rootSpanId的长度为19字节。因此,我的代码抛出了一个
java.lang.IllegalArgumentException:Invalid size:expected 16,get 19
异常

代码示例:

List-traceHeaders=headers.get(“X-Cloud-Trace-Context”);
字符串traceID=“”;
字符串rootSpanId=“”;
如果(traceHeaders.size()>0){
traceID=traceHeaders.get(0).split(“/”[0];
rootSpanId=traceHeaders.get(0.split(“/”[1])。split(“;”[0];
}
Span sp1=
示踪剂
.spanBuilderWithRemoteParent(
“获取数据”,
SpanContext.create(
TraceId.fromLowerBase16(TraceId),
SpanId.来自LowerBase16(根SpanId),