> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Jaeger setup for microservices

> The scope of this document is to present some basic information on how to include Jaeger tracing into a Java based project.

<Warning>
  Jaeger tracing has been removed starting with the FlowX.AI v4.1 release.
</Warning>

## Required dependencies

```xml theme={"dark"}
<dependency>
    <groupId>io.jaegertracing</groupId>
    <artifactId>jaeger-client</artifactId>
    <version>1.4.0</version>
</dependency>
<dependency>
    <groupId>io.opentracing.contrib</groupId>
    <artifactId>opentracing-kafka-client</artifactId>
    <version>0.1.13</version>
</dependency>
```

## Needed configs

### Add Kafka interceptors for Tracing

```yaml theme={"dark"}
kafka:
    producer:
        properties:
            interceptor:
                classes: io.opentracing.contrib.kafka.TracingProducerInterceptor

kafka:
    consumer:
        properties:
            interceptor:
                classes: io.opentracing.contrib.kafka.TracingConsumerInterceptor
```

### Extract Jaeger span context from received Kafka message

```java theme={"dark"}
@KafkaListener(topics = "${TOPIC_NAME}")
public void listen(ConsumerRecord<String, String> record) {
    // some code
    SpanContext spanContext = TracingKafkaUtils.extractSpanContext(record.headers(), tracer);
    // some other code
}
```

<Tip>
  Use this context to create child spans of it and log events from adapter:

  ```java theme={"dark"}
  Span span = tracer.buildSpan(JAEGER_SPAN_NAME).asChildOf(spanContext).start();
  ```
</Tip>

### Send span context with outgoing Kafka messages

```java theme={"dark"}
ProducerRecord<String, Object> producerRecord = new ProducerRecord<>(responseTopic, responseMessage);

TracingKafkaUtils.inject(span.context(), producerRecord.headers(), tracer);

kafkaTemplate.send(producerRecord);
```


## Related topics

- [Microservices setup guides](/4.7.x/setup-guides/setup-guides-overview.md)
- [Observability with OpenTelemetry](/5.9/docs/platform-deep-dive/integrations/open-telemetry.md)
