0

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));
}
Hulk
  • 6,399
  • 1
  • 30
  • 52
R.Singh
  • 33
  • 4

1 Answers1

0

Any spans generated by a provider will be exported to all registered exporters. You could use multiple providers, each with a separate Jaeger exporter. I'm not sure if Jaeger supports the service name being overwritten by OpenTelemetry Resources yet, but that would be the best option (and to only have a single provider).

Austin Parker
  • 323
  • 2
  • 6