kubernetes의 prometheus에서 수집된 메트릭 데이터를 prometheus-adapter를 통해서 custom metric api 구성

HorizontalPodAutoscaler에서 사용할 수 있는 메트릭에는 custom metric이 존재한다.
prometheus에서 수집된 메트릭 데이터로 custom metric을 구성하는 방법을 정리한다.

/apis/custom.metrics.k8s.io/v1beta1/

https://github.com/kubernetes-sigs/prometheus-adapter/blob/master/docs/config.md (레퍼런스)

kubernetes prometheus-operator(kube-prometheus-stack) - additionalPodMonitors 설정으로 POD 모니터링 (podmonitors.monitoring.coreos.com)

Kubernetes에 설치된 Prometheus는  additionalScrapeConfigs 기능 이외에 additionalPodMonitors 설정을 기반으로 POD를 모니터링 가능하다.

 

helm template 구성을 위한 additionalPodMonitors value 설정

kubernetes에 traefik로 Ingress를 구성하고 서비스 구성하기

위 traefik 설치를 진행했다면 아래 labelsports 기준으로 pod monitoring을 설정할 수 있다.

kubernetes prometheus-operator(kube-prometheus-stack) - Annotations된 POD 모니터링 (additionalScrapeConfigs)

kubernetes prometheus-operator(kube-prometheus-stack) 초기 모니터링 Target 현황

 

우리는 보통 POD에 아래와 같이 prometheus.io/scrapeprometheus.io/port annotations이 있다면 자동으로 Prometheus가 메트릭을 수집해줄 것이라고 믿고 있다.

prometheus.io/port: 10254
prometheus.io/scrape: true

 

kubernetes에 prometheus-operator(kube-prometheus-stack) 구성하고 모니터링하기

helm으로 template kube-prometheus-stack(구 명칭 prometheus-operator)를 구축하고 kubernetes를 모니터링하는 시스템을 구축한다.

 

kube-prometheus-stack template 생성

https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack

kube-prometheus-stack template 생성