我尝试JaegerGrpcExpanExporter
在我的应用程序中配置多个(在 Open-Telemetry 框架中提供)以实现以下用例:
JaegerGrpcExpanExporter
服务名称为“controller”,
JaegerGrpcExpanExporter
服务名称为“service” JaegerGrpcExpanExporter
,服务名称为“util”,并将它们注册到OpenTelemetrySdk
.
类型为“controller”的 span 应导出到配置有“controller”服务名称的导出器,而不是其他人,util 和 service 应遵循类似的过程。
但它的行为并不像预期的那样,即带有“控制器”、“服务”和“实用程序”的跨度已被导出到所有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));
}