4.2. 애플리케이션
모니터링 중인 애플리케이션의 전체 목록을 조회하고, 개별 애플리케이션의 상세 관측 데이터를 분석합니다.

개요
애플리케이션 메뉴는 OPENMARU Observability가 모니터링하는 모든 애플리케이션(Application)을 한눈에 보여주는 화면입니다. 애플리케이션은 모니터링의 기본 단위로, Kubernetes 환경에서는 Deployment, StatefulSet, DaemonSet 등의 워크로드가 이에 해당합니다.
각 애플리케이션의 현재 상태와 주요 지표를 빠르게 파악하고, 특정 애플리케이션을 클릭하면 SLO(Service Level Objective, 서비스 수준 목표), CPU, 메모리, 로그(Log), 분산추적, 프로파일링(Profiling) 등 다양한 상세 리포트를 확인할 수 있습니다.
좌측 사이드바에서 애플리케이션 메뉴를 클릭하면 이 화면으로 이동합니다.
애플리케이션 목록
화면 구성
목록 화면 상단에는 필터와 뷰 전환 버튼, 상태 범례가 있으며, 아래에 애플리케이션 목록이 표시됩니다.
| 영역 | 설명 |
|---|---|
| 상단 헤더 | 페이지 제목, 애플리케이션 필터(네임스페이스, 카테고리, 검색) |
| 뷰 전환 토글 | 리스트 뷰(List View)와 카드 뷰(Card View) 전환 |
| 상태 범례 | 상태별 애플리케이션 수 표시 및 필터 |
| 목록 영역 | 리스트 뷰: 테이블 형태 / 카드 뷰: 카드 그리드 형태 |
| 페이지네이션 | 페이지당 표시 개수(10, 20, 50, 100, All)와 페이지 이동 |
상태 범례

화면 상단 툴바의 상태 범례에서는 전체 애플리케이션을 상태별로 요약해 보여줍니다.
| 상태 | 의미 |
|---|---|
| SLO 위반 | SLO 임계값(Threshold)을 초과한 애플리케이션. 즉각 조치가 필요합니다. |
| 경고 | 주의가 필요한 경고(Warning) 상태의 애플리케이션 |
| 로그에 오류 | 로그에 오류 패턴이 감지된 애플리케이션 |
| 보안 위협 | 보안 공격 패턴이 탐지된 애플리케이션 |
| 통합 필요 | 에이전트 연결이 되지 않아 데이터가 수집되지 않는 애플리케이션 |
| OK | 정상 동작 중인 애플리케이션 |
상태 범례의 항목을 클릭하면 해당 상태의 애플리케이션만 필터링하여 볼 수 있습니다. 여러 상태를 동시에 선택할 수도 있으며, 선택된 항목은 강조 표시되고 나머지는 흐리게 표시됩니다. 다시 클릭하면 필터가 해제됩니다.
팁: SLO 위반이나 경고 상태의 애플리케이션 수를 먼저 확인하고, 해당 상태를 클릭해 문제가 있는 애플리케이션만 집중적으로 살펴보세요.
주요 기능
필터
화면 우측 상단의 필터를 사용해 네임스페이스(Namespace), 카테고리, 애플리케이션 이름으로 목록을 좁힐 수 있습니다. 여러 조건을 조합하여 원하는 애플리케이션만 표시할 수 있습니다.
애플리케이션 숨기기
오설정으로 잠깐 생겼다가 사라진 임시 앱(예: unknown_service)이나 더 이상 보고 싶지 않은 애플리케이션을 전역에서 숨겨(soft hide) 목록·토폴로지 맵의 노이즈를 정리할 수 있습니다. 숨긴 애플리케이션은 삭제되는 것이 아니라 숨긴 애플리케이션 화면에 모여 있으며, 언제든 다시 표시할 수 있습니다.
리스트 뷰

