Infra/MLops

[Monitoring]Prometheus & Grafana

뚜둔뚜둔 2022. 1. 25. 01:06

1. Prometheus 

  • Prometheus : 모니터링 & 알람 프로그램 ( 오픈소스 )
  • 쿠버네티스에 주로 사용하나, 종속적이진 않음.
  • 수집하는 metric데이터를 다차원의 시계열 데이터 형태로 저장
  • 자체언어 PromQL 언어 사용해야함.
  • timeSeries DB 지원
  • server가 직접 정보를 가져가는 pull 방식 !!
  • 다양한 시각화툴과 연동지원, 다양한 알람 지원

 

 

Prometheus Server

  • 시계열 데이터를 수집하고 저장

Service Discovery

Exporter

  • prometheus가 metrics를 수집해 갈 수 있도록 정해진 HTTP Endpoint를 제공하여 정해진 형태로 metrucs를 export
  • prometheus Server 가 이 exporter의 endpoint로 HTTP GET Request를 보내 metrics를 pull하여 저장한다.
  • 하지만, 이런 pull 방식은 수집 주기와 네트워크 단절 등의 이유로 모든 metrics데이터를 수집하는 것을 보장할 수 없기 때문에 push방식을 위한 pushgateway 제공

 

Pushgateway

  • 보통 prometheus server의 pull 주기 보다 짧은 lifecycle을 지니니 작업의 metrics 수집 보장을 위함

Alertmanager

  • PromQL을 사용해 특정 조건문을 만들고, 해당 조건문이 만족되면 정해진 방식으로 정해진 메시지를 보낼 수 있음

PromQL

  • prometheus가 저장한 데이터 중 원하는 정보만 가져오기 위한 query Language 제공
  • time Series Data 이며, multi-Dimensional Data이기 때문에 처음 보면 다소 복잡할 수 있으나 prometheus 및 grafana를 잘 사용하기 위해서는 어느 정도 익혀두어야함.

 

 

2. Grafana

  • Prometheus 와 항상 함꼐 연동되는 시각화 툴
  • Prometheus 자체 UI도 있고 API 제공을 하기에 직접 시각화 대시보드를 구성할 수 도 있음.
  • 쿠버네티스에 종석적이지는 않고 docker 로 쉽게 설치 할 수 있지만, 여러 datasource와의 연동성이 뛰어나고 특히 prometheus와의 연동이 뛰어나 함께 발전

Grafana DashBoard 모범사례

google에서 제시한 전통 SW모니터링을 위한 4가지 황금 지표

  • Latency : 사용자가 요청 후 응답을 받기까지 걸리느느 시간
  • Traffic : 시스템이 처리해야 하는 총 부하
  • Errors : 사용자의 요청 중 실패한 비율
  • Saturation : 시스템의 포화 상태

 

반응형