Scouter란?
공식사이트 : https://github.com/scouter-project/scouter/releases
커뮤니티 : https://www.facebook.com/groups/scouterapm/
Scouter란 오픈소스 APM으로 한국 개발자들이 주축으로 개발되는 오픈 소스입니다. JVM 가비지 콜렉션 횟수, 시간,
힙메모리 사용율, 자바 프로세스의 CPU 사용율, SQL 처리시간, OS의 CPU, Memory, Network Traffic 등 다양한 지표를 제공합니다.
Scouter 주요 기능
1. 실시간 성능 모니터링
Scouter는 애플리케이션 서버의 실시간 성능 지표를 제공합니다.
CPU 사용률, 메모리 사용량, GC(Garbage Collection) 활동, 네트워크 트래픽 등의 지표를 통해 시스템의 현재 상태를 파악할 수 있습니다.
2. 트랜잭션 추적
사용자 요청별로 트랜잭션을 추적하여, 각 요청이 처리되는 과정에서 발생하는 지연 시간과 성능 저하의 원인을 분석할 수 있습니다.
이를 통해 개발자는 성능 문제를 빠르게 식별하고 개선할 수 있습니다.
3. 서비스 맵
애플리케이션의 구성 요소 간의 상호작용을 시각적으로 표현하는 서비스 맵을 제공합니다.
이를 통해 애플리케이션 아키텍처의 복잡성을 이해하고, 문제가 발생했을 때 영향을 받는 구성 요소를 식별할 수 있습니다.
4. 알림 및 경고
성능 임계값을 설정하고, 이를 초과할 경우 사용자에게 경고 알림을 보내는 기능을 지원합니다.
이를 통해 시스템 관리자와 개발자는 잠재적인 문제에 대해 사전에 알림을 받고, 신속한 대응이 가능합니다.
5. 사용자 정의 대시보드
다양한 성능 지표를 사용자의 필요에 맞게 커스터마이즈할 수 있는 대시보드를 제공합니다.
사용자는 중요한 성능 지표를 한눈에 볼 수 있어서, 시스템의 전반적인 상태를 쉽게 파악할 수 있습니다.
6. 로그 분석
애플리케이션과 서버의 로그를 수집하고 분석하는 기능을 통해 문제의 근본 원인을 파악할 수 있습니다.
로그 데이터를 바탕으로 성능 저하의 원인을 분석하고, 해결 방안을 모색할 수 있습니다.
Scouter는 그 사용의 용이성과 오픈 소스라는 장점 덕분에 중소기업이나 스타트업에서 비용 효율적인 APM 솔루션을 찾는 경우 자주 선택됩니다.
또한, 꾸준히 업데이트되고 커뮤니티에 의해 지원되는 특성은 Scouter를 더욱 매력적인 선택으로 만듭니다.
Scouter 라이센스
- Apache License v2.0
Scouter의 구성
에이전트(agent)
- HostAgent : 단독으로 실행되며 서버 OS 혹은 DB 등에서 자료를 모아 수집기에 전달합니다.
- JavaAgent : 모니터링하기 원하는 Java 어플리케이션에 포함된 채로 기동이 됩니다. JVM 수준에서 확인할 수 있는 지표들을 수집기로 보냅니다.
Server(Collector:수집기)
에이전트에서 받은 지표들을 모아서 저장합니다.
Agent에서 보낸 데이터를 받아 분석하고, Client의 접속을 승인하는 프로그램으로, 데이터 분석 등의 주요 기능들은 모두 서버에서 이루어집니다. 서버의 핵심 부분 대부분은 Scala로
작성되어, Java를 이용하여 작성된 Scala 모듈을 불러오는 형태의 구성입니다.
클라이언트(Viewer)
수집기를 통해 지표를 받아서 그래프로 표현합니다.
Server(Collector:수집기)에서 분석한 정보들을 직접 눈으로 확인할 수 있는 프로그램으로, 오픈 소스인 이클립스를 바탕으로 만들어진 독립형 프로그램입니다. 그래프, 수치 등을 시각적으로 볼 수 있습니다.
Jenniper란?
(주)제니퍼소프트 사가 개발한 APM으로서, 자바, PHP, .NET 플랫폼에서 운영되고 있는 애플리케이션의 성능 관리를 위한 최고의 기술로 구현된 APM 솔루션입니다.
주로 Tomcat, WebLogic, WebSphere, Jeus 등 WAS 기반에 운영되고 있는 엔터프라이즈 자바 애플리케이션의 성능 관리를 위해 많은 고객사들이 사용하고 있습니다.
물론 WAS 기반이 아닌 자바 스탠드얼론 애플리케이션도 제니퍼를 통해 모니터링 할 수 있습니다.
Jenniper 주요 기능
1. 실시간 성능 모니터링
애플리케이션의 CPU 사용량, 메모리 사용량, 가비지 컬렉션(GC) 활동 등 핵심 성능 지표를 실시간으로 모니터링합니다.
이를 통해 시스템 관리자와 개발자는 애플리케이션의 현재 상태를 실시간으로 파악하고, 성능 저하를 빠르게 감지할 수 있습니다.
2. X-View (트랜잭션 흐름 분석)
사용자의 요청부터 응답까지의 전체 트랜잭션 흐름을 시각적으로 분석하고 표시합니다.
이 기능은 복잡한 애플리케이션에서 성능 병목 현상을 식별하고, 문제의 원인을 빠르게 파악하는 데 도움을 줍니다.
3. 알림 및 자동 대응 시스템
성능 임계값을 초과할 경우 자동으로 알림을 보내는 시스템을 제공합니다. 또한, 일부 문제에 대해서는 사전에 정의된 대응 조치를 자동으로 실행할 수 있습니다.
4. 대시보드 및 리포팅
사용자 정의 가능한 대시보드를 통해 중요한 성능 지표를 한눈에 볼 수 있습니다.
또한, 정기적인 성능 리포트 생성 기능을 통해 애플리케이션의 성능 추세를 분석하고, 관리자와 개발자에게 중요한 인사이트를 제공합니다.
5. 비즈니스 트랜잭션 관리
애플리케이션 내에서 발생하는 비즈니스 트랜잭션을 모니터링하고 분석하여, 애플리케이션 성능이 비즈니스 결과에 미치는 영향을 평가할 수 있습니다.
이를 통해 기업은 IT 인프라의 비즈니스 가치를 극대화할 수 있습니다.
6. 디테일한 분석 도구
SQL 쿼리 분석, 메소드 수준의 성능 분석 등 애플리케이션 성능의 깊이 있는 분석을 위한 도구를 제공합니다.
이를 통해 개발자는 코드 레벨에서 성능 문제의 원인을 정확하게 식별하고, 효과적인 최적화 전략을 수립할 수 있습니다.