본문으로 건너뛰기
버전: 1.0.3

9.2. 모니터링 연동

어떨 때 보는가

  • "언제부터 느려졌는지" 를 알아야 할 때
  • 여러 파드의 로그를 한꺼번에 검색할 때
  • 지난 장애를 되짚을 때
  • 애플리케이션 내부에서 어느 코드가 느린지 봐야 할 때

Console 이 보여 주는 것의 한계

Console 은 Kubernetes API 를 화면으로 감싼 것입니다. API 는 지금 상태 를 알려 주지, 과거 기록을 보관하지 않습니다.

자료Console 에서
지금 CPU·메모리 사용량볼 수 있습니다
한 시간 전 사용량볼 수 없습니다
지금 떠 있는 파드의 로그볼 수 있습니다
지워진 파드의 로그볼 수 없습니다
최근 이벤트볼 수 있습니다 (보관 기간 내)
지난주 이벤트볼 수 없습니다
요청 하나가 어느 서비스를 거쳤는지볼 수 없습니다
어느 SQL 이 느린지볼 수 없습니다

과거를 보거나 애플리케이션 내부를 보려면 별도로 수집해 보관하는 시스템이 필요합니다.

COP 의 모니터링 제품 두 가지

COP 는 성격이 다른 두 제품을 함께 제공합니다. 둘은 별개 제품이고 화면도 따로입니다.

제품보는 범위답하는 질문
OPENMARU Observability클러스터와 그 위의 워크로드"클러스터가 건강한가, 어느 서비스가 문제인가"
OPENMARU APM애플리케이션 내부"그 서비스 안에서 무엇이 느린가"

Observability 로 범위를 좁히고 APM 으로 원인을 찾는 순서로 쓰는 것이 보통입니다.

OPENMARU Observability

클러스터 관측 제품 입니다. 노드·파드·서비스 같은 Kubernetes 자원과 그 사이의 관계를 시간에 따라 보관하고 보여 줍니다.

Console 과 다른 점은 시간축이 있다 는 것입니다. Console 은 지금 값을, Observability 는 그 값이 어떻게 변해 왔는지를 보여 줍니다.

주요 화면은 이렇습니다.

화면보이는 것
클러스터 대시보드자원 사용량 추이, 파드 배치 현황, 이벤트
토폴로지 맵서비스 사이의 호출 관계
애플리케이션서비스별 응답 시간·오류율·처리량
분산 추적요청 하나가 여러 서비스를 거쳐 간 경로
로그 뷰어여러 파드의 로그를 한 번에 검색
인시던트장애 이력과 원인 분석
SRE 보고서기간별 안정성 지표

Observability 대시보드

Observability 클러스터 대시보드

Console 의 개요 화면(2.1 장)과 비슷해 보이지만 담는 것이 다릅니다.

요소설명
자원 게이지CPU·메모리·디스크·파드 사용률
클러스터 요약노드·파드·워크로드·인시던트 개수
네임스페이스 리소스 배분어느 네임스페이스가 자원을 얼마나 쓰는지 넓이로 표시
POD 맵파드 하나를 사각형 하나로 그려 전체 상태를 한눈에
리소스 상위 소비자가장 많이 쓰는 파드 순위
클러스터 이벤트최근 이벤트
리소스 추세시간에 따른 사용량 변화

네임스페이스 리소스 배분과 POD 맵이 Console 에 없는 것 입니다. 수백 개 파드의 상태를 한 화면에서 확인할 수 있고, 어느 팀이 자원을 많이 쓰는지 넓이로 바로 보입니다.

분산 추적

Observability 분산 추적

요청 하나가 여러 서비스를 거쳐 간 경로와 각 구간에서 얼마나 걸렸는지 를 보여 줍니다.

마이크로서비스 환경에서 "느리다" 는 신고가 들어왔을 때, 어느 서비스 구간이 원인인지 찾는 데 씁니다. Console 의 파드 로그로는 서비스를 넘나드는 흐름을 볼 수 없습니다.

이럴 때 씁니다설명
어느 서비스가 병목인지 모를 때구간별 소요 시간을 비교합니다
특정 요청만 느릴 때그 요청의 추적을 찾아 경로를 봅니다
오류가 어디서 시작됐는지오류가 난 구간을 짚습니다

OPENMARU APM

애플리케이션 성능 관리 제품 입니다. 애플리케이션 안에서 벌어지는 일을 봅니다.

Observability 가 "어느 서비스가 느린가" 까지 알려 준다면, APM 은 그 서비스 안에서 무엇이 느린가 를 알려 줍니다.

