Java/Spring-msa
[스프링-msa] 프로메테우스 , 그라파나 docker 연동
Mini_96
2025. 2. 23. 22:52
- 먼저 docker-compose.yml 작성
- 로컬의 prometheus.yml을 볼륨마운트를 통해 도커에 넣어줘야 한다.
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- D:\JavaProject\monitor:/etc/prometheus
ports:
- 9090:9090
restart: always
networks:
my-network:
ipv4_address: 172.18.0.106
grafana:
image: grafana/grafana
container_name: grafana
ports:
- 3000:3000
restart: always
depends_on:
- prometheus
networks:
my-network:
ipv4_address: 172.18.0.107
- prometheus.yml 작성
- 도커에서 프로메테우스를 띄운경우, localhost를 쓰면 에러발생.
- 해결 : host.docker.interval : port 를 써주면된다.
global:
scrape_interval: 15s
scrape_timeout: 15s
evaluation_interval: 2m
external_labels:
monitor: "codelab-monitor"
query_log_file: query_log_file.log
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["host.docker.internal:9090"]
- job_name: "user-service"
scrape_interval: 15s
metrics_path: "/user-service/actuator/prometheus"
static_configs:
- targets: ["host.docker.internal:8000"]
# - targets: ["user-service:8000"] # service도 docker로 실행시 서비스명 명시
- job_name: "order-service"
scrape_interval: 15s
metrics_path: "/order-service/actuator/prometheus"
static_configs:
- targets: ["host.docker.internal:8000"]
- job_name: "apigateway-service"
scrape_interval: 15s
metrics_path: "/actuator/prometheus"
static_configs:
- targets: ["host.docker.internal:8000"]
- 그라파나의 주소도 host.docker.internal 사용
- metric 정보 수정, 서비스이름 수정(yml에 넣은 그이름으로)
- legend를 label name 으로 설정해야 값이 잘뜸
- 결과