Panels

Anyframe Monitoring Tool은 Top 영역, Left 영역, Right 영역으로 구분지어져 있으며 Top 영역에는 Report, Refresh, Reset 기능을 제공한다. 그리고 Left 영역에서는 다음과 같이 3개의 panel을 Right 영역에서는 panel별 모니터링 결과를 표현하고 있다.
다음에서는 Top 영역과 Left 영역에 대해 보다 상세히 알아보도록 하자.

Absolute Panel

Anyframe Monitoring Tool을 통해 모니터링 되는 대상 레이어(HTTP, APPLICATION_SERVICE, JDBC, SQL) 별로 구분하여 총 실행 시간과 호출 횟수를 그래프 형태로 표현한다.

Summary Tab - 일반



summary tab에서는 총 실행 시간, 호출 횟수, 평균시간, 최소 실행시간, 최대 실행 시간, 최초 실행과 최후 실행 시간, adjusted average를 보여준다. 각각은 다음과 같은 의미를 지닌다.
총 실행 시간 한 번의 호출에 대한 총 경과 시간
호출 횟수 총 실행 횟수
평균 시간 호출을 처리하기 위해 소요된 평균 실행 시간
최소, 최대 실행 시간 실행 시간중 가장 적게 걸린 시간과 가장 오래 걸린 시간
최초, 최후 실행 시간 여러번의 호출들 중에서 최초 혹은 최후의 실행에 대한 실행 시간
adjusted average 최초 실행 시간을 제외한 나머지 실행 시간의 평균

* Anyframe Monitoring Tool에 의해 보여지는 숫자들에 대해 정확한 이해를 얻고자 하는 경우에는 본 페이지 하단의 [참고] Interpreting Layer Number 를 참고하도록 한다.

Trace Tab

또한 각 레이어별 실행 정보에 대해서는 추적이 가능하며, trace path는 trace tab을 통해 총 시간, 총 호출 횟수와 함께 보여진다. 다음에서는 trace tab을 통해 표현되는 blue bar에 대해서 알아보기로 하자.


  • root operation의 bar는 완벽하게 색칠되어져 있으며 가장 큰 길이를 갖는다.
  • 상위 operation에 의해 호출되는 operation의 bar의 전체 길이는 상위 bar의 색칠된 부분의 길이와 같다.
  • 각 operation에 대해 색칠된 부분은 상위 부분의 총 실행 시간 대비 해당 부분의 총 실행 시간에 대한 백분율을 표현한다.
이런 bar들을 통해 어플리케이션의 병목 현상을 모니터링할 수 있다.

Summary Tab - SQL

다음 그림에서는 Summary tab을 통해 쿼리문 호출 빈도수를 기반으로 상위 5개의 쿼리문을 보여주고 있다. 실행된 쿼리문 전체는 tooltip을 통해 확인할 수 있다.



위 그림에 제시된 표에서 각 항목은 Execute statement와 Prepare Statement로 나뉘어져 데이터를 제시하고 있다. Prepare and Execute statement는 어떤 요청을 처리하기 위해 호출된 JDBC 메소드를 의미한다.

Hierarchical Panel

Hierarchical panel에서는 "."을 구분자로 하는 레이어간 호출 관계로 레이어명을 표시하고, 가장 마지막에 표현된 레이어에 대한 통계 자료를 제시한다. (예를 들어, HTTP.APPLICATION_LAYER.JDBC의 경우 HTTP.APPLICATION_LAYER로부터 호출된 JDBC 레이어에 대한 정보를 보여주게 된다.)

Hierarchical Panel에서도 Absolute Panel과 동일한 유형의 모니터링 결과들을 확인할 수 있다.

Last Invocation Panel

Last Invocation panel은 마지막으로 호출된 몇 개의 실행 흐름에 대해 track down하는 방법을 제공한다. 도표는 실행에 소요된 총 시간과 횟수를 보여준다.


다음의 그림을 통해 두 가지 타입의 sequence invocation 표현에 대해 알아보도록 하자.



위 그림에 의하면 sequence invocation이 딱 한번 카운트 된 경우와 여러번 카운트 된 경우들이 존재한다. 만약 stack trace에 포함된 다른 operation을 호출하는 operation이라면 한번 이상 카운트 된 경우가 존재할 것이다. 그렇지 않고 operation이 다른 operation을 호출하지 않았다면 stack trace를 포함하지 않고 단 한 번만 카운트될 것이다.

Report

모니터링 결과를 다양한 포맷의 문서로 리포팅하기 위해 사용하는 기능이다. Report 링크를 클릭하면 Report Wizard가 오픈되며 Step별로 선택된 값에 따라 다양한 보고서가 생성될 것이다.
  • Step1 : 보고서 포맷 선택.




  • Step 2 : 리포팅 대상 panel 선택. (Absolute module, Hierarchical module 중 택일)




  • Step 3 : 보고서에 작성할 내용에 대한 상세 정보 선택.



  • Step 4 : 보고서에 작성할 내용 선정. 전체 데이터 중에서 상위 몇 개의 데이터만 선택할지, 수 있다. 또한 수치로 나타낼지 다이어그램으로 나타낼지 (혹은 둘 다) 정의



  • Finish를 클릭하면 생성할 보고서에 대한 선택된 정보를 간략히 요약한 화면이 제시되고, Download 버튼을 누르면 작성된 보고서를 로컬로 다운로드할 수 있다.



다음 그림은 보고서 양식을 Excel로 선택했을 경우 작성된 보고서의 예이다.

Refresh

실시간으로 변하는 실행 정보들에 대한 모니터링 결과를 바로 확인할 수 있도록 하기 위해 제공되는 기능이다. Refresh 링크를 클릭하면 어플리케이션의 현재 상황을 다시 스캔함으로써, 실시간의 모니터링 정보로 갱신할 수 있다.

Reset

Reset 기능은 지금까지의 수집된 데이터를 모두 지우고, 초기화하기 위해 사용할 수 있는 기능이다. Reset 링크를 클릭하면 현재까지 수집된 모든 데이터들은 지워지게 됨에 유의하도록 한다.

[참고] Interpreting Layer Number

Anyframe Monitoring Tool에 의해 보여지는 숫자들에 대해 알아보도록 하자. 이 툴을 효과적으로 사용하기 위해 정확한 이해를 필요로 하는 의문점이 존재한다.

일반적인 상황에서는 하위 레벨들의 총 실행 시간의 합은 상위 레벨의 총 실행 시간과 동일하다. 하지만 다음 그림에서는 다른 값을 나타내는 것을 알 수 있다.





위의 그림들에서 하위 레벨의 총 실행시간을 더한 값은 3125(ms)이나 하위 레벨을 모두 포함한 APPLICATION_SERVICE의 총 실행 시간은 2484(ms)임을 알 수 있다.

이러한 경우 multi threading에 대한 이해가 전제되어야 한다.



위 그림에서 보는 바와 같이 레이어 X에서 시작 지점과 끝 지점이 연결되어 있는 메소드를 가정해보자. 세 개의 메소드가 두 개의 분리된 thread에서 동시에 실행되고 있다. Method A 는 70ms, Method B는 50ms 그리고 Method C 가 30ms의 시간동안 실행된다. 하지만 Layer X의 총 실행시간은 80ms가 된다.(70 + 50 + 30 = 150ms 가 아니다.) 이것은 메소드들이 2 개의 Thread에서 동시에 실행되기 때문이다.