[microservice] Monitoring vs Observability
Updated:
Monitoring
- 데이터를 수집하는 행위
- 사전에 정의된 정보를 수집하여 특정 상황에 대해 경고 발생
- 특정 항목에 집중
- 모니터링은 관찰 가능성의 전제 조건
- 지식 혹은 경험에 의해 알고(예상할 수) 있는 시스템에 적합
- 예시
- 혈압 측정기
- 지속적으로 혈압을 측정하여 결과를 수집하고 결과가 정해진 기준을 넘으면 경고 발생
- 메트릭 수집
- CPU 사용률을 수집하여 정해진 기준을 넘으면 경고
- 혈압 측정기
- 아키텍쳐(참고용)
Observability
- 모니터링을 통해 인사이트를 도출하는 능력
- 무슨 일이 발생하고 있는지, 어디에서 발생하는지를 이해하고 답변
- 여러 데이터들(로그, 메트릭, 추적, …)에 대해 모니터링을 설정하면 해당 시스템은 관찰 가능해짐
- 오류가 발생한 위치와 이유, 원인을 파악하는데에 도움
- 서비스간의 병목 현상 발견
- 트래픽 오류 비율 식별
- 이상 징후 식별
- …
- 마이크로서비스 환경에서 예측할 수 없는(힘든) 시스템에 적합
- 아키텍쳐(참고용)
비교
- 단순하게보자면 모니터링은 데이터를 수집하고 관찰 가능성은 수집된 데이터를 해석한다고 볼 수 있음
- 모니터링은 상황 인식을 제공하고 관찰 가능성은 무슨 일이 어디서 발생하고 왜 발생하고 어떻게 해야하는지 등의 질문에 대한 답을 제공
- 모니터링으로 서비스의 응답 속도가 느려졌음을 알람으로 받고 관찰 가능성으로 서비스내의 어떤 어플리케이션의 어느 부분이 문제인지 파악해서 해결
- 모니터링만으로는 문제 여부는 파악이 가능하지만 위치와 원인, 해결 방법 등은 알 수 없음