로그와 메트릭 개요
- 몇 개 서버에서 실행되는 소규모 웹 사이트를 만들 때는 로그나 메트릭, 자동화를 하면 좋지만 필수는 아니다.
- 하지만, 일반 웹 사이트와 함께 사업 규모가 커지면 그런 도구에 필수적으로 투자해야 한다.
- 로그 :
- 에러 로그를 모니터링 하는 것이 중요
- 시스템의 오류와 문제들을 보다 쉽게 찾아낼 수 있도록 하기 때문이다.
- 에러 로그는 서버 단위로 모니터링 할 수도 있지만, 로그를 단일 서비스로 모아주는 도구를 활용하면 더 편리하게 검색하고 조회할 수 있다.
- 메트릭 :
- 메트릭을 잘 수집하면 사업 현황에 관한 유용한 정보를 얻을 수 있다.
- 메트릭을 잘 수집하면 시스템의 현재 상태를 손쉽게 파악할 수 있다.
- 메트릭 중 특히 유용한 것은 다음과 같다.
- 호스트 단위 메트릭 : CPU, 메모리, 디스크 I/O에 관한 메트릭
- 종합 메트릭 : 데이터베이스 계층의 성능, 캐시 계층의 성능
- 핵심 비즈니스 메트릭 : 일별 능동 사용자(DAU), 수익, 재방문(Retension)
메트릭과 마이크로미터
- 마이크로미터는 애플리케이션 메트릭 파사드라고 불리는데, 애플리케이션의 메트릭(측정 지표)을 마이크로
미터가 정한 표준 방법으로 모아서 제공
- 스프링 부트 액츄에이터는 마이크로미터를 기본으로 내장해서 사용한다.
- 개발자는 마이크로미터가 정한 표준 방법으로 메트릭(측정 지표)를 전달하면 된다. 그리고 사용하는 모니터링 툴에 맞는 구현체를 선택하면 된다.
- 이후에 모니터링 툴이 변경되어도 해당 구현체만 변경하면 된다. 애플리케이션 코드는 모니터링 툴이 변경되어도 그대로 유지할 수 있다.
- 메트릭을 보는 것은 정확한 값을 보는 것이 목적이 아니다. 대략적인 값과 추세를 확인하는 것이 주 목적이다.
메트릭 수집 조회 흐름(프로메테우스, 그라파나)
- 스프링 부트 액츄에이터와 마이크로미터를 사용하면 수 많은 메트릭을 자동으로 생성한다.
마이크로미터 프로메테우스 구현체는 프로메테우스가 읽을 수 있는 포멧으로 메트릭을 생성한다.
- 프로메테우스는 이렇게 만들어진 메트릭을 지속해서 수집한다.
- 프로메테우스는 수집한 메트릭을 내부 DB에 저장한다.
- 사용자는 그라파나 대시보드 툴을 통해 그래프로 편리하게 메트릭을 조회한다. 이때 필요한 데이터는 프로메테우스를 통해서 조회한다.