지난 9월 서비스 출시이후 사용자들의 데이터를 수집하고 애플리케이션의 가용성을 측정하는 방법에 대한 관심이 커졌다. 특히 로그 모니터링에 대한 관심이 커졌는데, 관련 내용을 찾아보는 과정에서 APM 이라는 키워드를 알게 되었다.
APM 은 Application Performance Management의 약자로, 애플리케이션 및 코드의 성능 문제를 신속하게 식별하고 해결하기 위한 프로세스이다. 대표적인 APM 으로는 Dynatrace, New relic, AppDynamics, WhaTap 오픈소스로는, Naver의 Pinpoint, LG CNS의 Scouter 가 있다.
우리는 비용과 관리, 운영 측면에서 최소한의 리소스로 사용할 수 있는 도구를 원했기때문에 Scouter를 선택하게되었다.
Scouter는 앞서 설명한 바와 같이 Java 애플리케이션, 특히 Tomcat 과 같은 웹 베이스 애플리케이션에 특화된 오픈소스 APM 도구입니다.
Scouter로 모니터링할 경우에는 CPU, TPS, Active Service EQ, GC time, GC count, Xlog 등의 지표를 구성할 수 있습니다. 이 중 CPU와 TPS는 기간별 지표를 확인할 수 있으며, Active Service EQ는 시각적으로 서비스의 상태를 확인하고 Thread 목록과 StackTrace 목록을 찾아가기 쉽게 구성되어 있어, 문제가 되는 서버를 추적하기가 용이합니다.
Scouter에는 이 외에도 알람,성능 카운터, Summary, Xlogdata 전처리, Xlog 상세 profile 정보 전처리 등을 위한 서버 측의 플러그인을 제공하며 Agent 측에서는 httpservice, httpcall, capture, jdbcpull 등의 다양한 플러그인을 제공하고 있습니다.
scouter/server 디렉터리로 이동하여 sh startup.sh 명령을 통해 Collector 서버를 실행합니다. (윈도우는 .bat 파일 실행)
Exception이 터지면서 구동이 안되시는 분은 Java 8 버전으로 바꿔서 시도해보시길 바랍니다. 저도 다른 VM 에서는 잘 구동되는데, 로컬에서는 안되네요..ㅠ
# 설치된 java version 확인
$ /usr/libexec/java_home -VCopy
# export JAVA_HOME=$(/usr/libexec/java_home -v 변경할 버전) - 자바 변경하기
$ export JAVA_HOME=$(/usr/libexec/java_home -v 11)
# bash shell 사용할 경우 - 변경 사항 적용
$ source ~/.bash_profile
# zsh shell 사용할 경우 - 변경 사항 적용
$ source ~/.zshrc
# 변경된 자바 버전 확인
$ java -version
scouter.agent.jar 과 앞서 설정했던 scouter.conf 파일 경로를 각각 javaagent, scouter.config 속성에 지정해주면 됩니다.
이 때,java agent jar 파일의 절대 경로를 잘 입력해주세요. 경로를 잘못입력하면 Java Agent를 찾을 수 없어 MENIFEST 관련 예외 문구가 출력될겁니다. (필자는-javaagent:/Users/kai/dev/scouter/agent.java/scouter.agent.jar경로를 입력함)
다음과 같이, Spring Boot 로고가 출력되기 전에 Scouter 문구가 출력되면 성공입니다.
이제부터 Client에서 WAS-01 에 해당하는 애플리케이션의 성능 지표를 확인할 수 있습니다.
지난 9월 서비스 출시이후 사용자들의 데이터를 수집하고 애플리케이션의 가용성을 측정하는 방법에 대한 관심이 커졌다. 특히 로그 모니터링에 대한 관심이 커졌는데, 관련 내용을 찾아보는 과정에서 APM 이라는 키워드를 알게 되었다.
APM 은 Application Performance Management의 약자로, 애플리케이션 및 코드의 성능 문제를 신속하게 식별하고 해결하기 위한 프로세스이다. 대표적인 APM 으로는 Dynatrace, New relic, AppDynamics, WhaTap 오픈소스로는, Naver의 Pinpoint, LG CNS의 Scouter 가 있다.
우리는 비용과 관리, 운영 측면에서 최소한의 리소스로 사용할 수 있는 도구를 원했기때문에 Scouter를 선택하게되었다.
Scouter는 앞서 설명한 바와 같이 Java 애플리케이션, 특히 Tomcat 과 같은 웹 베이스 애플리케이션에 특화된 오픈소스 APM 도구입니다.
Scouter로 모니터링할 경우에는 CPU, TPS, Active Service EQ, GC time, GC count, Xlog 등의 지표를 구성할 수 있습니다. 이 중 CPU와 TPS는 기간별 지표를 확인할 수 있으며, Active Service EQ는 시각적으로 서비스의 상태를 확인하고 Thread 목록과 StackTrace 목록을 찾아가기 쉽게 구성되어 있어, 문제가 되는 서버를 추적하기가 용이합니다.
Scouter에는 이 외에도 알람,성능 카운터, Summary, Xlogdata 전처리, Xlog 상세 profile 정보 전처리 등을 위한 서버 측의 플러그인을 제공하며 Agent 측에서는 httpservice, httpcall, capture, jdbcpull 등의 다양한 플러그인을 제공하고 있습니다.
scouter/server 디렉터리로 이동하여 sh startup.sh 명령을 통해 Collector 서버를 실행합니다. (윈도우는 .bat 파일 실행)
Exception이 터지면서 구동이 안되시는 분은 Java 8 버전으로 바꿔서 시도해보시길 바랍니다. 저도 다른 VM 에서는 잘 구동되는데, 로컬에서는 안되네요..ㅠ
# 설치된 java version 확인
$ /usr/libexec/java_home -VCopy
# export JAVA_HOME=$(/usr/libexec/java_home -v 변경할 버전) - 자바 변경하기
$ export JAVA_HOME=$(/usr/libexec/java_home -v 11)
# bash shell 사용할 경우 - 변경 사항 적용
$ source ~/.bash_profile
# zsh shell 사용할 경우 - 변경 사항 적용
$ source ~/.zshrc
# 변경된 자바 버전 확인
$ java -version
scouter.agent.jar 과 앞서 설정했던 scouter.conf 파일 경로를 각각 javaagent, scouter.config 속성에 지정해주면 됩니다.
이 때,java agent jar 파일의 절대 경로를 잘 입력해주세요. 경로를 잘못입력하면 Java Agent를 찾을 수 없어 MENIFEST 관련 예외 문구가 출력될겁니다. (필자는-javaagent:/Users/kai/dev/scouter/agent.java/scouter.agent.jar경로를 입력함)
다음과 같이, Spring Boot 로고가 출력되기 전에 Scouter 문구가 출력되면 성공입니다.
이제부터 Client에서 WAS-01 에 해당하는 애플리케이션의 성능 지표를 확인할 수 있습니다.