프로메테우스 그라파나 도커로 열기

greenTea·2023년 5월 22일
0

도커로 프로메테우스와 그라파나 그리고 스프링 부트를 연결하는 방법은 아래와 같습니다.

1. 프로메테우스 yml 파일 작성하기

global:
  scrape_interval: 30s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090'] #프로메테우스 자기 자신 호출


  - job_name: 'grafana'
    scrape_interval: 5s
    static_configs:
      - targets: ['grafana:3000'] #그라파나 호출


  - job_name: 'my-spring'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['my-spring:8080'] #실제 서비스 호출

도커 환경에서는 같은 네트워크안에서는 dns처럼 호출 할 수 있기에 위와 같이 설정하였습니다.

2. docker-compose 작성

version: "3.7"

services:
  my-spring:
    image: my-spring
    ports:
      - "8080:8080"
    restart: on-failure

    depends_on:
      - mariadb
      
    networks:
      - net

  mariadb:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: 1111
      MYSQL_DATABASE: test
      MYSQL_USER: user
      MYSQL_PASSWORD: 1111
    ports:
      - "3306:3306"
    networks:
      - net

  grafana:
    image: grafana/grafana
    restart: on-failure
    ports:
      - "3000:3000"

    depends_on:
      - prometheus
    networks:
      - net
  prometheus:
    image: prom/prometheus
    restart: on-failure
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'

    depends_on:
      - my-spring
    networks:
      - net

networks:
  net:

위 파일을 설명하자면 mariadb를 생성하여 기존 프로젝트의 db로 연결하여 사용하였으며 프로메테우스와 그라파나를 같이 띄우게 하였습니다. depends-on을 통해 의존관계를 설정해 만약 mysql이나 스프링에 문제가 생겨서 실행이 안된다면 다른 프로그램도 실행이 되지 않게 하였습니다.

해당 작업들은 chagGpt를 통해서 기초를 작성하고 이후 나머지를 작성하였습니다.

profile
greenTea입니다.

0개의 댓글