개요
OPENMARU APM은 Java 기반 웹 애플리케이션에 대한 실시간 모니터링을 제공함으로써 장애를 사전에 예방하고, 지속적인 성능 개선에 활용할 수 있는 APM(Application Performance Monitoring) 도구입니다.
OPENMARU APM은 Java 기반 웹 애플리케이션에 대한 실시간 동작 모니터링뿐만 아니라, 실시간 통계 분석 기법을 적용하여 문제를 사전에 판단할 수 있는 강력한 기능들을 제공합니다.
설치 가이드 소개
이 문서는 OPENMARU APM을 사용하여 웹 애플리케이 션 서버(WAS)를 모니터링하고자 하는 사용자를 위한 설치 안내서입니다.
대상 독자
| 대상 | 설명 |
|---|---|
| 시스템 관리자 | APM Server 및 에이전트 설치 담당자 |
| DevOps 엔지니어 | CI/CD 파이프라인에 APM 통합 담당자 |
| 개발자 | 애플리케이션 성능 분석 및 최적화 담당자 |
| 운영팀 | 실시간 모니터링 및 장애 대응 담당자 |
문서의 목적
- OPENMARU APM 에이전트 설치 및 구성 방법 제공
- 웹 애플리케이션 모니터링을 통한 장애 원인 파악 가이드
- 성능 분석 및 최적화를 위한 모니터링 설정 방법
주요 기능
OPENMARU APM은 웹 애플리케이션 서버 모니터링을 위한 제품으로 다음과 같은 기능을 제공합니다.
성능 분석 및 모니터링
서비스 만족도 지수 (APDEX)
사용자 입장에서 서비스의 만족도를 하나의 숫자로 표현합니다. 서비스의 상황을 0~100까지의 지수를 통해 한눈에 파악할 수 있습니다.
Application Performance Index의 약자로, 애플리케이션 성능에 대한 사용자 만족도를 0~100점 사이의 하나의 숫자로 표현하는 산업 표준 지표입니다.
등급 구분:
- 94~100점: Excellent (탁월) - 거의 완벽한 성능
- 85~94점: Good (좋음) - 양호한 성능
- 70~85점: Fair (보통) - 허용 가능한 성능
- 50~70점: Poor (나쁨) - 개선 필요
- 0~50점: Unacceptable (수용 불가) - 즉각적인 조치 필요
응답 시간 기준:
- Satisfied (만족): T 이하 - 사용자가 집중하고 있음, 성능이 만족스러움
- Tolerating (허용): T ~ 4T - 사용자가 집중하기 어려움, 성능에 만족스럽지 못함
- Frustrated (불만): 4T 초과 - 사용자가 서비스 사용을 포기함, 서비스를 받아들일 수 없는 상태
APDEX 계산식: (Satisfied 요청 수 + (Tolerating 요청 수 ÷ 2)) ÷ 전체 요청 수 × 100
T(Threshold)는 WAS Agent 설정 파일에서 지정(기본값 3.0)할 수 있습니다.
T-Map (Transaction 분포도)
서비스 전체 응답 시간에 대해 직관적인 분석을 위해 트랜잭션들을 Heat-Map으로 표현하며, 선택한 셀에 대한 SQL 쿼리를 포함한 상세 프로파일링을 제공합니다.
주요 특징:
- 실시간 트랜잭션 시각화
- 응답 시간 분포 분석
- 느린 트랜잭션 즉시 식별
- 상세 SQL 쿼리 프로파일링
실시간 예측 (Forecast)
실시간 통계 분석을 통해 앞으로 몇 분 후에 관리자가 설정한 임계 값에 도달할 것이라는 예측 이벤트를 알려줍니다.
예측 지표:
- CPU 사용률 임계치 도달 예측
- 메모리 사용량 임계값 도달 예측
- 지연 트랜잭션 임계값 도달 예측
장애 분석 도구
WAS 장애 분석
WAS의 장애 분석에서 가장 많이 사용되는 JVM Thread Dump 분석 도구를 제공합니다.
제공 기능:
- Thread Dump 자동 수집 및 분석
- Heap Dump 분석
- 실행 중인 SQL 쿼리 추적
- 트랜잭션 프로파일링
- Method 실행 통계
이상 징후 모니터링
통계 분석을 통해 평소와는 다른 이상 값이 감지되면 이벤트를 통해 알려줍니다.
감지 항목:
- 평균 응답 시간 급증
- 에러율 증가
- CPU/메모리 이상 사용 패턴
- 트래픽 급증 또는 급감
시스템 및 인프라 모니터링
OS 자원 모니터링
| 모니터링 항목 | 수집 지표 |
|---|---|
| CPU | 사용률, Core별 사용량, System/User Time |
| Memory | 사용량, 가용 메모리, Swap 사용량 |
| Disk | 사용률, I/O 성능, 읽기/쓰기 속도 |
| Network | 트래픽, 패킷 수, 에러율, 소켓 상태 |
| Load Average | 1분, 5분, 15분 평균 부하 |
웹 서버 모니터링
- 트래픽 분석: 실시간 트래픽 모니터링
- RPS (Requests Per Second): 초당 요청 수
- Active Connections: 활성 연결 수
- 응답 코드 분석: 2xx, 3xx, 4xx, 5xx 상태 코드 분석
이벤트 및 알림
정교한 이벤트 처리
모니터링 지표들에 대한 수집 값들의 통계 값으로 임계 값을 계산하기 때문에 꼭 필요한 경우에만 모니터링 이벤트가 발생합니다.
이벤트 처리 방식:
- 통계 기반 임계치: 평균, 표준편차 기반 동적 임계치
- 이벤트 필터링: 노이즈 제거 및 중요 이벤트 알림
- 알림 채널: Email, SMS, Webhook, Slack 등 다양한 알림 채널 지원