툴바 좌측의 뷰 전환 버튼에서 리스트 아이콘을 클릭하면 리스트 뷰로 전환됩니다. 리스트 뷰는 많은 애플리케이션을 한 번에 비교하기에 적합합니다.
각 열 헤더를 클릭하여 원하는 기준으로 정렬할 수 있으며, 여러 열을 순차적으로 클릭하여 다중 정렬도 가능합니다.
리스트 뷰의 주요 컬럼은 다음과 같습니다.
| 컬럼 | 설명 |
|---|---|
| 애플리케이션 | 이름과 네임스페이스. 클릭하면 상세 페이지로 이동합니다. |
| 종류(Kind) | Kubernetes 워크로드 종류 (Deployment, StatefulSet, DaemonSet 등) |
| 유형 | 애플리케이션 기술 스택 (Java, Python, Redis, Kafka 등) |
| 오류 | SLO 기준 오류율 |
| 응답 시간 | SLO 기준 응답 시간 |
| 업스트림 | 이 애플리케이션이 호출하는 업스트림(Upstream) 서비스 수 |
| 인스턴스 | 실행 중인 인스턴스(Instance) 수 |
| 재시작 | 인스턴스 재시작 횟수 |
| CPU | CPU 사용률 |
| 메모리 | 메모리 사용량 |
| I/O 부하 | 디스크 I/O 부하 |
| Disk 용량 | 디스크 사용량 |
| 네트워크 | 네트워크 상태 |
| DNS | DNS 쿼리 상태 |
| 로그패턴 | 최근 로그 오류 패턴 수와 추이 차트 |
참고: 오류, 응답 시간 등 지표가 빨간색 또는 주황색으로 강조된 경우, 해당 항목이 검사(Inspection) 임계값을 초과했음을 나타냅니다. 해당 값을 클릭하면 관련 상세 탭으로 바로 이동합니다.
카드 뷰

뷰 전환 버튼에서 그리드 아이콘을 클릭하면 카드 뷰로 전환됩니다. 카드 뷰는 각 애플리케이션의 상태와 주요 지표를 카드 형태로 보여줍니다. 각 카드에는 애플리케이션 이름, 상태 아이콘, 주요 메트릭(Metric) 스파크 차트가 표시되며, 카드를 클릭하면 상세 페이지로 이동합니다.
선택한 뷰 방식은 기억되어 다음 방문 시에도 유지됩니다.
카드 뷰에서는 정렬 기준을 선택할 수 있습니다.
| 정렬 기준 | 설명 |
|---|---|
| 상태 | 심각 → 경고 → 로그 오류 → 통합 필요 → 정상 순 |
| 애플리케이션 | 이름 알파벳 순 |
| 오류 | 오류 건수 내림차순 |
| 응답 시간 | 응답 시간 내림차순 |
| 재시작 | 재시작 횟수 내림차순 |
| CPU | CPU 사용률 내림차순 |
| 메모리 | 메모리 사용량 내림차순 |
| 로그 | 로그 오류 수 내림차순 |
카드 뷰 하단에는 페이지 이동 버튼과 페이지당 표시 수 설정(10 / 20 / 50 / 100 / 전체)이 있습니다.
팁: 정렬 기준을 상태로 선택하면 문제가 있는 애플리케이션이 상단에 표시되어 한눈에 파악할 수 있습니다.
애플리케이션 상세

