9.3. 추적기를 사용하여 Kafka 클라이언트 조정
분산 추적을 위해 Kafka 생산자 및 소비자 클라이언트 및 Kafka Streams API 애플리케이션입니다.
9.3.1. 추적을 위한 생산자 및 소비자 처리 링크 복사링크가 클립보드에 복사되었습니다!
Decorator 패턴 또는 인터셉터를 사용하여 추적을 위해 Java 생산자 및 소비자 애플리케이션 코드를 계측합니다.
절차
각 생산자 및 소비자 애플리케이션의 애플리케이션 코드에서 다음을 수행합니다.
OpenTracing의 Maven 종속성을 생산자 또는 소비자의
pom.xml파일에 추가합니다.<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-client</artifactId> <version>0.1.15.redhat-00006</version> </dependency><dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-client</artifactId> <version>0.1.15.redhat-00006</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Decorator 패턴 또는 인터셉터를 사용하여 클라이언트 애플리케이션 코드를 계측합니다.
Decorator 패턴을 사용하려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인터셉터를 사용하려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.1.1. Decorator 패턴의 사용자 정의 범위 이름 링크 복사링크가 클립보드에 복사되었습니다!
기간은 작업 이름, 시작 시간 및 기간이 있는 Jaeger의 논리적 작업 단위입니다.
생산자 및 소비자 애플리케이션을 계측하는 데 Decorator 패턴을 사용하려면 TracingKafkaProducer 및 TracingKafkaConsumer 오브젝트를 생성할 때 BiFunction 오브젝트를 추가 인수로 전달하여 사용자 정의 범위 이름을 정의합니다. OpenTracing Apache Kafka Client Instrumentation 라이브러리에는 여러 개의 기본 제공 범위 이름이 포함되어 있습니다.
예: 사용자 정의 범위 이름을 사용하여 Decorator 패턴에서 클라이언트 애플리케이션 코드를 조정
9.3.1.2. 기본 제공 범위 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 범위 이름을 정의할 때 ClientSpanNameProvider 클래스에서 다음 BiFunctions 를 사용할 수 있습니다. spanNameProvider 를 지정하지 않으면 CONSUMER_OPERATION_NAME 및 PRODUCER_OPERATION_NAME 이 사용됩니다.
| BiFunction | 설명 |
|---|---|
|
|
user |
|
|
|
|
|
메시지가 전송된 대상의 이름 또는 형식 |
|
|
문자열 |
|
|
작업 이름과 주제 이름을 반환합니다. |
|
|
|
9.3.2. 추적을 위한 Kafka Streams 애플리케이션 조정 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 분산 추적을 위해 Kafka Streams API 애플리케이션을 조정하는 방법을 설명합니다.
절차
각 Kafka Streams API 애플리케이션에서 다음을 수행합니다.
Kafka Streams API 애플리케이션의 pom.xml 파일에
opentracing-kafka-streams종속성을 추가합니다.<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-streams</artifactId> <version>0.1.15.redhat-00006</version> </dependency><dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-kafka-streams</artifactId> <version>0.1.15.redhat-00006</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow TracingKafkaClientSupplier공급자 인터페이스 인스턴스를 생성합니다.KafkaClientSupplier supplier = new TracingKafkaClientSupplier(tracer);
KafkaClientSupplier supplier = new TracingKafkaClientSupplier(tracer);Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaStreams에 공급자 인터페이스를 제공합니다.KafkaStreams streams = new KafkaStreams(builder.build(), new StreamsConfig(config), supplier); streams.start();
KafkaStreams streams = new KafkaStreams(builder.build(), new StreamsConfig(config), supplier); streams.start();Copy to Clipboard Copied! Toggle word wrap Toggle overflow