MorrieNomad
행복한 공간 만들기
MorrieNomad
전체 방문자
오늘
어제
  • 분류 전체보기 (40)
    • Spring (5)
    • Web (0)
    • Software Architecture (0)
    • Network (0)
    • AI (0)
      • Machine Learning (0)
      • Deep Learning (0)
    • BlockChain (1)
    • DB (4)
    • Tool (5)
    • Fishing (0)
    • Seminar (1)
    • IT 잡동사니 (0)
    • SRE (0)
    • Language (1)
      • Java (0)
      • Kotlin (1)
      • Python (0)
    • OpenSource (2)
    • OS (0)
      • Linux (0)
    • Retrospective (3)
    • Article (4)
    • Study (14)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • DB
  • MAC
  • 게임 서버
  • retrospective
  • mysql
  • 개발자
  • 수정일자
  • 시니어개발자
  • Kotlin#Intellij
  • Circuitbreaker
  • MicroService
  • docker
  • 회고
  • 생성일자
  • MSA
  • datagrip
  • 성능 분석
  • cqrs
  • ngrinder
  • Redis

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
MorrieNomad

행복한 공간 만들기

Tool

[Monitoring Tool] Scouter 적용(2) - Standalone java application(Netty)

2018. 1. 17. 17:01

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 링크을 통해 설치한다.

https://github.com/scouter-project/scouter/blob/master/scouter.document/use-case/NON-HTTP-Service-Trace_kr.md

위 링크에서 사용법과 설치 방법을 확인할 수 있다.

 

Scouter 설치 시 주의사항

Scouter 적용(1)과 달리 Standalone java application(Netty) 에 적용할 때, 몇 가지 다른 점이 존재한다. 

  1.  /agent.java/conf/scouter.conf 파일을 수정해야한다.
    1. 'hook_service_patterns=' 항목에 서비스가 시작되는 메소드를 추가해야한다.

      1. Web application의 경우 시작점이 HttpServlet#service 로 정해져 있기때문에 scouter에 기본으로 설정되어 있어 측정이 가능한 것이다.

      2. Netty를 사용하여 NIO로 요청을 받았더라도, 그 이후 처리에 thread 를 할당하여 비즈니스 로직을 시작하고 끝날때 까지 해당 thread를 사용하는 구조라면 측정이 가능하다. 

      3. 만약 vert.x 와 같이 single(또는 수개의) thread가 event loop를 통해 처리하는 방식의 플랫폼이라면 추적이 불가능하다.

    2. 여기서 Application 의 main 메소드를 등록하면, Scouter Client 의 Active Service EQ 창은 활성화되지만, XLog 창에 서비스되는 TCP/IP 프로토콜이 표시되지 않는다.

    3. 이유는 Application 의 main 메소드가 서비스 시작 부분이 아니란 이야기다.

    4.  필자는 이부분에서 많은 시간을 들여 원인을 알아냈고, 서비스가 처음 시작되는 부분을 ChannelInboundHandlerAdapter 클래스의 메소드로 변경했다.

    5. 또한, 'hook_method_patterns=' 에 로깅하고 싶은 클래스를 지정했다.

  2. Scouter Client 를 설정한다.

    1. Scouter Client의 Window > Preference > General 메뉴에서 Object Type 을 java 로 변경한다.
    2. 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
    'Tool' 카테고리의 다른 글
    • [IntelliJ] 자동완성 단축 키워드
    • [Mac] Redis CLI 설치
    • RCP 정의 및 사용법
    • [Monitoring Tool] Scouter 적용(1) - Web application(Tomcat)
    MorrieNomad
    MorrieNomad

    티스토리툴바