From 6c42955937875b84c67865fbf9cdc01c4f7c6edd Mon Sep 17 00:00:00 2001 From: Uno Date: Tue, 13 Jul 2021 05:26:49 +0900 Subject: [PATCH] =?UTF-8?q?Experiment=20#3=20-=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EB=9F=AC=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flight Recorder, BufferingApplicationStartup 테스트 * flight recorder * 코드 짠다 * 프롬프트에서 `java -XX:StartFlightRecording:filename=recording.jfr,duration=10s -jar ${jar파일}` 로 부트 실행 * 이 내용은 `FlightRecorderApplicationStartup` 안에 javadoc으로 가이드 되어 있음 * 부트 실행 종료 * 프로젝트 루트에서 `recording.jfr` 확인 * JDK Mission Control 실행 * 파일 로드 * BufferingApplicationStartup * 코드 구현 * 평범하게 부트 실행 * actuator로 `/startup` 항목 추가된 것 확인 * POST 로 데이터 조회: `curl -X POST http://localhost:8080/actuator/startup | jq` --- .../FastcampusSpringBootPracticeApplication.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java b/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java index 0e33857..7523505 100644 --- a/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java +++ b/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java @@ -2,14 +2,19 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; import org.springframework.boot.context.properties.ConfigurationPropertiesScan; +import org.springframework.core.metrics.jfr.FlightRecorderApplicationStartup; @ConfigurationPropertiesScan @SpringBootApplication public class FastcampusSpringBootPracticeApplication { public static void main(String[] args) { - SpringApplication.run(FastcampusSpringBootPracticeApplication.class, args); + SpringApplication application = new SpringApplication(FastcampusSpringBootPracticeApplication.class); +// application.setApplicationStartup(new FlightRecorderApplicationStartup()); + application.setApplicationStartup(new BufferingApplicationStartup(1000)); + application.run(args); } }