본문으로 건너뛰기

4.4. 이상 탐지

평소와 다른 구간이 있는가 — 6종

어디를 봐야 할지 모를 때 처음 쓰는 갈래입니다. 지표를 검사해 평소와 다른 구간을 찾아 줍니다.

무엇이 문제인지 짚어 주지는 않습니다. 어디를 볼지 좁혀 줍니다.

무엇을 답해 주나

  • 언제 — 평소와 어긋난 시점
  • 얼마나 — 얼마나 벗어났는지
  • 어느 지표에서 — 여러 지표를 함께 볼 때
이상 탐지 결과 — 정상 구간 위에 어긋난 시점만 점으로 표��시된다

값은 선으로 이어 그리고 평소와 어긋난 시점만 따로 표시합니다. 위 그림은 1시간 구간의 값 47개 가운데 3개가 이상으로 잡힌 경우입니다. 나머지는 정상으로 보고 넘어갑니다.

"이상" 은 고장이라는 뜻이 아닙니다

평소와 다르다는 뜻입니다. 다음은 모두 이상으로 잡히지만 문제가 아닙니다.

  • 배포 직후 — 재시작과 응답시간 변화
  • 정기 배치 — 새벽에만 뛰는 부하
  • 행사·공지 — 갑자기 몰린 트래픽

먼저 그 시각에 무슨 일이 있었는지 떠올려 보십시오. 짚이는 것이 없을 때 자세히 봅니다.

반대도 있습니다. 천천히 나빠지는 것은 잡히지 않습니다. 메모리가 며칠에 걸쳐 조금씩 차면 "평소" 자체가 함께 올라가 어긋난 구간이 생기지 않습니다. 그런 것은 예측 분석이 맞습니다.

겪는 일맞는 갈래
갑자기 튀었다이상 탐지
서서히 차오른다예측
왜 그런지 알고 싶다상관

observ 데이터소스 — 4종

시나리오보는 지표
서비스 이상 징후 탐지 (컨테이너)HTTP 요청량 · 응답시간 · 재시작 횟수
서비스 이상 징후 탐지 (Web·WAS)응답시간 · 에러율 · 트래픽 · JVM 힙
JVM 메모리 분석 (컨테이너)힙 사용량 · GC 시간 · 스레드 수
JVM 메모리 분석 (WAS)힙 사용량 · 활성 스레드

이름이 같은 두 쌍은 설명 문구로 가립니다. "컨테이너" 가 나오면 앞쪽, "Web 서버" 나 "WAS" 가 나오면 뒤쪽입니다 (401 장 참고).

서비스 이상 징후 탐지 를 고른 화면입니다.

서비스 이상 징후 탐지 — 대상 고르기

재시작 횟수가 섞여 있습니다

컨테이너 쪽 서비스 이상 징후 탐지 는 지표 셋 중 하나가 재시작 횟수입니다. 다른 둘과 성격이 다릅니다. 응답시간은 정도의 문제지만 재시작은 사건입니다.

재시작이 잡히면 그것부터 봅니다. 응답시간이 튄 것이 재시작 때문일 수 있습니다.

apm 데이터소스 — 2종

시나리오보는 지표
서비스 이상 징후 탐지에러율 · 5xx 발생량 · Apdex 점수 · 불만족 트랜잭션
스레드 풀 이상 분석Blocked · Waiting · Deadlock 스레드

스레드 풀 이상 분석이 짚어 주는 것

세 가지가 뜻하는 바가 다릅니다.

상태
Blocked락을 기다린다 — 서로 경합 중
Waiting남을 기다린다 — 대개 DB·외부 호출 응답 대기
Deadlock서로를 기다려 영영 안 풀린다

Waiting 이 많으면 원인이 이 앱 밖에 있습니다. Deadlock하나만 나와도 확인해야 합니다. 저절로 풀리지 않습니다.

되묻는 시나리오 둘

서비스 이상 징후 탐지 는 두 데이터소스 모두 어느 지표를 볼지 한 번 더 묻습니다.

데이터소스고를 수 있는 것
apm에러율 · 5xx 발생량 · Apdex 점수 · 불만족 트랜잭션
observ (Web·WAS)응답시간 · 에러율 · 트래픽 · JVM 힙 사용률

지표마다 문제되는 방향이 다릅니다

지표무엇을 잡나
에러율 · 5xx · 불만족 트랜잭션오르는 것
Apdex 점수떨어지는 것 — 높을수록 좋은 값입니다
트래픽양쪽 다

트래픽이 양쪽인 이유가 있습니다. 갑자기 줄어드는 것도 이상입니다. 앞단이 막혀 요청이 들어오지 못하고 있다는 뜻일 수 있습니다. 트래픽이 0 에 가까워지는 것은 평온한 것이 아니라 유입이 끊긴 것입니다.

JVM 메모리 분석이 왜 이 갈래인가

observJVM 메모리 분석 둘은 갈래가 이상 탐지입니다. 힙·GC·스레드에서 어긋난 구간을 찾습니다.

같은 이름이 apm 에도 있는데 그쪽은 갈래가 상관 이고 예측·추세까지 함께 봅니다 (402 장 참고). 이름이 같아도 하는 일이 다릅니다.

  • observ 의 JVM 메모리 분석 — 이상한 구간이 있나
  • apm 의 JVM 메모리 분석 — 왜 그런가, 앞으로 어떻게 되나

언제 무엇을 고르나

겪는 일고를 것
어디가 문제인지 모르겠다서비스 이상 징후 탐지 — 여기서 시작
사용자 체감이 나빠졌다서비스 이상 징후 탐지 (apm) → Apdex 점수
에러가 늘었다는데 언제부터인지 모른다서비스 이상 징후 탐지 → 에러율
앱이 자꾸 종료된다서비스 이상 징후 탐지 (컨테이너) — 재시작
응답이 멈춘 듯하다스레드 풀 이상 분석 (apm)
메모리 누수가 의심된다JVM 메모리 분석
요청이 갑자기 줄었다서비스 이상 징후 탐지 (Web·WAS)트래픽

결과를 받은 뒤

이상 탐지는 시점을 줍니다. 그다음은 둘 중 하나입니다.

이상 탐지 결과를 받은 뒤의 흐름

상관 분석에서 같은 구간에 함께 움직인 지표를 찾으면 원인 후보가 좁혀집니다.

판정이 미덥지 않을 때

빌더에는 민감도를 조절하는 칸이 없습니다. 다만 자유 질문으로는 요청할 수 있습니다.

"조금 더 민감하게 다시 봐 줘" "여러 방법으로 교차 확인해 줘"

여러 방법으로 재서 정해진 수 이상이 동의할 때만 이상으로 치는 방식도 씁니다. 한 방법만 썼을 때 생기는 오판을 줄이려는 것입니다. 어떤 방법들인지는 부록: 이상 탐지는 이렇게 판정한다에서 다룹니다.

다음으로