본문으로 건너뛰기
버전: 5.1.0-11.0

E2. 핵심 개념과 데이터 흐름

Diátaxis: Explanation(이해) · 대상: 운영자 / 관리자 ← 목차로 · ← E1 개요

이 문서는 OPENMARU APM을 쓰는 동안 계속 마주치는 세 가지 골격 개념 — 무엇을 보는가(그룹·인스턴스·에이전트), 무엇을 추적하는가(트랜잭션), 그 데이터가 어떻게 화면에 오는가 — 를 설명합니다. 조작법이 아니라 개념이므로, 화면을 열기 전에 한 번 읽어 두면 이후 모든 메뉴가 쉽게 이해됩니다.

용어의 짧은 정의만 필요하면 R8. 용어집을, 지표(TPS·APDEX 등)의 의미는 E3. 지표의 의미를 보세요.


E2.1 애플리케이션 그룹 · 인스턴스 · 에이전트

OPENMARU APM의 모든 화면은 결국 "어떤 대상의 데이터를 보여줄 것인가" 로 귀결됩니다. 그 대상은 세 층으로 이루어져 있습니다.

애플리케이션 그룹은 여러 인스턴스를 묶고, 각 인스턴스에 붙은 에이전트가 성능 데이터를 수집해 APM 서버로 전송한다
개념무엇인가비유
에이전트인스턴스에 붙어 성능 데이터를 모아 APM 서버로 보내는 수집기버스에 단 운행기록계(센서) — 속도·위치를 관제센터로 전송
인스턴스실제로 돌고 있는 프로세스 하나 (WAS 한 대, DB 브로커 하나 등)버스 한 대
애플리케이션 그룹함께 봐야 의미 있는 인스턴스들을 묶은 단위 (보통 하나의 서비스)같은 노선을 함께 운행하는 버스들

위 비유로 보면 APM 서버는 관제센터입니다 — 모든 버스(인스턴스)의 운행기록계(에이전트)가 보내는 데이터를 모아 노선 전체(애플리케이션 그룹)의 상태를 한 화면에서 봅니다.

왜 "그룹"으로 묶는가

서비스 하나는 보통 여러 인스턴스로 돌아갑니다(부하 분산을 위해 WAS를 여러 대 띄우는 식 — 승객이 몰리는 노선에 버스를 여러 대 투입하는 것과 같습니다). 인스턴스를 하나씩 따로 보면 "이 서비스 전체가 괜찮은가"를 판단하기 어렵습니다. 그래서 관련 인스턴스를 애플리케이션 그룹으로 묶어, 합계·평균을 한눈에 보고 필요하면 인스턴스 하나로 좁혀 들어갑니다.

이 "전체 → 하나로 좁히기"가 화면 상단 컨텍스트 셀렉터(그룹 → 호스트 → 인스턴스)의 동작 원리입니다. 대상을 좁히는 방법은 H1. 모니터링 대상 좁히기, 그룹을 직접 만드는 방법은 H19. 애플리케이션 그룹에서 다룹니다.

참고 커스텀 그룹: 부서·점검 목적 등 자유로운 기준으로 인스턴스를 묶는 별도 그룹도 있습니다. 애플리케이션 그룹이 "서비스 단위"라면, 커스텀 그룹은 "보고 싶은 대로 묶는 단위"입니다.

주의 화면에 데이터가 비어 있다면, 대개 대상이 선택되지 않았거나 그 대상에 에이전트가 연결되지 않은 경우입니다. 에이전트 연결 상태는 H20. 에이전트 상태 점검에서 확인합니다.


E2.2 트랜잭션이란 — 요청 한 건의 처리 흐름

트랜잭션사용자 요청 하나가 처리되는 전체 흐름입니다. 버튼 한 번 클릭이 서버 안에서 어떻게 처리되는지를 하나로 묶은 단위라고 보면 됩니다.

사용자 요청 한 건을 WAS가 받아 DB 쿼리·외부 API 호출·내부 메소드 같은 여러 스팬으로 처리하고 응답을 반환한다. 각 스팬의 가로 길이가 소요 시간이며 가장 긴 스팬이 병목이다

하나의 트랜잭션은 여러 스팬(span) — SQL 한 번, 외부 호출 한 번, 메소드 한 번 — 으로 이루어집니다. OPENMARU APM은 이 스팬들을 시간 순서와 길이로 그려, 요청 한 건이 어디서 시간을 썼는지를 한눈에 보여 줍니다. 이 그림이 워터폴(waterfall) 입니다.

왜 트랜잭션이 중요한가

"평균 응답시간이 느리다"는 사실만으로는 원인을 알 수 없습니다. 느린 트랜잭션 하나를 열어 워터폴에서 가장 긴 스팬을 보면, 그게 DB 쿼리인지·외부 호출인지·내부 처리인지가 바로 드러납니다. 즉 트랜잭션 추적은 "느리다"에서 "무엇 때문에 느리다"로 넘어가게 해 주는 핵심입니다.


E2.3 데이터가 화면에 오기까지

화면의 모든 숫자와 그래프는 다음 경로를 거칩니다. 이 흐름을 알면 "왜 값이 약간 늦게 보이는지", "왜 과거 데이터는 조회가 되는지"가 자연스럽게 이해됩니다.

데이터는 수집(에이전트) → 전송(APM 서버) → 저장(시계열·이벤트) → 표시(웹 콘솔) 순으로 화면에 온다. 표시 단계에서 실시간은 약 5초 주기로 갱신되고 과�거 구간은 저장된 데이터를 조회한다

실시간과 과거 조회의 차이

  • 실시간(현재) 화면은 약 5초 주기로 최신 데이터를 받아 갱신됩니다. 그래서 방금 일어난 일이 몇 초 안에 화면에 반영됩니다.
  • 과거 구간 조회는 저장된 데이터를 불러옵니다. 기간 선택기로 어제·지난주 등 지난 시점을 볼 수 있는 이유가 이것입니다 → H2. 기간 바꿔 보기.

참고 화면의 날짜·시각은 사용자 프로필의 타임존서버 시간을 기준으로 표시됩니다. 그래서 PC 시계가 서버와 달라도 날짜가 어긋나지 않습니다.

임계치를 넘으면 — 이벤트

저장 단계에서 값이 설정된 임계치를 넘거나 상태가 바뀌면, APM 서버는 그 사건을 이벤트로 남깁니다. 이벤트는 화면의 이벤트 목록에 쌓이고, 정책에 따라 메일·메신저로도 전달됩니다. 이벤트의 종류와 의미는 R3. 이벤트 종류 레퍼런스에서, 알림을 운영에 맞추는 방법은 H15. 알림 정책에서 다룹니다.


정리

질문개념
무엇을 보는가?애플리케이션 그룹 → 인스턴스 (데이터는 에이전트가 수집)
무엇을 추적하는가?트랜잭션 = 요청 한 건의 흐름, 스팬들의 워터폴
어떻게 화면에 오는가?수집 → 전송 → 저장 → 표시(실시간 ~5초 / 과거 조회)

다음으로 읽을 것