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 으로 설정해야 값이 잘뜸

  • 결과