Hi

I have implemented different microservice where internal communication is
taking place by camel and rabbitMQ with different exchange and queue.

Ex: Service1 Publish message to RabbitMQ ( i.e Exchange 1 -> Queue 1) where
Service2 Consume message
Service2 Publish message to RabbitMQ ( i.e Exchange 2 -> Queue 2) where
Service3 Consume message
Service3 Publish message to RabbitMQ ( i.e Exchange 3 -> Queue 3) where
Service4 Consume message and so on.

I am using camel-zipkin for tracing, and log4j2 for logging.

I am using Springboot :  1.5.12.RELEASE and 2.21.5 version of following
dependencies of camel :

camel-spring-boot-starter

camel-rabbitmq-starter

camel-core

camel-spring

camel-zipkin-starter

camel-test

camel-test-spring


I need suggestion for my two problems

1. span-id, trace-id are not getting printed in logs.  I have necessary
placeholders added in my log4j2.xml.
2. Whenever a message is sent to an exchange a unique span-id and trace-id
is getting generated.

My Questions are :

1. Is it possible to have a unique traceID for entire data traverse from
Service 1 to Service N.
2. How can I print span-id, trace-id to logs.


Attached is log4j2.xml, pom.xml and application.yaml for reference.

Do let me know in case more information is required

Regards
Prabhat Kumar
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Properties>
    <Property name="PATTERN">
      %d{yyyy-MM-dd'T'HH:mm:ss.SXXX}|2|%level|example-service|%X{X-B3-TraceId},%X{X-B3-SpanId},%X{X-Span-Export}|${sys:PID}|%thread|%logger{1.}|%message%n
    </Property>
  </Properties>
  <Loggers>
    <Root level="info">
      <AppenderRef ref="Console"/>
    </Root>
    <Logger name="org.springframework" level="WARN"/>
    <logger name="org.apache.activemq.transport" level="WARN"/>
    <logger name="com.camel.example" level="DEBUG"/>

  </Loggers>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="${PATTERN}"/>
    </Console>
  </Appenders>
</Configuration>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0";
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd";>
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.12.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.camel</groupId>
	<artifactId>example</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>example</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
		<camel.version>2.21.5</camel.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
		</dependency>
		
		<!-- Camel Dependency -->
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-spring-boot-starter</artifactId>
			<version>${camel.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-rabbitmq-starter</artifactId>
			<version>${camel.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-core</artifactId>
			<version>${camel.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-spring</artifactId>
			<version>${camel.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-zipkin-starter</artifactId>
			<version>${camel.version}</version>
		</dependency>
		
		
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-test</artifactId>
			<version>${camel.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-test-spring</artifactId>
			<version>${camel.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

Reply via email to