【发布时间】:2020-07-27 14:11:38
【问题描述】:
我尝试在我的应用程序中配置多个JaegerGrpcExpanExporter(在 Open-Telemetry 框架中提供)以实现以下用例:
JaegerGrpcExpanExporter 服务名称为“控制器”,
服务名称为“service”的JaegerGrpcExpanExporter 和服务名称为“util”的JaegerGrpcExpanExporter 并将它们注册到OpenTelemetrySdk。
类型为“controller”的 span 应该导出到配置了“controller”服务名称的导出器,而不是其他人,util 和 service 应该遵循类似的过程。
但它的行为与预期不符,即带有“controller”、“service”和“util”的 span 已导出到所有并行注册的 JaegerGrpcExpanExporter。
以下是我的配置,你有什么建议可以实现。
public BatchSpansProcessor getJaegerSpanProcessor(String serviceName) {
return BatchSpansProcessor.newBuilder(
JaegerGrpcSpanExporter.newBuilder().setServiceName(serviceName). setChannel(ManagedChannelBuilder.forAddress(localhost,14250).usePlaintext(). build()
).build();
}
public void addJaegereProcessorToSdk(){
String[] serviceName={"controller", "service", "util"};
TracerSdkProvider tracerSdkProvider=OpenTelemetrySdk.getTracerProvider;
for(String service:serviceName)
tracerSdkProvider.addSpanProcessor(getJaegerSpanProcessor(service));
}
【问题讨论】:
标签: java spring-boot open-telemetry