I’m implementing open telemetry in my project and created a bean as following
`@Bean
public static OpenTelemetry openTelemetry() {
Resource resource = Resource.getDefault();
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
.addSpanProcessor(SimpleSpanProcessor.create(LoggingSpanExporter.create()))
.setResource(resource)
.build();
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
.registerMetricReader(PeriodicMetricReader.builder(LoggingMetricExporter.create()).build())
.setResource(resource)
.build();
SdkLoggerProvider sdkLoggerProvider = SdkLoggerProvider.builder()
.addLogRecordProcessor(BatchLogRecordProcessor.builder(SystemOutLogRecordExporter.create()).build())
.setResource(resource)
.build();
OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()
.setTracerProvider(sdkTracerProvider)
.setMeterProvider(sdkMeterProvider)
.setLoggerProvider(sdkLoggerProvider)
.setPropagators(ContextPropagators.create(TextMapPropagator.composite(W3CTraceContextPropagator.getInstance(), W3CBaggagePropagator.getInstance())))
.buildAndRegisterGlobal();
return openTelemetry;
}
`
In every controller and service, I added this
` private Tracer tracer;
private OpenTelemetry openTelemetry;
AccountInfoController(OpenTelemetry openTelemetry) {
tracer = openTelemetry.getTracer(AccountInfoController.class.getName(), "0.1.0");
}`
and created span in Controller as below
Span span = tracer.spanBuilder(spanName).startSpan();
( where span name is controller name ) and in the service class I created span
Context.current().with(parentSpan).makeCurrent(); Span serviceSpan = tracer.spanBuilder(spanName) .setParent(Context.current().with(Span.current())) .startSpan();
where parent span is controller span
but I’m receiving the trace Id repeated after 10 iterations
How to generate unique trace IDS??
Keerthana C is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.