목록에서 애플리케이션 이름을 클릭하면 해당 애플리케이션의 상세 페이지로 이동합니다.
화면 구성
상세 페이지는 다음과 같은 영역으로 구성됩니다.
| 영역 | 설명 |
|---|---|
| 상단 헤더 | 애플리케이션명, 네임스페이스, 종류(kind), 토폴로지 맵 이동 링크 |
| 시간 범위 표시 | 현재 조회 중인 시간 범위 (최대 3일) |
| 의존성 맵(AppMap) | 애플리케이션과 연결된 서비스의 의존성 시각화 |
| 리포트 탭 | SLO, 인스턴스, CPU, 메모리, 로그 등 탭별 상세 정보 |
| 검사 상태 | 각 리포트별 검사(Inspection) 조건 충족 여부 |
| 차트 대시보드 | 선택한 탭의 메트릭 차트 위젯 |
상단 헤더에는 다음 정보와 기능이 제공됩니다.
- 애플리케이션 이름: 모니터링 대상의 이름
- ns: 소속 네임스페이스
- kind: Kubernetes 워크로드 종류(kind)
- 토폴로지 맵 열기 버튼: 클릭하면 이 애플리케이션이 강조 표시된 토폴로지 맵 화면으로 이동합니다.
- COP Console 열기 버튼: Kubernetes 리소스를 COP Console에서 직접 확인할 수 있는 외부 링크입니다. (COP Console이 설정된 경우에만 표시)
- 뒤로 돌아가기: 이전 애플리케이션 목록 화면으로 돌아갑니다.
조회 시간 범위
상세 화면 상단에는 현재 조회 중인 시간 범위가 표시됩니다. 시간 범위가 3일을 초과하면 3일 제한 배지가 표시되며, 자동으로 최근 3일 데이터만 표시됩니다. 배지 위에 마우스를 올리면 실제 조회되는 시간 범위를 확인할 수 있습니다.
선택한 시간 범위 내에 데이터가 없는 경우 안내 다이얼로그가 표시되며, 최근 1시간으로 이동 버튼을 클릭하여 최신 데이터를 확인하거나, 애플리케이션 목록으로 이동 버튼으로 목록 화면으로 돌아갈 수 있습니다.
참고: 상단 바의 시간 선택기에서 전역 시간 범위를 변경하면 상세 페이지의 데이터도 함께 업데이트됩니다.
의존성 맵(AppMap)

상세 화면 상단의 맵 보기 / 맵 숨김 버튼으로 의존성 맵을 켜고 끌 수 있습니다. 의존성 맵은 현재 애플리케이션과 연결된 서비스들의 관계를 시각적으로 보여줍니다.
- 업스트림(Upstream): 현재 애플리케이션이 호출하는 서비스
- 다운스트림(Downstream): 현재 애플리케이션을 호출하는 서비스
의존성 맵의 서비스 노드를 클릭하면 해당 서비스의 상세 정보를 확인하거나 토폴로지 맵에서 볼 수 있습니다.
리포트 탭
상세 페이지에서는 여러 리포트 탭이 제공됩니다. 탭 목록은 에이전트가 수집한 데이터 종류에 따라 동적으로 구성됩니다. 각 탭 이름 앞에 표시되는 상태 표시등(LED)으로 해당 리포트의 현재 상태를 빠르게 파악할 수 있습니다.
- 녹색: 정상 상태
- 주황색: 경고 수준의 이상 감지
- 빨간색: 심각한 문제 감지
- 회색: 데이터 없음 또는 미설정
SLO 탭

SLO 탭은 SLO 데이터가 있으면 상세 페이지 진입 시 기본으로 선택되는 탭입니다(요청이 없는 앱 등 SLO 상태를 알 수 없는 경우에는 다른 탭이 기본으로 선택될 수 있습니다). 가용성(Availability)과 응답 시간 목표 대비 현재 성능을 차트로 보여줍니다.
| 지표 | 설명 |
|---|---|
| 가용성 SLO(Availability) | 오류 없이 처리된 요청의 비율과 목표값 |
| 응답 시간 SLO(Latency) | 목표 응답 시간 이내로 처리된 요청의 비율 |
| 오류 예산(Error Budget) | SLO 목표를 유지하면서 허용되는 오류의 한도 |
| 오류율(%) 차트 | 초당 오류 횟수 차트 아래에 오류율(%) 추이가 함께 표시됩니다(오류가 없는 구간은 0% 라인으로 나타납니다) |
설정된 임계값(Threshold) 대비 현재 상태를 확인하고, SLO 위반 여부를 파악할 수 있습니다.
인스턴스 탭
이 애플리케이션을 구성하는 개별 인스턴스(Instance=Pod) 목록과 인스턴스 수·재시작 추이를 보여줍니다.

