์ฃผ๊ธฐ์ ์ผ๋ก ์์ด๋ metric data๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์๊ฐํ๋ค.
ํ ์์ ์์ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ๋ค.
Spring-boot
Prometheus
Grafana
Spring-boot์์ metric data๋ฅผ ์ ๊ณตํ๋ค๊ณ ๊ฐ์ ํ๋ค.
(์ด ๋ถ๋ถ์ด ๊ถ๊ธํ๋ค๋ฉด ๊ฒ์ํด๋ณด์. ์ด๋ ต์ง ์๋ค ๐
)
Prometheus์ Grafana docker image๋ฅผ ์ค๋นํ๋ค.
docker pull prom/prometheus
docker pull grafana/grafana
mkdir prometheus-data grafana-data
Prometheus์์ ์ ๋ฌ๋ฐ์ spring-boot ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ค.
# prometheus.yaml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'Controller'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['$SPRINGBOOT_IP:PORT']
๊ทธ๋ผํ๋์์ ์ฌ์ฉํ defaults.ini
๋ฅผ ์์ฑํ๋ค.
# defaults.ini
allow_embedding = true
Prometheus์ Grafana๋ฅผ ์คํํ docker-compose.yaml
์ ์์ฑํ๋ค.
# docker-compose.yaml
version: '3'
services:
prometheus:
container_name: prometheus
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus_data:/prometheus
ports:
- 9090:9090
grafana:
container_name: grafana
image: grafana/grafana
depends_on:
- prometheus
ports:
- 9091:3000
volumes:
- ./defaults.ini:/usr/share/grafana/conf/defaults.ini
- ./grafana_data:/var/lib/grafana
restart: always
docker-compose up -d
Grafana์์ Prometheus์ data๋ค์ ๊ฐ์ ธ์ค๊ณ , template๋ฅผ ํ์ฉํ๊ณ ์ ํ๋ค.