prometheus adapter Rule 이해 - Deep Dive

prometheus adapter의 rule 수정을 통해 다양한 사례를 예제로 살펴보고 깊이 이해하는 섹션을 갖는다.

prometheus-adapter Rule의 Resouce 추가를 통한 API 리소스 분리 예제

traefik_service_requests_total 메트릭은 아래와 같이 code, container, ... , namespace, pod, service, ingress와 같은 라벨이 붙어 있다.

Prometheus에 수집된 메트릭 정보

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