| 항목 | 설명 |
|---|---|
| 검사 | 인스턴스 가용성(가용 인스턴스 수 부족), 재시작(컨테이너 재시작 발생) 조건 충족 여부 |
| 인스턴스 목록 | 각 인스턴스(Pod)의 상태(실행/대기 등), 재시작 횟수, IP 주소, 배치된 노드 |
| 인스턴스 개수 차트 | 실제(up)·목표(desired) 인스턴스 수 추이 |
| 재시작 횟수 차트 | 인스턴스별 컨테이너 재시작 누적 횟수 |
인스턴스 개수 차트에는 배포(Deployment) 마크(세로 점선)가 표시됩니다. 새 버전이 배포되거나 재배포(rollout)되면 해당 시점에 마크가 찍히며, 마크에 마우스를 올리면 배포 유형, 애플리케이션·버전(ReplicaSet·이미지 태그), 배포 시각을 툴팁으로 확인할 수 있습니다. 배포 시점을 인스턴스 수·성능 변화와 나란히 놓고 보면, 특정 배포가 문제를 유발했는지 즉시 판단할 수 있습니다.

또한 인스턴스 개수 차트에는 HPA·CronHPA에 의한 스케일 증가(↑)·감소(↓) 이벤트가 마크로 표시되며, 증감 원인(CPU·메모리 목표 초과 또는 스케줄)을 함께 보여줍니다. 인스턴스 수 변화가 오토스케일링 때문인지, 수동 스케일·재배포 때문인지 구분해 자동 확장 동작을 추적할 수 있습니다.

CPU 탭
애플리케이션의 CPU 사용 패턴을 여러 차트로 제공합니다.

| 지표 | 설명 |
|---|---|
| CPU 사용량(코어) | 컨테이너별·인스턴스별 CPU 사용량(코어 단위) 시계열 |
| CPU 지연(delay) | 실행 준비 상태에서 CPU를 배정받기까지 대기한 시간 — 노드 CPU 경합의 지표 |
| 스로틀링(Throttled) 시간 | CPU 상한(limit)에 걸려 실행이 제한된 시간. 값이 크면 CPU limit 상향을 검토 |
| 노드 CPU 사용량 | 이 애플리케이션이 실행되는 노드 전체의 CPU 사용률 |
검사: 노드 CPU 과부하, 컨테이너 CPU 사용률이 임계값을 초과하면 경고합니다.
메모리 탭
애플리케이션의 메모리 사용 패턴을 여러 차트로 제공합니다.

| 지표 | 설명 |
|---|---|
| 메모리 사용량(RSS) | 컨테이너별 실제 물리 메모리 사용량(RSS) 시계열 |
| 노 드 메모리 사용량 | 실행 노드 전체의 메모리 사용률(재확보 불가 영역 포함) |
| 메모리 점유 프로세스 | 노드에서 메모리를 많이 사용하는 프로세스 구성(누적 영역 차트) |
| OOM Kill | 메모리 부족으로 컨테이너가 강제 종료(OOM Kill)된 횟수 |
검사: 메모리 부족으로 인한 컨테이너 종료(OOM), 시간당 메모리 사용량 증가율(누수 의심)이 임계값을 초과하면 경고합니다.
로그 탭

