근본원인분석(RCA)
인시던트 발생 시 시스템이 자동으로 원인을 분석하고, 영향 전파 경로와 인과 타임라인을 시각화합니다.

RCA(Root Cause Analysis, 근본원인분석) 탭은 인시던트 상세 페이지에서 기본으로 선택되는 탭으로, 인시던트 발생 원인을 시스템이 자동으로 분석한 결과를 보여줍니다. 이 탭은 다음 다섯 가지 섹션으로 구성되며, 각 섹션은 접기/펼치기가 가능합니다.
1. 서비스 수준 지표(SLI) 섹션
SLI(Service Level Indicator, 서비스 수준 지표) 섹션에서는 인시던트 분석 기간 동안의 서비스 상태를 차트로 확인할 수 있습니다. 섹션 헤더에는 대상 애플리케이션 이름과 인시던트 ID가 표시됩니다.
이 섹션에는 다음 두 가지 하위 영역이 포함됩니다.
응답 시간 히트맵
인시던트 기간의 응답 시간 분포를 히트맵(Heatmap)으로 시각화합니다.
| 축 | 설명 |
|---|---|
| X축 (가로) | 시간. 인시던트 분석 기간 전체를 포괄합니다. |
| Y축 (세로) | 응답 시간(Latency). 낮은 값이 아래, 높은 값이 위에 배치됩니다. |
| 색상 농도 | 해당 시간-응답 시간 구간에 속한 요청 밀도. 진할수록 요청이 많습니다. |
히트맵은 SLO 위반이 발생한 시간대와 응답 시간이 급증한 구간을 한눈에 파악하는 데 유용합니다. 특정 영역을 드래그하여 선택하면, 해당 시간 구간의 추적(Trace) 데이터를 확인할 수 있는 애플리케이션 상세 다이얼로그가 열립니다.
팁: 히트맵에서 색상이 급격히 짙어지거나 상단으로 치솟는 구간이 있으면, 해당 시점에 응답 시간 지연이 집중적으로 발생한 것입니다. 이 구간을 드래그하여 관련 트레이스를 바로 분석할 수 있습니다.
SLI 차트
응답 시간 차트와 오류율 차트가 나란히 표시되어, 인시던트 분석 기간 동안 서비스의 성능 변화 추이를 확인할 수 있습니다.
- 응답 시간 차트: 분석 기간 동안의 요청 응답 시간 추이
- 오류율 차트: 분석 기간 동안의 오류 발생 추이
차트 하단에는 분석 기간 동안의 SLI를 표시한다는 안내 메시지가 표시됩니다.
팁: SLI 차트에서 특정 구간을 드래그하여 선택하면 해당 구간에 대한 상세 분석(해당 시간 범위에 국한된 RCA)을 수행할 수 있습니다. 선택한 구간은 차트에 하이라이트로 표시됩니다.
SLI 섹션 활용 예시
SLI 섹션의 히트맵과 차트를 조합하면 다음과 같은 분석이 가능합니다.
- 히트맵으로 이상 구간 식별: 응답 시간이 급증한 시간대를 히트맵에서 시각적으로 확인합니다.
- SLI 차트로 추이 비교: 응답 시간과 오류율이 동시에 상승했는지 확인하여 장애의 성격(성능 저하 vs 오류 급증)을 판단합니다.
- 구간 선택으로 범위 좁히기: 문제 구간을 드래그하여 해당 시간 범위에 한정된 RCA 분석 결과를 확인합니다.
2. 근본원인분석 요약
시스템이 자동으로 분석한 인시던트 원인의 요약 정보가 카 드 형태로 표시됩니다. 이 섹션은 다음 세 부분으로 구성됩니다.
심각도별 발견 건수
카드 상단 우측에 발견된 원인 항목의 심각도별 개수가 배지로 표시됩니다.
| 배지 | 의미 |
|---|---|
| 심각(Critical) | 즉각 조치가 필요한 발견 항목 수 |
| 경고(Warning) | 주의가 필요한 발견 항목 수 |
| N건 발견 | 전체 발견 항목 수 |
추정 근본 원인
인시던트의 가장 가능성 높은 원인이 강조 카드로 표시됩니다. 시스템은 인과 체인(Causal Chain) 분석을 통해 인시던트로 이어진 이벤트 중 가장 가능성이 높은 항목을 자동으로 선별합니다. 다음 정보가 포함됩니다.
- 원인 제목: 근본 원인으로 추정되는 항목 (예: 배포 변경, 리소스 포화, 업스트림 장애, 로그 이상 패턴 등)
- 애플리케이션 이름: 근본 원인이 발생한 애플리케이션
- 상세 설명: 원인에 대한 추가 설명 (예: 특정 시각의 배포, 오류 발생 건수, 업스트림 SLO 위반 등)
인과 체인 분석 원리
시스템은 인시던트 발생 전후의 이벤트를 시간순으로 수집하고, 다음 기준으로 이벤트 간 관련성(Relevance)을 평가합니다.
| 기준 | 설명 |
|---|---|
| 시간적 인과성 | 인시던트 발생 직전에 감지된 이벤트에 높은 가중치 부여 |
| 서비스 의존성 | 업스트림/다운스트림 서비스 간의 호출 관계 반영 |
| 이벤트 유형 | 배포, 설정 변경, 리소스 포화 등 이벤트 특성 반영 |
| 신뢰도 수준 | 높음(High), 중간(Medium), 낮음(Low)으로 원인 가능성 등급 구분 |
카테고리별 분류
발견된 원인이 다음 카테고리별로 분류되어 칩(chip) 형태로 표시됩니다. 각 칩에는 해당 카테고리의 발견 건수가 함께 표시됩니다.
| 카테고리 | 설명 |
|---|---|
| 배포(Deployment) | 배포 변경사항 관련 원인. 새 버전 배포, 롤아웃 이벤트, 설정 변경 등 인프라 변경 이력 포함. 배포 후 오류 증가, 재시작, OOM Kill 여부도 표시 |
| 업스트림(Upstream) | 업스트림 서비스의 장애나 SLO 위반이 현재 서비스에 영향을 준 경우. 연결 문제나 업스트림 배포 변경도 포함 |
| 리소스(Resource) | CPU, 메모리, 디스크, 네트워크(RTT, 재전송) 등 리소스 포화 관련 원인 |
| 로그(Log) | 로그 이상 패턴 감지 관련 원인. 에러/경고 수준의 로그 패턴 급증이 감지된 경우 표시됩니다. |
| SLO | 다른 서비스의 SLO 위반이 연쇄적으 로 영향을 미친 경우 (SLO 연쇄) |
| 데이터베이스(Database) | 데이터베이스 응답 시간 저하, 연결 문제 등 |
3. 이슈 전파 경로
인시던트가 여러 애플리케이션에 걸쳐 영향을 미친 경우, 장애가 전파된 경로를 서비스 간 의존 관계 맵으로 시각적으로 보여줍니다. 섹션 헤더에는 관련 애플리케이션 수가 표시됩니다.
전파 경로 읽는 방법
- 노드(애플리케이션): 각 사각형은 하나의 애플리케이션을 나타냅니다. 노드의 테두리 색상은 해당 애플리케이션의 상태를 나타냅니다(빨간색: 심각, 노란색: 경고, 녹색: 정상).
- 화살표(연결선): 애플리케이션 간의 트래픽 방향을 나타냅니다. 화살표 색상은 해당 연결의 상태를 나타냅니다. 심각(Critical) 또는 경고(Warning) 상태의 연결에는 흐름 애니메이션이 표시됩니다.
- 인시던트 발생 표시: 인시던트가 발생한 애플리케이션(대상 애플리케이션)에는 조준점 아이콘이 표시됩니다.
- 근본 원인 표시: 근본 원인으로 추정되는 애플리케이션에는 별 아이콘이 표시됩니다.
- 인과 관계 경로: 근본 원인에서 인시던트 대상까지의 인과 관계 경로에 포함된 노드와 연결선이 강조 표시됩니다.
- 트래픽 통계: 연결선 위에 트래픽 통계 레이블이 표시됩니다. 특정 애플리케이션에 마우스를 올리면 해당 애플리케이션과 직접 연결된 서비스만 강조되고, 나머지는 흐려집니다.
팁: 애플리케이션 이름을 클릭하면 해당 애플리케이션의 상세 다이얼로그가 열려 메트릭, 로그, 분산추적 등을 추가로 분석할 수 있습니다.
참고: 맵 영역에서 마우스 휠로 확대/축소가 가능하고, 드래그로 화면을 이동할 수 있습니다. 빈 영역을 더블클릭하면 기본 위치로 복원됩니다.
4. 인과 타임라인
인시던트 발생 전후의 관련 이벤트를 시간 순서로 나열하여, 인시던트로 이어진 인과 관계를 파악할 수 있습니다. 섹션 헤더에는 이벤트 건수가 표시됩니다.
타임라인에는 다음과 같은 인프라 변경 이벤트가 포함될 수 있습니다.
| 이벤트 유형 | 표시 예시 |
|---|---|
| 배포(Deployment) | "배포 변경사항: v2.1.0" -- 새 버전 배포 시각과 함께 표시 |
| 롤아웃(Rollout) | "롤아웃 이벤트: ReplicaSet 업데이트" -- 스케일링/롤링 업데이트 |
| 업스트림 배포 | "업스트림 배포: payment-service v1.3.0" -- 상위 서비스의 배포 변경 |
| 설정 변경 | 리소스 포화나 SLO 임계값 변경에 따른 이벤트 |
| SLO 연쇄 | "SLO 연쇄: 가용성" -- 다른 서비스의 SLO 위반이 전파된 경우 |
| 로그 이상 | "로그 패턴: NullPointerException" -- 에러 로그 패턴 급증 |
뷰 모드 전환
인과 타임라인은 두 가지 뷰 모드를 제공합니다. 섹션 헤더 우측의 버튼으로 전환할 수 있습니다.
간략 보기
상단에 이벤트 요약 통계가 표시됩니다.
| 통계 항목 | 의미 |
|---|---|
| 이벤트 건수 | 타임라인에 포함된 전체 이벤트 수 |
| 심각(Critical) | 심각 수준의 이벤트 수 |
| 경고(Warning) | 경고 수준의 이벤트 수 |
| 추정 근본 원인 | 근본 원인으로 추정된 이벤트 표시 |
통계 아래에 각 이벤트가 한 줄로 간결하게 나열됩니다. 각 행에는 시간, 심각도 점(dot), 애플리케이션 이름, 이벤트 제목이 표시됩니다. 근본 원인 이벤트에는 추정 근본 원인 배지가, 인시던트 시점에는 인시던트 배지가 표시됩니다.
전체 뷰
각 이벤트가 카드 형태로 상세하게 표시됩니다. 시간 축을 따라 세로로 나열되며, 각 이벤트 카드에는 다음 정보가 포함됩니다.
- 발생 시각: 이벤트가 감지된 시각
- 심각도 마커: 색상 원형 마커로 심각도 구분 (빨간색: 심각, 노란색: 경고, 녹색: 정보)
- 카테고리 칩: 이벤트의 원인 카테고리 (배포, 데이터베이스, 리소스, 업스트림, 로그, SLO)
- 심각도 칩: 이벤트의 심각도 수준
- 애플리케이션 링크: 관련 애플리케이션 이름 (클릭 시 상세 다이얼로그 열림)
- 이벤트 제목: 발견 항목의 제목 (예: "SLO: 가용성", "배포 변경사항: v2.1.0" 등)
- 상세 설명: 이벤트에 대한 추가 정보
근본 원인으로 추정된 이벤트 카드는 빨간색 좌측 테두리와 깜빡이는 효과로 강조 표시되며, 추정 근본 원인 배지가 표시됩니다.
인시던트 발생 시점은 별도의 인시던트 카드로 타임라인에 삽입되어, 인시던트 전후 이벤트를 시각적으로 구분할 수 있습니다. 인시던트가 아직 진행 중인 경우 종료 시각 대신 진행중 표시가 나타납니다.
팁: 인과 타임라인에서 근본 원인 이벤트의 시각과 인시던트 발생 시각을 비교하면, 원인과 결과 사이의 시간 간격을 파악할 수 있습니다.
5. 상세 RCA 보고서
개별 원인 항목에 대한 분석 결과를 트리 구조로 확인할 수 있습니다. 이 섹션에서는 인시던트의 원인을 계층적으로 탐색할 수 있습니다.
인시던트 시간 범위 표시
상세 RCA 보고서 상단에는 인시던트 발생 시간 범위 바가 표시됩니다. 인시던트 대상 애플리케이션 이름과 인시던트 시작~종료 시각이 표시되며, 인시던트가 아직 진행 중인 경우 종료 시각 대신 진행중 표시가 나타납니다.
트리 구조 이해
트리의 최상위 노드는 인시던트가 발생한 애플리케이션의 SLO 위반 상태를 나타냅니다. 이 아래로 원인 카테고리별 그룹 노드가 배치되고, 각 그룹 아래에 개별 발견 항목(finding) 노드가 위치합니다.
트리 노드 구성 요소
각 노드에는 다음 정보가 표시됩니다.
| 요소 | 설명 |
|---|---|
| 접기/펼치기 화살표 | 하위 노드가 있는 경우 클릭하여 접기/펼치기 가능 |
| 노드 이름 | 카테고리명 또는 발견 항목 제목 |
| 애플리케이션 링크 | 관련 애플리케이션으로 이동하는 아이콘 (클릭 시 상세 다이얼로그 열림) |
| 추정 근본 원인 배지 | 근본 원인으로 판단된 노드에 빨간색 배지 표시 |
| 인시던트 배지 | 인시던트 대상 노드에 표시 |
| 원인 가능성 아이콘 | 원인일 가능성이 있는 노드에 빨간색 경고 아이콘 표시 |
| 신뢰도 배지 | 원인의 신뢰도 수준 (높음/중간/낮음) |
| 스파크 차트 | 해당 항목의 시계열 데이터를 소형 꺾은선 차트로 시각화. 인시던트 발생 구간이 빨간색 음영으로 표시됩니다. |
| 시간 범위 | 이벤트가 발생한 시간 범위 |
카테고리 그룹 노드
트리에서 카테고리 그룹 노드는 발견된 원인을 유형별로 묶어 보여줍니다.
| 카테고리 | 설명 |
|---|---|
| 배포 변경사항 | 분석 기간 중 발생한 배포, 롤아웃 이벤트 |
| 업스트림 서비스 이슈 | 상위 서비스의 장애나 SLO 위반 |
| 리소스 포화 | CPU, 메모리, 디스크 등 인프라 리소스의 포화 상태 |
| 로그 이상 | 오류/경고 수준의 로그 패턴 급증 |
| SLO 연쇄 | 다른 서비스의 SLO 위반이 연쇄적으로 영향 |
| 데이터베이스 이슈 | 데이터베이스 응답 시간 저하, 연결 문제 등 |
발견 항목(Finding) 노드
최하위 노드인 발견 항목에는 구체적인 원인 정보가 포함됩니다.
- 애플리케이션 이름: 원인이 발생한 애플리케이션
- 리포트 카테고리: 관련 리포트 영역 (예: SLO, CPU, 메모리, 네트워크 등)
- 검사 항목: 임계값을 초과한 검사 조건 항목명
- 스파크 차트: 해당 메트릭의 시계열 추이. 차트 위에 마우스를 올리면 해당 시점의 값과 시각이 툴팁으로 표시됩니다.
각 발견 항목의 스파크 차트에서도 인시던트 발생 구간이 빨간색 음영과 점선으로 표시되어, 원인 이벤트와 인시던트 발생 시점의 상관관계를 시각적으로 확인할 수 있습니다.
노드 상세 정보 확인
발견 항목 노드를 클릭하면 상세 다이얼로그가 열립니다. 다이얼로그에서 제공하는 정보는 원인 유형에 따라 다릅니다.
로그 패턴 상세 (로그 분석)
로그 이상 카테고리의 발견 항목을 클릭하면 다음 정보가 포함된 로그 패턴 다이얼로그가 열립니다.
- 심각도: 로그 레벨 (Critical, Error, Warning, Info, Debug). 에러 수준 이상의 로그는 빨간색으로 하이라이팅됩니다.
- 발생 건수: 해당 로그 패턴의 총 발생 횟수 (예: "142 occurrences of error-level log pattern")
- 시계열 차트: 로그 패턴 발생 추이 차트. 인시던트 발생 구간이 빨간색 음영으로 표시되어, 로그 패턴 급증과 인시던트 발생 시점의 상관관계를 확인할 수 있습니다.
- 샘플 메시지: 해당 로그 패턴에 해당하는 실제 로그 메시지 샘플. 에러 메시지, 스택 트레이스 등 원인 파악에 필요한 정보가 포함됩니다.
다이얼로그 하단의 메시지 보기 버튼을 클릭하면 해당 애플리케이션의 로그 탭에서 동일 패턴의 전체 로그 메시지를 확인할 수 있습니다.
로그 분석 활용 팁
| 분석 시나리오 | 활용 방법 |
|---|---|
| 에러 로그 급증 확인 | 로그 이상 카테고리의 발견 건수와 시계열 차트에서 인시던트 전후 에러 로그 추이를 비교합니다. |
| 배포 후 에러 패턴 | 배포 이벤트 시각과 로그 패턴 급증 시각을 비교하여 배포가 원인인지 판단합니다. |
| 에러 메시지 분석 | 샘플 메시지의 스택 트레이스나 에러 코드를 통해 구체적인 장애 원인을 파악합니다. |
| 관련 로그 전체 조회 | 메시지 보기 버튼으로 전체 로그를 조회하여 에러 발생 패턴을 심층 분석합니다. |
메트릭 상세
리소스, SLO 등 메트릭 기반 발견 항목을 클릭하면 해당 메트릭의 상세 위젯(차트)이 다이얼로그로 표시됩니다. 인시던트 전후 기간의 메트릭 변화를 시각적으로 비교할 수 있습니다.
분산추적 분석
분산추적 탭에서는 인시던트 발생 시간대의 추적(Trace) 데이터를 확인할 수 있습니다. 인시던트가 발생한 애플리케이션에 대해 인시던트 시간 범위로 자동 필터링된 추적 히트맵과 추적 목록이 표시됩니다.
응답 시간 SLO가 설정된 경우, 해당 임계값을 초과한 추적(Trace)이 자동으로 필터링되어 표시됩니다. 특정 추적을 클릭하면 스팬(Span) 상세 정보를 확인할 수 있습니다.
트레이스 분석 활용
분산추적 탭에서 인시던트의 근본 원인을 실제 요청 흐름 수준에서 검증할 수 있습니다.
서비스 의존성 파악
추적(Trace)의 스팬(Span) 목록을 통해 인시던트가 발생한 서비스의 호출 체인을 확인할 수 있습니다. 각 스팬에는 호출한 서비스명, 응답 시간, 상태 코드가 포함되어 있어 어떤 서비스 구간에서 지연이 발생했는지 파악할 수 있습니다.
느린 트레이스 분석
인시던트 시간대에 SLO 임계값을 초과한 느린 트레이스를 중점적으로 분석합니다. 다음 관점에서 트레이스를 검토할 수 있습니다.
| 분석 관점 | 설명 |
|---|---|
| 응답 시간 분포 | 히트맵에서 응답 시간이 급증한 구간의 트레이스를 확인 |
| 오류 트레이스 | 오류 상태 코드(4xx, 5xx)가 발생한 트레이스를 필터링 |
| 스팬별 지연 | 개별 스팬의 소요 시간을 비교하여 병목 구간 식별 |
| 서비스 간 호출 | 업스트림/다운스트림 서비스 호출 흐름과 각 구간의 소요 시간 |
팁: RCA 탭에서 추정한 근본 원인(예: 업스트림 서비스 장애)을 분산추적 탭의 실제 트레이스에서 검증하면, 원인 판단의 정확성을 높일 수 있습니다. 예를 들어, 업스트림 서비스 스팬의 응답 시간이 급증한 것을 확인하면 RCA의 추정을 뒷받침할 수 있습니다.