Configure Multiple JaegerGrpcSpanExporter to spring boot application

I tried to configure multiple JaegerGrpcExpanExporter (provided in Open-Telemetry framework) in my application to fulfill below use case:

JaegerGrpcExpanExporter with service name "controller",JaegerGrpcExpanExporter with service name "service" and JaegerGrpcExpanExporter with service name "util" and registered them to OpenTelemetrySdk.

The spans with kind 'controller' should export to exporter configured with "controller" service name not to others, similar process should be followed for util and service.

But it is not behaving as expected, i.e. spans with "controller", "service" and "util" has been exported to all the JaegerGrpcExpanExporter registered in parallel.

Below is my configuration, Do you provide me any suggestion to achieve the same.

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));
}

1 ответ

Любые пролеты, созданные поставщиком, будут экспортированы всем зарегистрированным экспортерам. Вы можете использовать несколько провайдеров, каждый с отдельным экспортером Jaeger. Я не уверен, поддерживает ли Jaeger перезапись имени службы средствами OpenTelemetry Resources, но это был бы лучший вариант (и иметь только одного поставщика).

Другие вопросы по тегам