1. "Performance Counter"와 "Object Request" |
Scouter에는 모니터링 항목을 크게 두 가지("Performance Counter", "Object Request" )로 구분합니다.
"Performance Counter"는 시간에 따라 변하는 값을 실시간 차트 형태로 보여주며, "Object Request"는 사용자가 특정 성능 정보를 요청하여 조회하는 기능기능입니다.
그리고 보통 "Performance Counte"r에 포함하기도 하지만, 그 성격이 전혀 다른 특수한 몇 가지 기능이 있습니다. (XLog, Active Service EQ 등)
이러한 기능들은 상단메뉴에서도 접근이 가능하지만 "Object View"에서 콘텍스트 메뉴에서 접근하는 것이 더 직관적입니다.
1) Performance Counter
Performance Counter는 시계열 성능 메트릭을 의미합니다.
- Counter View를 Collector의 콘텍스트 메뉴에서 여는 경우, 해당 Object Type의 인스턴스 전체에 대해 하나의 차트로 보여줍니다. (예를 들어 TPS 차트를 선택한 경우 동일한 Object Type인 tomcat1, tomcat2, ... tomcatX 에 대한 TPS가 하나의 차트로 보여짐)
- 각 Object의 콘텍스트 메뉴에서 여는 경우에는 해당 Object에 대한 Counter View만 보여줍니다.
- 어떠한 View는 Collector 메뉴에서만 열 수 있거나 혹은 Object 메뉴에서만 열 수 있습니다.
⦁ XLog 및 Active Service EQ등은 Collector 메뉴에서만 열 수 있음
⦁ Heap Total Usage, Sys/User CPU등은 Object 메뉴에서만 열 수 있음
⦁ Scouter에서 중요한 개념중의 하나가 Object Family와 Object Type(monitoring group type)입니다. ⦁ Object Family는 모니터링 항목 특성에 따른 모니터링 대상의 종류를 나타냅니다. 예를 들면 Host와 Java를 Object Family로 볼 수 있습니다. ⦁ Object Type(monitoring group type)은 Family의 하위 개념으로써, 예를 들어 Object Family가 Host라면 이 하위의 Object Type은 Linux, Windows등이 될 수 있고, Java라면 tomcat, jetty 등이 될 수 있습니다. ⦁ 또한 Object Type은 사용자 지정이 가능합니다. 이를 이용해 한 번에 모니터링 할 대상을 동일한 Object Type으로 묶기도 합니다. ⦁ 위 두 가지 개념은 Scouter에서 중요하게 다루어지므로 기억하고 있는게 좋습니다. 주로 Family는 모니터링 항목에 관련되어 있으며, Type은 "어떠한 대상들을 하나의 차트에서 모니터링 할 것인가"와 관련이 있습니다. |
2) Object Request
Performance counter는 시계열 성능 메트릭을 보여줍니다.
반면에 Object request는 원하는 시점에 사용자가 각 Object들에 특정 정보를 요청하는 기능입니다. 요청할 수 있는 정보는 당연히 Object Family에 따라 달라집니다. Object Request는 각 모니터링 대상(Object)의 콘텍스트 메뉴에서 사용이 가능합니다.
2. Host 모니터링 |
1) Host의 성능 Counter
Counter의 항목명으로 알 수 있으므로 따로 설명하지 않습니다.
2) Host의 Object Request에서 제공하는 기능
- Env : OS의 환경 변수를 조회
- Disk Usage : Disk 사용량을 조회
- Top : 요청 시점의 Process를 조회
3. Java 모니터링 |
1) Java 모니터링에서 제공하는 성능 Counter#1
Counter의 이름으로 대부분 파악이 가능하므로 부가적인 설명이 필요한 것들에 대해서만 언급합니다.
- Active Service : 측정 순간에 서버에서 동시에 실행중인 서비스의 개수를 의미
- Elapsed90% : 90%로 느린 응답시간을 나타냄(예를 들어 100개의 요청이 들어왔다면 이중 90번째로 느린 요청의 응답시간임)
- Process CPU : 해당 Java process가 사용하는 CPU% 의미
- Queuing Time : Java 프로그램(주로 Servlet container인 경우)의 앞단의 reverse proxy나 gateway 서버로부터 java 프로그램으로 요청이 들어오기까지의 시간을 의미(reverse proxy나 gateway 서버에 특별한 설정이 필요함)
- Recent User : 일반적으로 말하는 concurrent user와 유사한 개념.
HTTP로 서비스되는 환경에서는 concurrent user라는 개념이 모호하므로, Scouter에서는 최근 5분간 1번이라도 요청을 보낸 사용자수를 Recent User라는 개념으로 제공(측정 시간은 설정으로 변경 가능하며, 유니크 사용자를 cookie, header, ip 등으로 판단하는 옵션 제공)
- Today Visitor : 특정 날짜의 유니크 방문자 수를 보여줌
2) Java 모니터링에서 제공하는 성능 Counter#2
Java 모니터링에서는 기본적인 시계열 차트외에 어플리케이션에 대해 보다 상세한 정보를 제공하는 몇가지 차트가 존재합니다.
- Active Service EQ : 현재 시점에 얼마나 많은 서비스가 동시에 수행되는지를 한 눈에 파악하기 위한 이퀄라이저 형태의 차트. 이 차트를 더블 클릭하게 되면 현재 수행되는 서비스를 "Active Service View"에서 목록 형태로 보여주게 됨
- Active Service View : 현재 시점에 서버에서 수행중인 서비스 목록 및 이에 대한 상세 정보. 서비스명 및 수행중인 SQL이나 호출하고 대기중인 원격 Service URL이 보이며, 코드의 어떤 부분이 수행중인지 알 수 있도록 StackTrace 및 Thread의 Lock 정보 등이 제공됨
- XLog : 모든 요청에 대해 scatter 차트형태로 보여주며 이를 통해 어플리케이션의 상태를 직관적으로 파악할 수 있음. XLog 차트를 통해 어플리케이션 상태를 파악하고, 상세한 정보는 개별 요청의 Profile View에서 확인하게 됨.
Scouter의 제품 목표 중 하나가 XLog 차트를 이용하여 어플리케이션에서 발생하는 문제를 빠르게 확인하고, 원인을 찾아내는 것이기 때문에 여기서 제공하는 기능이 상당히 많습니다.
3) Java 모니터링에서 제공하는 Object Request
- Thread List : 해당 Java Process의 Thread 목록을 테이블 형태로 보여줌
- Active Service List : 요청 시점에 실행중인 Service 목록을 보여줌. Active Service EQ를 더블 클릭해서도 접근할 수 있음
- Loaded Class List : 로드한 Class의 목록을 보여줌. 변경한 Hooking 옵션을 Runtime에 적용하기 위해 Class를 Redefine 하는 기능을 제공
- Heap Histogram : Heap Histogram을 보여줌
- Thread Dump : Thread Dump를 보여줌
- Env : JVM의 환경변수를 조회함
- Socket : 해당 Process에셔 연결한 Socket의 정보를 보여줌. Socket#connect의 stackTrace를 생성하고 조회할 수 있음
- System.GC : System.GC()를 호출
- Heap Dump : Heap Dump를 생성
- File Dump : 위에서 언급한 기능들을 수행하여 파일로 저장
Object View에서 보여지는 Object들은 일정 시간마다 Collector (Server)로 Heart Beat을 보내게 되어었으며, 일정시간 Heart Beat이 없으면 Inactive Object(회색)로 표시되고 경고 알림이 표시되게 됩니다. 그런데 만약 정말 사용하지 않는 Object라면 회색으로 남아있는 아이콘을 수동으로 제거해줄 필요가 있습니다. 이 경우 "Remove Inactive"기능을 통해 제거하면 되는데, 이 버튼이 찾기 애매한 위치에 있습니다. |
출처 : http://gunsdevlog.blogspot.com/2017/07/scouter-apm-2-12.html
'IT 이야기 > Scouter' 카테고리의 다른 글
Scouter Active Service와 XLog (0) | 2019.12.12 |
---|---|
Scouter 기본 항목 모니터링(2/2) (0) | 2019.12.12 |
Scouter 설치 (0) | 2019.12.12 |
Scouter Client 사용법 (0) | 2019.12.12 |
Scouter Client Quick Guide (0) | 2019.12.12 |
댓글