이 애플리케이션에서 발생한 로그를 조회합니다.
주요 기능:
- 소스 선택: 로그 수집 소스(agent / otel)를 선택하여 각 소스별 로그를 확인할 수 있습니다.
- 키워드 검색: 검색 필드에 키워드를 입력하고 Query 버튼을 클릭하여 특정 로그를 찾을 수 있습니다.
- 심각도 필터: Error, Warning, Info 등의 로그 레벨 체크박스로 원하는 심각도의 로그만 표시합니다.
- 로그 패턴 뷰: 유사한 구조의 로그 메시지를 자동으로 그룹화한 로그 패턴(Log Pattern)을 확인할 수 있습니다. 반복되는 오류 패턴을 한눈에 파악하는 데 유용합니다.
- 전체 로그 뷰: 로그 패턴 뷰에서 전체 뷰로 전환하면 개별 로그 메시지를 시간순으로 확인할 수 있습니다.
- 정렬: 최신순(Newest first) 또는 오래된 순(Oldest first)으로 로그 정렬 방식을 전환할 수 있습니다.
CogentAI를 활용한 로그 AI 분석
로그 탭에서는 CogentAI AI 분석 기능을 사용하여 로그 메시지의 의미를 자동으로 분석하고, 오류에 대한 원인 진단 및 해결 방안을 제안받을 수 있습니다.
로그 목록에서 AI 분석 요청하기:
- 로그 목록에서 분석하려는 로그 행 옆의 CogentAI 아이콘(AI 모양 아이콘)을 클릭합니다.
- 화면 우측 하단에 CogentAI 위젯이 자동으로 열리며, 해당 로그 메시지가 AI에게 분석 요청으로 전달됩니다.
- AI가 로그의 의미, 발생 원인, 권장 조치 등을 분석하여 결과를 표시합니다.
로그 상세 다이얼로그에서 AI 분석 요청하기:
- 로그 목록에서 로그 행을 클릭하여 상세 다이얼로그를 엽니다.
- 다이얼로그 상단의 CogentAI Insight 버튼을 클릭합니다.
- CogentAI 위젯에서 해당 로그에 대한 더 상세한 분석 결과를 확인할 수 있습니다.
로그 패턴에서 AI 분석 요청하기:
- 로그 패턴 뷰에서 특정 패턴 카드의 CogentAI 아이콘을 클릭하거나, 패턴 상세 다이얼로그의 CogentAI Insight 버튼을 클릭합니다.
- 해당 로그 패턴에 대한 AI 분석 결과가 위젯에 표시됩니다.
팁: WARN이나 ERROR 레벨의 로그를 CogentAI로 분석하면 문제 해결 절차와 관련 명령어를 포함한 구체적인 안내를 받을 수 있습니다.
CogentAI를 활용한 차트 AI 분석
각 메트릭(Metric) 차트의 우측 상단에도 CogentAI Insight 아이콘이 있습니다. 이 아이콘을 클릭하면 해당 차트의 데이터를 AI가 분석하여 이상 패턴 설명, 추세 해석, 권장 조치 등의 인사이트를 제공합니다.
- 분석하려는 메트릭 차트 우측 상단의 CogentAI Insight 아이콘(AI 모양 아이콘)을 클릭합니다.
- CogentAI 위젯이 열리며, 해당 차트의 메트릭 데이터가 분석 요청으로 전달됩니다.
- AI가 차트 데이터를 해석하여 인사이트를 제공합니다.
- 위젯에서 후속 질문을 입력하여 추가 분석을 요청할 수 있습니다.
참고: CogentAI 기능은 관리자가 CogentAI 위젯을 활성화한 경우에만 사용할 수 있습니다.
배포 탭
이 애플리케이션의 배포(Deployment) 이력을 표로 보여줍니다. 각 배포 시점 전후의 메트릭 변화를 자동으로 요약하여, 어떤 배포가 성능·안정성에 영향을 줬는지 한눈에 파악할 수 있습니다.

표는 다음 컬럼으로 구성됩니다.
| 컬럼 | 설명 |
|---|---|
| 배포명 | 배포된 버전(ReplicaSet 해시·이미지 태그)과 해당 버전의 수명(다음 배포까지 유지된 시간) |
| 배포 시간 | 배포가 감지된 시각 |
| 배포된 시간 | 현재로부터 경과한 시간(예: "3시간 전") |
| 요약 | 이전 배포 대비 가용성·CPU·메모리·로그 오류 등의 변화율을 자동 요약. 개선은 초록색, 악화는 빨간색으로 표시 |
검사: 롤아웃 진행 시간이 임계값을 초과하면(배포가 오래 완료되지 않으면) 경고합니다.
팁: 요약의 각 항목 옆 아이콘을 클릭하면 해당 지표의 배포 전후 차트로 이동해 상세 변화를 확인할 수 있습니다. 예를 들어 "CPU 사용량: 이전 배포에 비해 8.3% 달라짐"은 이번 배포로 CPU 사용량이 증가했음을 뜻합니다.
프로파일링 탭

프로파일링 탭에서는 애플리케이션의 CPU 및 메모리 사 용 패턴을 플레임 그래프(Flame Graph)로 시각화합니다. 플레임 그래프는 함수 호출 스택과 소요 시간을 시각화하는 차트입니다.
주요 기능:
- 상태 표시: 프로파일링 데이터 수집 상태가 상단에 OK / WARN / CRIT로 표시됩니다.
- 프로파일 타입 선택: CPU 또는 메모리 등 분석하려는 프로파일 타입 버튼을 클릭하여 전환합니다.
- 시계열 차트: 시간별 프로파일 데이터 추이를 표시합니다. 차트에서 특정 시간 영역을 드래그하여 선택하면 해당 구간의 플레임 그래프가 표시되며, 이전 기간과 비교할 수 있습니다.
- 플레임 그래프: 블록의 너비가 넓을수록 해당 함수가 더 많은 리소스를 사용하고 있음을 의미합니다. 블록을 클릭하면 확대하여 하위 호출 스택을 상세히 확인할 수 있습니다.
- 인스턴스 선택: 특정 인스턴스의 프로파일만 선택하여 비교할 수 있습니다.
팁: 프로파일 차트에서 시간 구간을 드래그하여 선택하면 해당 구간의 플레임 그래프를 확인할 수 있을 뿐만 아니라, 이전 동일 길이 기간과의 비교 분석도 가능합니다.
Go 애플리케이션 프로파일링 연동 (pprof)
프로파일링 데이터는 두 경로로 수집됩니다.
- eBPF 연속 프로파일링(자 동): 노드 에이전트가 코드 수정 없이 CPU 프로파일을 상시 수집합니다(유형 선택기의 CPU (eBPF)).
- pprof 스크레이프(Go, 어노테이션): Go 애플리케이션이 노출하는
/debug/pprof를 클러스터 에이전트가 수집합니다. CPU뿐 아니라 메모리(heap)·고루틴·mutex·block 프로파일까지 제공합니다.
Go 애플리케이션에 pprof 프로파일링을 연동하려면, 앱이 net/http/pprof 를 노출한 상태에서 Pod 에 아래 어노테이션을 추가합니다.

# Pod 템플릿(spec.template.metadata.annotations)
openmaru.io/profile-scrape: "true" # 프로파일 수집 활성화(별 칭 pyroscope.io/scrape)
openmaru.io/profile-port: "6060" # pprof 가 리스닝하는 포트(별칭 pyroscope.io/port)
클러스터 에이전트가 /debug/pprof/ 에서 다음 5종을 수집합니다.
| 유형 | pprof 경로 | 내용 |
|---|---|---|
| CPU | profile | CPU 사용 프로파일 |
| 메모리 | heap | 힙 할당(alloc)·사용중(inuse) 객체·크기 |
| 고루틴 | goroutine | 고루틴 스택 |
| Mutex | mutex | 락 경합 |
| Block | block | 블로킹 지점 |
참고:
mutex·block프로파일은 Go 기본값이 비활성이라, 앱에서runtime.SetMutexProfileFraction(n>0)·runtime.SetBlockProfileRate(n>0)로 켜야 수집됩니다. pprof 를 노출하지 않는 앱(예: 기본 otel-demo Go 서비스)은 이 방식으로 수집되지 않습니다. 5종을 모두 방출하는 예제는test/go-pprof-demo/샘플을 참고하세요.
분산추적 탭

