ZIpkin을 사용하여 Spring Boot 응용 프로그램 추적
5707 단어 SpringBootzipkin
개요
Zipkin을 만졌기 때문에 도입 방법을 적어두세요
객체 추적 응용 프로그램은 SpringBoot입니다.
가져오기 방법
최소 구성으로, 어쨌든 이동하는 곳을 목표로
Zipkin 서버 구축
Zipkin 서버를 시작합니다.docker run -d -p 9411:9411 openzipkin/zipkin
방문http://localhost:9411/ 아래 화면을 표시하면 됩니다!
어플리케이션 구현
의존성spring-cloud-sleuth-zipkin
및 spring-cloud-starter-sleuth
guild.gradledependencies {
compileOnly('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok')
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
}
HTTP 통신에서 RestTemplate를 사용합니다.
Jipkin과 합작하기 위해서는 RestTemplate를 Bean에 등록해야 합니다@Configuration
public class ApplicationConfiguration {
@Bean
public RestTemplate myRestTemplate() {
return new RestTemplateBuilder()
.rootUri("http://localhost:8080")
.build();
}
}
응용 프로그램의 본체는 다음과 같다./proxy/hello
에서 받은 요청은 /hello
에서proxy만 있으면 되는 API입니다.@RestController
@RequiredArgsConstructor
public class SampleController {
private final RestTemplate restTemplate;
@GetMapping("/proxy/hello")
public String proxyToHello() {
return restTemplate.getForObject("/hello", String.class);
}
@GetMapping("/hello")
public String hello() {
return "Hello zipkin.";
}
}
마지막은property입니다.
application.ymlspring:
zipkin:
# zipkinサーバのURLを指定
base-url: "http://localhost:9411/"
# Zipkinを有効化(デフォルトでも有効)
enabled: true
sender:
# 情報の送信方法を指定
type: web
application:
# アプリケーション名を指定
name: zipkin-sample
sleuth:
sampler:
# 秒間の送信数
rate: 10
bootRun에서 응용 프로그램을 시작한 후 종료
동작 확인
그러면 응용 프로그램에 요청을 보내보도록 하겠습니다.$ curl localhost:8080/proxy/hello
Hello zipkin.
Jipkin의 UI에서 보면...
🎉🎉🎉🎉
후기
실제 운용할 때, Jipkin이 데이터를 영구화할 수 있다는 것을 의식해야 한다
어쨌든 어떤 느낌인지 만져봐도 돼요.
시간 나면 이런 것도 해보고 싶어요.
최소 구성으로, 어쨌든 이동하는 곳을 목표로
Zipkin 서버 구축
Zipkin 서버를 시작합니다.
docker run -d -p 9411:9411 openzipkin/zipkin
방문http://localhost:9411/ 아래 화면을 표시하면 됩니다!어플리케이션 구현
의존성
spring-cloud-sleuth-zipkin
및 spring-cloud-starter-sleuth
guild.gradledependencies {
compileOnly('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok')
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
}
HTTP 통신에서 RestTemplate를 사용합니다.Jipkin과 합작하기 위해서는 RestTemplate를 Bean에 등록해야 합니다
@Configuration
public class ApplicationConfiguration {
@Bean
public RestTemplate myRestTemplate() {
return new RestTemplateBuilder()
.rootUri("http://localhost:8080")
.build();
}
}
응용 프로그램의 본체는 다음과 같다./proxy/hello
에서 받은 요청은 /hello
에서proxy만 있으면 되는 API입니다.@RestController
@RequiredArgsConstructor
public class SampleController {
private final RestTemplate restTemplate;
@GetMapping("/proxy/hello")
public String proxyToHello() {
return restTemplate.getForObject("/hello", String.class);
}
@GetMapping("/hello")
public String hello() {
return "Hello zipkin.";
}
}
마지막은property입니다.application.yml
spring:
zipkin:
# zipkinサーバのURLを指定
base-url: "http://localhost:9411/"
# Zipkinを有効化(デフォルトでも有効)
enabled: true
sender:
# 情報の送信方法を指定
type: web
application:
# アプリケーション名を指定
name: zipkin-sample
sleuth:
sampler:
# 秒間の送信数
rate: 10
bootRun에서 응용 프로그램을 시작한 후 종료동작 확인
그러면 응용 프로그램에 요청을 보내보도록 하겠습니다.
$ curl localhost:8080/proxy/hello
Hello zipkin.
Jipkin의 UI에서 보면...🎉🎉🎉🎉
후기
실제 운용할 때, Jipkin이 데이터를 영구화할 수 있다는 것을 의식해야 한다
어쨌든 어떤 느낌인지 만져봐도 돼요.
시간 나면 이런 것도 해보고 싶어요.
Reference
이 문제에 관하여(ZIpkin을 사용하여 Spring Boot 응용 프로그램 추적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rhirabay/items/6fa72618380b007bd476텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)