[인프라] 프로메테우스 모니터링 개념

참고

  • 프로메테우스 오픈 소스 모니터링 시스템

개요

  • 프로메테우스 개념을 익히기 전, 간단히 모니터링 개념에 대해서 정리 진행합니다.

모니터링이란?

  • 모니터링의 종류는 크게 4가지로 분류할 수 있습니다.
    • 알림 : 문제가 발생한 시기나 시점을 파악하는 것이 모니터링에서 가장 중요합니다. 문제가 생기면 모니터링 시스템은 책임 운영자를 호출할 수 있어야 합니다.
    • 디버깅 : 이제 운영자를 호출 했으니, 운영자는 문제의 근본 원인을 규명하고, 문제가 무엇이든 간에 반드시 해결해야 합니다.
    • 추세 파악 : 알림과 디버깅은 보통 몇 분 부터 몇 시간까지 시간 단위로 발생합니다. 긴급하지 않은 문제인 경우에는 시스템이 어떻게 사용되고 시간에 따라 변화하는지를 확인할 수 있는 기능도 유용합니다. 추세 파악은 용량 계획 같은 설계 결정과 프로세스에 영향을 미칠 수 있습니다.
    • 플러밍 : 망치를 갖고 있으면, 모든 것이 못처럼 보이기 시작합니다. 결국 모든 모니터링 시스템은 데이터 처리 파이프라인입니다. 때로는 맞춤형 솔루션을 만들기 보단 모니터링 시스템의 일부를 다른 목적으로 적절하게 사용하는 편이 더 좋습니다. 엄밀히 말해, 플러밍이 모니터링이 모니터링은 아니지만 실제로 흔한 경우이기 떄문에 이 목록에 포함시켰습니다.

모니터링 범주

  • 대부분의 모니터링은 단 한가지, 즉 이벤트에 대한 것 입니다.
  • 이벤트에는 다음과 같은 사항을 비롯해 거의 모든 것이 포함됩니다.
    • HTTP 요청 수신
    • HTTP 400 응답 송신
    • 함수 시작
    • if 문의 else 에 도달
    • 함수 종료
    • 사용자 로그인
    • 디스크에 데이터 쓰기
    • 네트워크에서 데이터 읽기
    • 커널에 추가 메모리 요청
  • 모든 이벤트에 대한 컨텍스트를 파악하면, 디버깅에 큰 도움이 되고 기술적인 관점과 비즈니스 관점 모두에서 시스템의 수행 방법을 이해할 수 있지만, 처리 및 저장해야 하는 데이터 양이 늘어납니다.
  • 따라서 데이터의 양을 감소 시킬 수 있는 방법에는 프로파일링, 트레이싱, 로깅, 메트릭의 네 가지가 있습니다.

프로파일링

  • 프로파일링은 우리가 모든 시간에 대해 모든 이벤트의 컨텍스트를 가질 수 없지만, 제한된 기간의 일부 컨텍스트를 가질 수 있다는 방식으로 접근합니다.
  • 프로파일링은 상당히 전략적인 디버깅 방법입니다.
  • 오랜 시간 동안 프로파일링을 해야 하는 경우, 다른 모니터링 방법과 함께 사용하려면 반드시 데이터의 양을 줄여야 합니다.

트레이싱

  • 트레이싱은 모든 이벤트를 살펴보는 것이 아니라, 관심 기능을 통과하는 일부 이벤트처럼 수백 개의 이벤트 중 특정 이벤트에만 집중합니다.
  • 트레이싱은 스택 트레이스에서 관심 있는 부분의 함수들을 기록하고, 때때로 이러한 함수들이 얼마나 오랫동안 수행되었는지도 기록합니다.
  • 이를 통해 프로그램이 어느 부분에서 시간을 소비하고 어떤 코드 경로가 지연에 가장 큰 영향을 미치는지를 알 수 있습니다.

로깅

  • 로깅은 제한된 이벤트 집합을 살펴보고 각 이벤트에 대한 컨텍스트 일부를 기록합니다.
    • 트랜잭션 로그 : 어떠한 대가를 치르더라도 영원히 안전하게 보관해야 하는 중요한 비즈니스 기록입니다. 주로 비용과 연관된 기능이나 사용자가 직접 사용하는 주요 기능이 트랜잭션 로그에 속합니다.
    • 요청 로그 : 모든 HTTP 요청이나 데이터베이스 호출을 추적하는 경우의 로그입니다. 요청 로그는 사용자 직접 사용하는 기능이나 내부 최적화의 구현에 쓰일 수 있습니다. 대부분의 요청 로그가 삭제되는 것을 바라지 않겠지만, 그렇다고 로그 중 일부를 잃는다고 해서 큰 문제가 되진 않습니다.
    • 애플리케이션 로그 : 모든 로그가 요청 로그인 것은 아니며, 프로세스 그 자체에 관한 로그도 있습니다. 시작 메시지, 백그라운드 유지보수 작업, 그리고 그 밖에 프로세스 수준의 로그들이 전형적인 애플리케이션 로그입니다.
    • 디버그 로그 : 디버그 로그는 굉장히 상세해서 생성과 저장에 비용이 많이 듭니다.

메트릭

  • 메트릭은 컨텍스트를 대부분 무시하고 다양한 유형의 이벤트에 대해 시간에 따른 집계를 추적합니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY