brunch

You can make anything
by writing

C.S.Lewis

by Sunny Feb 22. 2022

Monitoring vs. Observability

Monitoring과 Observability는 어떻게 다른가요?

이 글의 원문은 Observability 톺아보기에서 확인하실 수 있습니다.


Monitoring에서는 어떠한 것이 문제라는 기준이 이미 정립돼있습니다. 모니터링 시스템은 메트릭스를 수집하고, 합계를 구하고 분석합니다. 이 과정을 통해 사전에 정의 내린 문제에 대한 패턴을 감지해냅니다. 이를 실시간으로 대시보드를 통해서 볼 수도 있고, 필요하면 경고 알림을 받기도 합니다.


때로는 경험이 많은 엔지니어의 직감에 의존하는 경우도 있습니다. 경험해온 패턴과 지식에 근거해서 debugging을 합니다. 이슈가 감지되면, 이전에 알려진 문제와 비슷한 패턴이나 유사성이 있는지 비교해 봅니다.


모니터링에서 흔히 사용하는 정적인 대시보드(Static dashboards)는 보통 각 서비스별로 데이터를 모아서 보여줍니다. 이러한 방식은 엔지니어가 시스템의 일부 측면을 이해할 때는 유용합니다. 즉, 대시보드는 애초에 메트릭스의 조합과 주목할 만한 트렌드 흐름을 개략적으로 보여주기 위해 고안되었습니다. 하지만, 새로운 문제를 디버깅할 때는 대시보드로는 한계가 있을 수도 있습니다.


하지만 만약 시스템에서 어떤 종류의 문제가 발생할지조차 모른다면 어떡할까요? 영어로 이런 상황을 Unknown Unknowns이라고 칭합니다. 현대의 분산된 시스템 아키텍처에서는 문제 상황을 해결하는 난이도가 훨씬 높습니다. 하나의 새로운 request는 다수의 서비스를 거치고, 여러 네트워크를 통해 이동하기도 합니다. 누구도 어떤 문제가 일어날지 예측할 수 없습니다. 한 번도 경험해 보지 못한 상황을 마주하기도 합니다.


Observability에서는 숨겨진 이슈를 찾아내는 게 중요합니다. 그러려면 로그, 메트릭스, 이벤트, 트레이스 등 흩어진 서로 다른 정보들을 한곳에 모아야 합니다. 그 정보들의 맥락과 연관성을 파악할 수 있어야 합니다. 이렇게 시스템을 한눈에 파악할 수 있는 능력을 갖췄을 때 가시성(visibility)이 확보되었다고 말합니다.

매거진의 이전글 데이터 중심의 변화 접근법이 뭔가요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari