Introduction

InfraRED는 JavaEE 기반 어플리케이션의 성능을 모니터링할 수 있는 기능을 제공하는 오픈 소스 Performance Tool로써, Aspect를 이용하여 성능 측정을 위한 데이터를 수집하고 데이터 분석 결과를 리포팅해 주는 역할을 수행한다. Anyframe Monitoring Tool은 InfraRED(http://infrared.sourceforge.net ) 를 기반으로 하고, InfraRED 내에 내재된 다양한 버그들을 조치하고 개선된 UI를 제공한다. 다음에서는 Anyframe Monitoring Tool의 근간을 이루는 InfraRED의 기본 구조와 Anyframe Monitoring Tool의 주요 기능에 대해 살펴보기로 한다.

기본 구조

InfraRED는 다음 그림에서 보는 바와 같이 기본적으로 Agent, Collector, GUI로 구성되어 있다.


  • Agent : Instrumented 어플리케이션에서 발생하는 요청을 기반으로 어플리케이션 실행에 관한 데이터를 수집하고 통합한 후, Collector에게 전송한다. Agent는 어플리케이션 서버 JVM에 포함되어 있어야 하며, Instrumented 어플리케이션은 해당 어플리케이션 서버를 기반으로 동작하게 된다.
  • Collector : 다양한 Agent로부터 전달받은 데이터를 조합하여 내부 DB에 저장한다.
  • GUI : Collector와 함께 제공되며, Collector에게 질의를 던져 사용자에게 수집된 데이터를 보여주는 역할을 수행한다. Anyframe Monitoring Tool은 Ajax 기반의 Google Web Tool kit(GWT)를 기반으로 보다 편리하고 효율적인 형태의 개선된 UI를 제공한다.

주요 기능

다음은 Anyframe Monitoring Tool에 의해 제공되는 주요 기능들이다.

주요 기능
설명
Statistics Absolute module, Hierarchical module, 최종 호출에 대한 모니터링 통계를 보여준다.
Performance statistics for various elements, jsp, http, etc. SQL, JDBC, JSP, HTTP 레이어별로 모니터링 통계를 보여준다.
Graphs 3차원 그래프, Color labels, Tooltip labels 등의 효과를 통하여 데이터 분석이 편리해진다.
Charts 호출된 명령어들에 대해 총 소요시간, 실행 수, 전체 실행에 대한 백분율 등을 한눈에 알아보기 쉽도록 제공한다.
Better readable SQL's 쿼리문을 쉽게 알아볼 수 있도록, 모든 쿼리를 대문자로 변환하고 띄어쓰기를 제공한다.
Hierarchical Views 데이터 분석 결과를 알아보기 쉽도록 하기 위해 데이터, 백분율, 백분율 막대 그래프 표현시 color를 사용하였다.
Multiple Applications 여러 어플리케이션의 모니터링 결과를 확인할 수 있도록 구성되어 있다.
Reporting Excel, PDF, HTML, CSV 포맷 형태의 리포트 생성을 지원한다.
Refresh or Reset 지금까지 수집된 데이터를 Reset하거나 최신으로 변경하기 위한 Refresh 기능을 지원한다.