보는 것
트랜잭션요청 하나하나의 처리 시간과 상태
SQL어느 쿼리가 얼마나 걸렸는지
JVM힙 사용량, GC 발생, 스레드 상태
외부 호출다른 시스템을 부른 시간
오류예외가 발생한 지점

APM 대시보드

APM 대시보드
요소설명
실시간 활성 사용자지금 처리 중인 요청 수
트랜잭션 히트맵(T-Map)응답 시간과 처리량을 점으로 흩어 그린 그림
TPS초당 처리 건수
평균 응답시간응답 시간 추이
JVM 힙 사용량메모리 상태
오류율실패한 요청의 비율

T-Map 이 APM 의 특징적인 화면입니다. 점 하나가 요청 하나이고, 세로 위치가 응답 시간입니다. 느린 요청이 위쪽에 모이므로 패턴을 눈으로 알아볼 수 있습니다.

트랜잭션 상세

느린 요청 하나를 골라 열면 그 요청 안에서 무슨 일이 있었는지 를 봅니다. APM 이 다른 도구와 가장 크게 다른 화면입니다.

APM 트랜잭션 상세
구역보이는 것
트랜잭션 개요어느 요청인지, 응답 시간, 호출한 곳, 시작·종료 시각
문제 감지APM 이 스스로 짚은 원인과 그 근거
시간 분석응답 시간을 CPU·SQL·외부 호출·데이터 조회로 쪼갠 비율

화면 위쪽 탭에서 더 자세히 볼 수 있습니다.

내용
성능 분석원인 후보와 시간 배분
호출 흐름메서드 호출 순서와 각 단계의 소요 시간
헤더 · 쿠키 · 파라미터요청에 담겨 온 값
AI 성능 진단원인 추정과 조치 제안

시간 분석이 원인을 좁혀 줍니다. 예를 들어 3초 걸린 요청에서 SQL 이 99.9% 를 차지했다면 애플리케이션 코드가 아니라 데이터베이스 쪽을 봐야 합니다. CPU 시간이 대부분이면 반대입니다.

이 수준의 정보는 Console 이나 Observability 에서 얻을 수 없습니다. 애플리케이션 안에 에이전트가 들어가 있어야 알 수 있는 것입니다.

둘을 어떻게 나눠 쓰나

장애가 났을 때의 순서입니다.

순서어디에서알아내는 것
1Console파드가 떠 있나, 방금 재시작했나
2Observability언제부터인가, 어느 서비스가 느린가
3APM그 서비스 안에서 무엇이 느린가 (SQL·GC·외부 호출)

범위를 좁혀 가며 내려갑니다. 처음부터 APM 을 보면 어느 애플리케이션을 볼지 정하지 못합니다.

Console 에서 이동하기

Console 왼쪽 메뉴의 도구 에서 이동합니다(9.3 장). 카드를 누르면 새 탭에서 열립니다.

같은 통합 인증을 쓰므로 다시 로그인하지 않아도 됩니다. 세 화면을 탭으로 열어 두고 오가며 쓰면 됩니다.

두 제품 모두 COP 를 설치할 때 함께 구성됩니다. 별도 설치 작업이 필요하지 않습니다.

무엇을 어디에서 볼지

알고 싶은 것볼 곳
지금 파드가 떠 있나Console (3.1 장)
지금 왜 종료됐나Console 의 파드 로그와 이벤트
배포를 되돌려야 하나Console (3.2 장)
언제부터 느려졌나Observability 리소스 추세
어제 종료된 파드의 로그Observability 로그 뷰어
어느 서비스가 병목인가Observability 분산 추적
자원을 얼마나 늘려야 하나Observability 리소스 추세
어느 SQL 이 느린가APM
메모리가 새는가APM JVM 화면
특정 사용자 요청만 느린 이유APM 트랜잭션

장애가 진행 중이면 Console 부터, 지나간 장애면 Observability 부터 보는 것이 빠릅니다.

이벤트 보관 기간

Kubernetes 이벤트는 기본으로 한 시간쯤 지나면 사라집니다. 클러스터 저장소를 이벤트가 가득 채우지 않게 하려는 것입니다.

장애가 났을 때 이벤트를 나중에 보려면 그때 바로 확인하거나, 클러스터 진단으로 수집해 두십시오(2.3 장). Observability 는 이벤트를 따로 수집해 보관하므로 기간이 지난 뒤에도 조회할 수 있습니다.

자세한 사용법은 각 제품의 사용자 매뉴얼을 보십시오.