
모니터링
- 서비스 운영 시 발생할 수 있는 이슈나 오류에 대비하기 위해 관련 데이터를 수집하고 기록
- 서비스의 안정적인 운영을 위해 서버의 리소스 정보를 한곳으로 모아서 관리하고 시각화 하기 위함
- 분산 시스템에서 발생하는 메트릭 데이터를 수집, 저장, 분석

Prometheus
- 메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 제공하는 메트릭 기반 오픈 소스 모니터링 시스템
메트릭: 시스템의 성능과 상태에 대한 통계적인 정보(cpu사용량, 메모리 사용량, 응답 시간)
prometheus 아키텍처

- exporter
- 시스템의 메트릭을 실제로 수집하는 프로세스
- HTTP 통신을 통해 메트릭 데이터를 가져갈 수 있게 엔트포인트를 제공
- Pushgateway
- prometheus server가 pulling할 수 있도록 중계자 역할
- prometheus server
- 메트릭 데이터를 수집하고 저장
- retrieval: expoter가 제공한 엔트포인트에 GET요청ㅇ로 메트릭 정보를 수집
- TSDB: 시계열 데이터를 저장하는 스토리지
- alertmanager
- 특정 메트릭에 문제가 발생 시 이메일, 슬랙 등 알림
- service discovery
- 메트릭 수집 대상을 파악
- MSA로 구성된 서비스에서 각각 다른 IP와 Port에 대한 정보를 저장하고 관리하기 위해 쿠버네티스를통해 모니터링할 타켓 서비스의 목록을 가져옴
kubernetes: 컨테이너 관리를 자동화 해주고 쉽게 빠르게 배포 및 확장할 수 있는 오픈소스 플랫폼
특징
- pull 방식의 구조로, 모든 메트릭의 정보를 중앙 서버로 보내지 않아도 된다.
- push: 데이터를 가진 곳에서, 필요한 곳으로 보냄
- pull: 데이터가 필요한 곳에서 가진 곳에 접속하여 데이터를 수집
- 데이터 저장소가 시계열 데이터 저장소로 구성되어, 많은 양의 정보를 빠르게 검색 가능하다.
- PromQL을 통한 강력한 쿼리

Grafana
- 오픈소스 메트릭 데이터 시각화 도구
- 모니터링 및 경고, 로그 분석, 비지니스 지표 추적 등


CAdvisor
- 구글에서 만든 컨테이너 모니터링 도구
- 컨테이너별 실시간 자원 사용량 및 도커 모니터링 정보 등 시각화

CAdvisor+ Prometheus + Grafana
참고
Prometheus란 무엇인가
Prometheus란?
Grafana란?
[프로메테우스] (3) CAdvisor란?