mingming

grafana를 이용한 prometheus 메트릭 값 시각화 및 모니터링 본문

kubernetes

grafana를 이용한 prometheus 메트릭 값 시각화 및 모니터링

mingming_96 2023. 9. 24. 00:35

Grafana Dashboard 시각화 종류 

그래프 ( Graph ) 

  점의 경로 , 선 또는 막대로 데이터 시각화 

게이지 ( Guage )

  차량의 계기판과 같이 값의 범위가 있는 데이터를 표현할 때 사용   

상태 값 ( Status )

  특정 값과 함께 추이를 꺾은선 그래프로 나타내는 도구, 텍스트 모드를 적용해 그래프 없이 값만 표현

바 게이지 ( Bar Gauge )

  게이지처럼 값의 범위가 있는 데이터를 표현할 때 유용, 게이지와 다르게 모양이 원형이 아닌 막대형

테이블 ( Table )

  수집한 메트릭 데이터를 그대로 표현할 수 있어 실제 값을 대시보드에서 확인하는 목적

텍스트 ( Text ) 

  제작사가 알리고 싶은 정보를 대시보드에 표현할 때 사용, 주로 대시보드의 목적과 사용법 등의 정보를 전달

히트맵 ( Hitmap ) 

  패널을 다수 구역으로 나누어 해당 구역에 속하는 값이 많을수록 구역 색상을 점점 연하게 표현해 한눈에값의 분포를 알아 볼 수 있도록 함 , 주로 히스토그램과 함께 빈도를 나타내는 용도로 사용  

경보 목록 ( Alert list )

  수집 대상의 문제를 빠르게 확인하기 위한 정보를 표시

대시보드 목록 ( Dashboard list )

  최근에 확인한 대시보드와 사용자가 즐겨찾기한 대시보드 등을 만드는데 사용

뉴스 ( News ) 

  RSS 피드와 같은 정보를 표시, 그라파나 공식 블로그의 게시글 정보를 표현  

로그 ( Logs )

  외부 로그 데이터를 표현 주로 엘라스틱서치( Elastic Search ), 로키 ( Loki ), 인플럭스 DB( Influx DB ) 같은 데이터 소스에서 받아온 로그 데이터를 시각화하는 데 사용

플러그인 목록 ( Plugin list ) 

  현재 설치된 플러그인 확인, 그라파나에서 기본으로 제공하는 패널만으로는 부족한 기능을 외부에서 제공하는 플러그인 방식의 패널로 추가하는데, 이렇게 추가된 패널들을 대시보드에서 확인할 수 있도록 함 

 

노드 메트릭 시각화

Data Source 추가 

prometheus URL

내부 연결 경로는  CoreDNS로 제공되기 때문에 다음과 같이 적어주면 됩니다.

http://prometheus-server.monitoring.svc.cluster.local

Dashboard 생성 및 add visualization

cpu 사용률 

1-avg(rate(node_cpu_seconds_total{mode="idle"}[5m]))by(node)

memory 사용률 

node_memory_Active_bytes

node network 평균 송/수신 트래픽

avg(rate(node_network_transmit_bytes_total[5m]))by(node)
avg(rate(node_network_receive_bytes_total[5m]))by(node)*-1

node status

up{job="kubernetes-nodes"}

파드 메트릭 시각화

Namespace 변수 설정

label_values(kube_pod_info,namespace)

 

Pod 변수 설정

label_values(kube_pod_info(namespace=~"$Namespace"),pod)

Pod 와 Namepace 변수를 생성해 동적으로 해당하는 Pod 와 Namespace의 메트릭 값을 시각화 할 수 있도록 했습니다.

 

API Server 응답 시간 

histogram_quantile(0.99, sum(rate(apiserver_request_duration_seconds_bucket[5m]))by(le))

Pod CPU 사용률

sum(rate(container_cpu_usage_seconds_total{namespace=~"$Namespace",pod=~"$Pod",container!=""}[5m]))by(pod)

Pod 메모리 사용량 

sum(container_memory_usage_bytes{namespace=~"$Namespace",pod=~"$Pod",container!=""})by(pod)

 Pod 상태

sum(kube_pod_status_phase{pod=~"$Pod",namespace=~"$Namespace"})by(phase)

 

쿠버네티스 클러스터 모니터링 대시보드

 

'kubernetes' 카테고리의 다른 글

kubernetes node NotReady  (1) 2023.09.25
alertmanager & slack 연동 및 경보  (0) 2023.09.25
ephemeral-storage  (0) 2023.09.21
grafana on kubernetes  (1) 2023.09.20
promehteus 메트릭 수집  (0) 2023.09.18