본문 바로가기
Engineering

EKS Prometheus CPU & Memory DashBoard 구성

by weq155 2024. 4. 3.
반응형

EKS에서 Prometheus Metric 테스트를 진행하기 위한 대시보드 구성
사용량을 체크하기위해 노드 총 Capacity와 request 그리고 현재 사용량을 구성

노드 스펙 계산

# CPU Capacity 계산
sum(kube_node_status_capacity{resource="cpu"})
# Memory Capacity 계산
sum(kube_node_status_capacity{resource="memory"})

Capacity는 총 메모리라서 노드 수나 스펙에 변경이 없으면 변화가 없음

가독성을 위해 Unit을 bytes로 변경

현재 사용량을 확인하기위해 Bar gauge로 변경

Query Options

  • Legend -> Memory Capacity
  • Type -> Instant (현재 시간 기준)Bar gauge
  • Orientation -> Horizontal
  • Value display -> value color
  • Show unfilled area -> offStandard options
  • Unit -> bytes(IEC)
  • Min -> 0Text size
  • title -> 20

Override

  • Fields with name으로 선택한 후 변화가 없는 수치이기 때문에 Thresholds X

변경 사항 적용 후

 

현재 Memory Request 확인

sum(kube_pod_container_resource_requests{resource="memory"})

 

현재 실제 사용 Resource
단순히 container_memory_working_set_bytes의 총 합을 하면 각각의 컨테이너 + 노드가 합쳐져서 값이 2배로 출력됨
그래서 필터링을 고민하다 EKS Node는 id값이 "/"인걸 확인한 뒤 노드만 필터링(구성 환경에 따라 상이)

sum(container_memory_working_set_bytes{id="/"})

앞과 유사하게 구성하고 추가적으로 %로 볼 수 있게 Expression 추가

Math
D = $B/$A (Request/Capacity)
E = $C/A (Usage/Capacity)

Memory Dashboard 구성

CPU 대시보드

완성된 Panel을 Duplicate하여 CPU 대시보드 작성
Unit -> Core
Name이 Memory -> CPU로 변경 Override 재설정

C 쿼리만 변경이 필요
아래의 쿼리로 구성하게되면 현재 사용중인 CPU 현황을 파악 할 수 있음

sum(rate(container_cpu_usage_seconds_total{id="/"}[$__rate_interval]))


작성하고나니 폰트가 너무 작아서
text와 barsize auto로 변경

추가적으로 sum 하지않은 노드별 CPU, Memory Usage 시계열 그래프로 구성

 

최종 결과

반응형