Scouter 소개
오픈소스 APM인 Scouter는 JVM(WAS, Standalone application)을 사용하는 어플리케이션 및 OS 자원에 대한 모니터링 모니터링 기능을 제공한다.
- APM : Application performance montoring / application performance management
- 모니터링 대상 (현재)
- Java application - Web application (on Tomcat, JBoss, Resin ...), Standalone java application
- OS - LInux, Windows, Unix
- 모니터링 대상 (TOBE)
- Redis, Apach HTTPD, nginX, Nodejs...
Scouter 설치
Scouter 적용(1)과 설정값이 다르므로, 참고한 Github 링크을 통해 설치한다.
위 링크에서 사용법과 설치 방법을 확인할 수 있다.
Scouter 설치 시 주의사항
Scouter 적용(1)과 달리 Standalone java application(Netty) 에 적용할 때, 몇 가지 다른 점이 존재한다.
- /agent.java/conf/scouter.conf 파일을 수정해야한다.
'hook_service_patterns=' 항목에 서비스가 시작되는 메소드를 추가해야한다.
Web application의 경우 시작점이 HttpServlet#service 로 정해져 있기때문에 scouter에 기본으로 설정되어 있어 측정이 가능한 것이다.
Netty를 사용하여 NIO로 요청을 받았더라도, 그 이후 처리에 thread 를 할당하여 비즈니스 로직을 시작하고 끝날때 까지 해당 thread를 사용하는 구조라면 측정이 가능하다.
만약 vert.x 와 같이 single(또는 수개의) thread가 event loop를 통해 처리하는 방식의 플랫폼이라면 추적이 불가능하다.
여기서 Application 의 main 메소드를 등록하면, Scouter Client 의 Active Service EQ 창은 활성화되지만, XLog 창에 서비스되는 TCP/IP 프로토콜이 표시되지 않는다.
이유는 Application 의 main 메소드가 서비스 시작 부분이 아니란 이야기다.
필자는 이부분에서 많은 시간을 들여 원인을 알아냈고, 서비스가 처음 시작되는 부분을 ChannelInboundHandlerAdapter 클래스의 메소드로 변경했다.
또한, 'hook_method_patterns=' 에 로깅하고 싶은 클래스를 지정했다.
Scouter Client 를 설정한다.
- Scouter Client의 Window > Preference > General 메뉴에서 Object Type 을 java 로 변경한다.
- Scouter Client의 해당 Object를 선택한 뒤, 우클릭해서 Java > XLog 창을 열어준다.
3. 개발자와 의사소통이 필요하다면, Github에 Issue 메뉴를 통해 개발자와 QnA 도 가능하다.
Scouter 설치 완료(Client) 화면
'Tool' 카테고리의 다른 글
[IntelliJ] 자동완성 단축 키워드 (0) | 2022.05.30 |
---|---|
[Mac] Redis CLI 설치 (0) | 2022.05.25 |
RCP 정의 및 사용법 (0) | 2018.04.18 |
[Monitoring Tool] Scouter 적용(1) - Web application(Tomcat) (0) | 2018.01.17 |