분산추적 탭에서는 이 애플리케이션과 관련된 추적(Trace) 데이터를 히트맵(Heatmap)과 추적 목록으로 분석합니다. 추적(Trace)은 분산 시스템에서 하나의 요청이 여러 서비스를 거치는 경로를 기록한 데이터입니다. 히트맵에서 관심 영역을 선택하고, 추적 목록에서 개별 추적을 확인한 뒤, 스팬(Span) 폭포수 차트로 상세 호출 흐름까지 드릴다운하는 전체 워크플로를 제공합니다.
1단계: 추적 상태 확인 및 소스 선택
분산추적 탭에 진입하면 상단에 추적 데이터의 수집 상태가 표시됩니다.
- 상태 표시: OK(정상 수집), WARN(경고), CRIT(심각) 중 하나가 배지로 표시되며, 상태 메시지로 현재 상황을 파악할 수 있습니다.
- 소스 전환: 에이전트가 여러 소스를 지원하는 경우, 소스 전환 버튼이 표시됩니다.
- agent: eBPF 기반 자동 추적 데이터. 코드 수정 없이 자동으로 수집됩니다.
- otel: OpenTelemetry SDK 기반 추적 데이터. 더 세밀한 스팬(Span) 정보를 제공합니다.
- 연결 설정: 상태 영역의 설정(톱니바퀴) 아이콘을 클릭하면 이 애플리케이션과 OpenTelemetry 서비스를 연결하는 설정 다이얼로 그가 열립니다.
2단계: 필터로 추적 범위 좁히기
히트맵 위에 세 가지 필터 토글 버튼이 제공됩니다.
| 필터 | 설명 |
|---|---|
| 오류 추적 보기 | 오류가 발생한 추적만 히트맵에 표시합니다 |
| 응답 시간 SLO 위반 보기 | 응답 시간 SLO 임계값을 초과한 추적만 표시합니다 |
| 모든 추적 보기 | 전체 추적 데이터를 표시합니다 |
필터 버튼을 클릭하면 활성화되며, 히트맵과 하단의 추적 목록이 해당 조건에 맞게 갱신됩니다.
팁: 오류가 급증한 시점을 분석할 때는 먼저 오류 추적 보기 필터를 활성화하면, 오류와 관련된 추적만 집중적으로 확인할 수 있습니다.
3단계: 히트맵에서 관심 영역 선택
히트맵은 시간(X축)과 응답 시간(Y축)의 분포를 색상 밀도로 시각화합니다. 색상이 진할수록 해당 시간대에 해당 응답 시간 범위의 요청이 많이 발생했음을 의미합니다.
히트맵에서 영역을 선택하는 방법:
- 히트맵에서 조사하려는 영역을 마우스로 클릭한 채로 드래그합니다.
- 선택된 영역이 강조 표시되며, 하단의 추적 목록이 선택 범위 내의 데이터로 갱신됩니다.
- 선택을 변경하려면 다른 영역을 드래그하거나, 필터 토글 버튼을 다시 클릭합니다.
히트맵 읽는 법:
- 점이 위쪽에 집중되어 있으면, 응답 시간이 긴 요청이 많다는 뜻입니다.
- 특정 시간대에 붉은 점이 나타나면, 그 시점에 오류가 발생했음을 나타냅니다.
- 정상적인 상태에서는 대부분의 점이 **아래쪽(낮은 응답 시간)**에 집중됩니다.
팁: 응답 시간이 갑자기 높아진 영역(히트맵 상단에 점이 집중된 구간)을 드래그하여 선택하면, 문제가 된 추적만 빠르게 확인할 수 있습니다.
4단계: 추적 목록에서 개별 추적 확인
히트맵 아래에 추적 목록이 테이블로 표시됩니다. 히트맵에서 영역을 선택했다면 해당 범위의 추적만 표시됩니다.
| 컬럼 | 설명 |
|---|---|
| 추적 ID | 추적의 고유 식별자 (앞 8자리 표시). 클릭하면 스팬 상세 다이얼로그가 열립니다. |
| 시작 시간 | 추적이 시작된 시각 |
| 방향 | 인바운드(외부에서 이 애플리케이션으로 들어오는 요청) 또는 아웃바운드(이 애플리케이션에서 외부로 나가는 요청) |
| 클라이언트 | 요청을 보낸 서비스 이름 |
| 상태 | 정상(OK) 또는 오류(Error) 상태와 상태 메시지 |
| 응답시간 | 추적의 전체 소요 시간 (밀리초) |
| HTTP 메소드 | 요청의 HTTP 메소드 또는 오퍼레이션 이름. 클릭하면 스팬 상세 다이얼로그가 열립니다. |
| 상세정보 | 요청 URL이나 쿼리 등 상세 내용. 복사 버튼으로 클립보드에 복사할 수 있습니다. |
테이블의 각 열 헤더를 클릭하여 정렬할 수 있으며, 다중 정렬도 지원됩니다. 테이블 하단에서 페이지당 표시 건수를 조절할 수 있습니다.
참고: 조회 결과가 많을 경우 최대 건수 제한 안내 메시지가 표시될 수 있습니다. 히트맵에서 좀 더 좁은 범위를 선택하거나 필터를 추가하여 범위를 줄이세요.
5단계: 스팬 폭포수 차트로 상세 흐름 분석
추적 목록에서 추적 ID 또는 HTTP 메소드를 클릭하면 해당 추적의 스팬 폭포수 차트가 다이얼로그로 열립니다. 스팬(Span)은 분산추적에서 단일 작업 단위를 나타냅니다.
다이얼로그 상단 정보:
다이얼로그 상단에는 다음 정보가 표시됩니다.
- 추적 ID: 전체 추적 ID와 복사 버튼
- 클라이언트: 요청을 보낸 서비스 이름
- 상태: 정상(OK) 또는 오류(Error) 배지
- 응답시간: 전체 추적의 소요 시간 (밀리초)
스팬 폭포수 차트 읽는 법:
스팬 폭포수 차트는 요청이 각 서비스를 거치는 순서와 소요 시간을 시각적으로 보여줍니다.
- 가로 막대의 시작 위치는 스팬이 시작된 시점, 길이는 해당 스팬의 소요 시간을 나타냅니다.
- 각 스팬의 서비스 이름은 고유한 색상으로 구분됩니다.
- 자식 스팬은 들여쓰기로 계층 구조를 표현합니다. 상위 스팬의 이름을 클릭하면 하위 스팬을 접거나 펼칠 수 있습니다.
- 오류가 발생한 스팬에는 오류 아이콘이 표시됩니다.
- 하위 추적 보기 / 전체 추적 보기를 전환하여, 특정 서비스의 하위 스팬만 보거나 전체 추적을 볼 수 있습니다.
스팬 상세 정보:
스팬을 클릭하면 해당 스팬의 상세 정보가 표시됩니다.
| 항목 | 설명 |
|---|---|
| 이름 | 스팬의 오퍼레이션 이름 |
| 서비스 | 스팬이 속한 서비스 이름 |
| 시작 시간 | 스팬 시작 시각 |
| 응답시간 | 스팬 소요 시간 (밀리초) |
| 상태 | 정상(OK) 또는 오류(Error) 및 메시지 |
| 스팬 ID | 스팬의 고유 식별자 (복사 가능) |
| 속성 | 스팬에 첨부된 속성 목록 (HTTP URL, DB 쿼리 등) |
| 이벤트 | 스팬 실행 중 발생한 이벤트 (예: 예외 스택 정보) |
스팬 유형은 배지로 표시됩니다. (HTTP, gRPC, Kafka, Redis, MongoDB, PostgreSQL, MySQL 등)
분산추적 활용 시나리오
다음은 분산추적 탭을 활용하여 문제를 분석하는 대표적인 시나리오입니다.
느린 요청 찾기:
- 오류 추적 보기 필터를 끄고 모든 추적 보기를 활성화합니다.
- 히트맵에서 응답 시간이 높은 영역(상단 부분)을 드래그하여 선택합니다.
- 추적 목록에서 응답시간 열을 클릭하여 내림차순 정렬합니다.
- 응답 시간이 가장 긴 추적의 추적 ID를 클릭하여 스팬 폭포수 차트를 확인합니다.
- 가장 긴 가로 막대를 가진 스팬을 클릭하여 어떤 서비스, 어떤 작업에서 병목이 발생했는지 확인합니다.
오류 추적 분석:
- 오류 추적 보기 필터를 활성화합니다.
- 히트맵에서 오류가 집중된 시간대를 드래그하여 선택합니다.
- 추적 목록에서 오류 상태의 추적을 확인하고, 추적 ID를 클릭합니다.
- 스팬 폭포수 차트에서 오류 아이콘이 표시된 스팬을 찾아 클릭합니다.
- 스팬 상세의 이벤트 항목에서 예외 스택 정보를 확인하여 오류 원인을 파악합니다.