Spring Cloud Sleuth, Open Zipkin 을 이용한 분산 추적 (4/4) - 로그 시각화를 위한 Open Zipkin 사용
This commit is contained in:
@@ -102,6 +102,15 @@
|
|||||||
<version>6.6</version>
|
<version>6.6</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-sleuth</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-zipkin</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ public class EventController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping(value = "member/{nick}")
|
@GetMapping(value = "member/{nick}")
|
||||||
public String getMemberName(@PathVariable("nick") String nick) {
|
public String getMemberName(@PathVariable("nick") String nick) {
|
||||||
|
logger.info("[EVENT] Calling member's name/nick {}", nick);
|
||||||
return memberFeignClient.getYourName(nick);
|
return memberFeignClient.getYourName(nick);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +61,10 @@ public class EventController {
|
|||||||
@GetMapping(value = "gift/{name}")
|
@GetMapping(value = "gift/{name}")
|
||||||
public String gift(@PathVariable("name") String gift) {
|
public String gift(@PathVariable("name") String gift) {
|
||||||
//sleep();
|
//sleep();
|
||||||
|
logger.info("[EVENT] Gift is {} logging...gift is {}.", gift);
|
||||||
|
|
||||||
|
memberFeignClient.getYourName(gift);
|
||||||
|
|
||||||
return "[EVENT] Gift is " + gift;
|
return "[EVENT] Gift is " + gift;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ spring:
|
|||||||
binder:
|
binder:
|
||||||
zkNodes: localhost # zkNodes, brokers 는 스트림에게 카프카와 주키퍼의 네트워크 위치 전달
|
zkNodes: localhost # zkNodes, brokers 는 스트림에게 카프카와 주키퍼의 네트워크 위치 전달
|
||||||
brokers: localhost
|
brokers: localhost
|
||||||
|
zipkin:
|
||||||
|
enabled: true
|
||||||
|
base-url: http://localhost:9411 # 집킨 통신에 사용되는 URL
|
||||||
|
sleuth:
|
||||||
|
enabled: true
|
||||||
|
sampler:
|
||||||
|
probability: 1.0 # 집킨 으로 데이터를 전송하는 트랜잭션 샘플링 비율
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 8070
|
port: 8070
|
||||||
your.name: "EVENT DEFAULT."
|
your.name: "EVENT DEFAULT."
|
||||||
|
|||||||
@@ -4,6 +4,11 @@
|
|||||||
<include resource="org/springframework/boot/logging/logback/base.xml" />
|
<include resource="org/springframework/boot/logging/logback/base.xml" />
|
||||||
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||||||
|
|
||||||
|
<!-- sleuth -->
|
||||||
|
<!--<property name="spring.application.name" value="event-service" />
|
||||||
|
<property name="CONSOLE_LOG_PATTERN"
|
||||||
|
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [${spring.application.name}] [trace=%X{X-Trace-Id:-},span=%X{X-Span-Id:-}] [%15.15t] %-40.40logger{39}: %m%n" />-->
|
||||||
|
|
||||||
<appender name="STASH" class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender">
|
<appender name="STASH" class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender">
|
||||||
<destination>localhost:4560</destination>
|
<destination>localhost:4560</destination>
|
||||||
<!-- encoder 필요 -->
|
<!-- encoder 필요 -->
|
||||||
|
|||||||
@@ -91,6 +91,15 @@
|
|||||||
<version>6.6</version>
|
<version>6.6</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-sleuth</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-zipkin</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class MemberController {
|
|||||||
|
|
||||||
@GetMapping(value = "name/{nick}")
|
@GetMapping(value = "name/{nick}")
|
||||||
public String getYourName(ServletRequest req, @PathVariable("nick") String nick) {
|
public String getYourName(ServletRequest req, @PathVariable("nick") String nick) {
|
||||||
logger.info("[MEMBER] name/{nick} logging...nick is {}.", nick);
|
logger.info("[MEMBER] ASSU name/{nick} logging...nick is {}.", nick);
|
||||||
return "[MEMBER] Your name is " + customConfig.getYourName() + " / nickname is " + nick + " / port is " + req.getServerPort();
|
return "[MEMBER] Your name is " + customConfig.getYourName() + " / nickname is " + nick + " / port is " + req.getServerPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,6 +41,7 @@ public class MemberController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping(value = "gift/{name}")
|
@GetMapping(value = "gift/{name}")
|
||||||
public String gift(ServletRequest req, @PathVariable("name") String name) {
|
public String gift(ServletRequest req, @PathVariable("name") String name) {
|
||||||
|
logger.info("[MEMBER] gift/{name} logging...name is {}.", name);
|
||||||
return "[MEMBER] " + eventRestTemplateClient.gift(name) + " / port is " + req.getServerPort();
|
return "[MEMBER] " + eventRestTemplateClient.gift(name) + " / port is " + req.getServerPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,14 @@ spring:
|
|||||||
binder:
|
binder:
|
||||||
zkNodes: localhost # zkNodes, brokers 는 스트림에게 카프카와 주키퍼의 네트워크 위치 전달
|
zkNodes: localhost # zkNodes, brokers 는 스트림에게 카프카와 주키퍼의 네트워크 위치 전달
|
||||||
brokers: localhost
|
brokers: localhost
|
||||||
|
zipkin:
|
||||||
|
enabled: true
|
||||||
|
base-url: http://localhost:9411 # 집킨 통신에 사용되는 URL
|
||||||
|
sleuth:
|
||||||
|
enabled: true
|
||||||
|
sampler:
|
||||||
|
probability: 1.0 # 집킨 으로 데이터를 전송하는 트랜잭션 샘플링 비율
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 8090
|
port: 8090
|
||||||
your.name: "MEMBER DEFAULT..."
|
your.name: "MEMBER DEFAULT..."
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
#spring:
|
|
||||||
# application:
|
|
||||||
# name: member-service # 서비스 ID (컨피그 클라이언트가 어떤 서비스를 조회하는지 매핑)
|
|
||||||
# profiles:
|
|
||||||
# active: default # 서비스가 실행할 기본 프로파일
|
|
||||||
# cloud:
|
|
||||||
# config:
|
|
||||||
# uri: http://localhost:8889 # 컨피그 서버 위치
|
|
||||||
@@ -4,6 +4,11 @@
|
|||||||
<include resource="org/springframework/boot/logging/logback/base.xml" />
|
<include resource="org/springframework/boot/logging/logback/base.xml" />
|
||||||
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||||||
|
|
||||||
|
<!-- sleuth -->
|
||||||
|
<!--<property name="spring.application.name" value="member-service"/>
|
||||||
|
<property name="CONSOLE_LOG_PATTERN"
|
||||||
|
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [${spring.application.name}] [trace=%X{X-Trace-Id:-},span=%X{X-Span-Id:-}] [%15.15t] %-40.40logger{39}: %m%n"/>-->
|
||||||
|
|
||||||
<appender name="STASH" class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender">
|
<appender name="STASH" class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender">
|
||||||
<destination>localhost:4560</destination>
|
<destination>localhost:4560</destination>
|
||||||
<!-- encoder 필요 -->
|
<!-- encoder 필요 -->
|
||||||
|
|||||||
1
pom.xml
1
pom.xml
@@ -23,6 +23,7 @@
|
|||||||
<module>eurekaserver</module>
|
<module>eurekaserver</module>
|
||||||
<module>zuulserver</module>
|
<module>zuulserver</module>
|
||||||
<module>auth-service</module>
|
<module>auth-service</module>
|
||||||
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -72,6 +72,15 @@
|
|||||||
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
|
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
|
||||||
</dependency>-->
|
</dependency>-->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-sleuth</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-zipkin</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ spring:
|
|||||||
name: zuulserver # 서비스 ID (컨피그 클라이언트가 어떤 서비스를 조회하는지 매핑)
|
name: zuulserver # 서비스 ID (컨피그 클라이언트가 어떤 서비스를 조회하는지 매핑)
|
||||||
profiles:
|
profiles:
|
||||||
active: default # 서비스가 실행할 기본 프로파일
|
active: default # 서비스가 실행할 기본 프로파일
|
||||||
|
zipkin:
|
||||||
|
base-url: http://localhost:9411 # 집킨 통신에 사용되는 URL
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 5555
|
port: 5555
|
||||||
|
|||||||
Reference in New Issue
Block a user