<aside> 💡
사용 도구
메트릭 수집: 프로메테우스
시각화: 그라파나
</aside>

/metrics 엔드포인트로 노출한다.kubernetes_sd_configs 나 static_configs 로 cAdvisor의 /metrics(보통 8080 포트) 엔드포인트를 주기적으로 스크랩한다./metrics (보통 9100 포트)를 스크랩한다.remote_write**기능을 이용해 S3에 실시간으로 메트릭을 저장한다.metrics-server.yaml 작성
---
defaultArgs:
- --cert-dir=/tmp
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --secure-port=10250
테라폼 설정
resource "helm_release" "metrics_server" {
name = "metrics-server"
repository = "<https://kubernetes-sigs.github.io/metrics-server/>"
chart = "metrics-server"
namespace = "kube-system"
version = "3.12.1"
**values = [file("${path.module}/values/metrics-server.yaml")]**
depends_on = [aws_eks_node_group.sp-general, aws_eks_node_group.sp-spot, aws_eks_node_group.sp-monitoring]
}
Fast API 엔드포인트(/metrics) 노출
prometheus-fastapi-instrumentator 라이브러리를 추가
pip install prometheus_fastapi_instrumentator
main.py 파일 내부에 코드 삽입
Instrumentator().instrument(app).expose(app)
서버 실행 후 작동 확인
브라우저에서 IP:PORT/merics 에 접속하여 수집이 잘 되는지 확인(아래와 같은 형식)

프로메테우스 ↔ 그라파나 연동
Grafana > Connections > Data sources > Prometheus에 접속하여 프로메테우스 정보를 입력한 후 Save&Test
그라파나 대시보드 생성(https://grafana.com/grafana/dashboards/)
그라파나에서 제공하는 대시보드 템플릿 중 마음에 드는 템플릿(json)을 다운로드 한 후
Home > Dashboards > New > Import 를 통해 템플릿 파일과 이전에 등록한 프로메테우스 데이터 소스를 선택하여 대시보드를 생성한다.
아래와 같이 생성된 대시보드를 확인할 수 있다.
