From 89c6d9464f95885f14b6d0859b44224584e86ffc Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Sun, 3 Aug 2025 21:44:13 +0900 Subject: [PATCH 1/3] =?UTF-8?q?refactor(APM):=20=EC=9C=A0=EC=A0=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nowait-app-admin-api/build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nowait-app-admin-api/build.gradle b/nowait-app-admin-api/build.gradle index 9fba398d..b2b40a9c 100644 --- a/nowait-app-admin-api/build.gradle +++ b/nowait-app-admin-api/build.gradle @@ -70,6 +70,12 @@ dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' + // actuator + implementation 'org.springframework.boot:spring-boot-starter-actuator' + + // prometheus + implementation 'io.micrometer:micrometer-registry-prometheus' + testImplementation 'org.springframework.boot:spring-boot-starter-test' } From 0c9da0269796019bb1dd0890822a53e55194f3e3 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Sun, 3 Aug 2025 21:44:46 +0900 Subject: [PATCH 2/3] =?UTF-8?q?refactor(APM):=20prometheus,=20grafana=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-admin-docker.yml | 30 +++++++++++++++++++++-- .github/workflows/deploy-user-docker.yml | 13 +++------- docker-compose.admin-monitoring.yml | 27 ++++++++++++++++++++ docker-compose.user-monitoring.yml | 10 ++++---- scripts/deploy-admin-docker.sh | 12 +++++++-- scripts/deploy-user-docker.sh | 12 ++++----- 6 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 docker-compose.admin-monitoring.yml diff --git a/.github/workflows/deploy-admin-docker.yml b/.github/workflows/deploy-admin-docker.yml index 7eea527b..916204cd 100644 --- a/.github/workflows/deploy-admin-docker.yml +++ b/.github/workflows/deploy-admin-docker.yml @@ -48,7 +48,7 @@ jobs: run: ./gradlew clean :nowait-app-admin-api:bootJar -x test - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }} @@ -70,6 +70,12 @@ jobs: - name: Checkout uses: actions/checkout@v3 + - name: Set Prometheus YML + run: | + echo "${{ secrets.PROMETHEUS_DEV_ADMIN_YML }}" \ + | base64 --decode \ + > prometheus-admin.yml + - name: Copy docker-compose.admin.yml to EC2 uses: appleboy/scp-action@master with: @@ -80,6 +86,26 @@ jobs: source: "docker-compose.admin.yml" target: ${{ env.EC2_DEPLOY_PATH }} + - name: Copy docker-compose.admin-monitoring.yml to EC2 + uses: appleboy/scp-action@master + with: + host: ${{ secrets.EC2_HOST }} + username: ${{ secrets.EC2_USER }} + key: ${{ secrets.EC2_SSH_KEY }} + port: ${{ secrets.EC2_PORT }} + source: "docker-compose.admin-monitoring.yml" + target: ${{ env.EC2_DEPLOY_PATH }} + + - name: Copy prometheus-admin.yml to EC2 + uses: appleboy/scp-action@master + with: + host: ${{ secrets.EC2_HOST }} + username: ${{ secrets.EC2_USER }} + key: ${{ secrets.EC2_SSH_KEY }} + port: ${{ secrets.EC2_PORT }} + source: "prometheus-admin.yml" + target: ${{ env.EC2_DEPLOY_PATH }} + - name: Copy deploy-admin-docker.sh to EC2 uses: appleboy/scp-action@master with: @@ -91,7 +117,7 @@ jobs: target: "${{ env.EC2_DEPLOY_PATH }}" - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }} diff --git a/.github/workflows/deploy-user-docker.yml b/.github/workflows/deploy-user-docker.yml index 026d69f7..3d8e442e 100644 --- a/.github/workflows/deploy-user-docker.yml +++ b/.github/workflows/deploy-user-docker.yml @@ -69,16 +69,9 @@ jobs: - name: Set Prometheus YML run: | - echo "${{ secrets.PROMETHEUS_DEV_YML }}" \ + echo "${{ secrets.PROMETHEUS_DEV_USER_YML }}" \ | base64 --decode \ - > prometheus.yml - - - name: Debug workspace - run: | - echo "현재 작업 디렉터리: $(pwd)" - echo "파일 목록 전체:" - ls -l scripts - + > prometheus-user.yml - name: Copy docker-compose.user.yml to EC2 uses: appleboy/scp-action@master @@ -107,7 +100,7 @@ jobs: username: ${{ secrets.EC2_USER }} key: ${{ secrets.EC2_SSH_KEY }} port: ${{ secrets.EC2_PORT }} - source: "prometheus.yml" + source: "prometheus-user.yml" target: ${{ env.EC2_DEPLOY_PATH }} - name: Copy deploy-user-docker to EC2 diff --git a/docker-compose.admin-monitoring.yml b/docker-compose.admin-monitoring.yml new file mode 100644 index 00000000..3603e161 --- /dev/null +++ b/docker-compose.admin-monitoring.yml @@ -0,0 +1,27 @@ +services: + prometheus: + image: prom/prometheus:latest + container_name: prometheus-admin + ports: + - "9091:9090" + volumes: + - ./prometheus-admin.yml:/etc/prometheus/prometheus.yml:ro + command: + - '--config.file=/etc/prometheus/prometheus.yml' + depends_on: + - nowait-app-admin-api + restart: always + + grafana: + image: grafana/grafana:latest + container_name: grafana-admin + ports: + - "3004:3000" + volumes: + - grafana-admin-data:/var/lib/grafana + depends_on: + - prometheus-admin + restart: always + +volumes: + grafana_data: diff --git a/docker-compose.user-monitoring.yml b/docker-compose.user-monitoring.yml index 282170f9..a3733f69 100644 --- a/docker-compose.user-monitoring.yml +++ b/docker-compose.user-monitoring.yml @@ -1,11 +1,11 @@ services: prometheus: image: prom/prometheus - container_name: prometheus + container_name: prometheus-user ports: - "9090:9090" volumes: - - ./prometheus.yml:/etc/prometheus/prometheus.yml + - ./prometheus-user.yml:/etc/prometheus/prometheus.yml:ro command: - '--config.file=/etc/prometheus/prometheus.yml' depends_on: @@ -14,13 +14,13 @@ services: grafana: image: grafana/grafana - container_name: grafana + container_name: grafana-user ports: - "3003:3000" volumes: - - grafana_data:/var/lib/grafana + - grafana-user-data:/var/lib/grafana depends_on: - - prometheus + - prometheus-user restart: always volumes: diff --git a/scripts/deploy-admin-docker.sh b/scripts/deploy-admin-docker.sh index bbb99588..b93b10f7 100644 --- a/scripts/deploy-admin-docker.sh +++ b/scripts/deploy-admin-docker.sh @@ -7,18 +7,26 @@ START_LOG="$REPOSITORY/start.log" echo "1. find container id" CONTAINER_ID=$(docker ps -q --filter "name=nowait-app-admin-api") +CONTAINER_PROMETHEUS_ID=$(docker ps -q --filter "name=prometheus-admin") +CONTAINER_GRAFANA_ID=$(docker ps -q --filter "name=grafana-admin") echo "2. stop container" if [ -n "$CONTAINER_ID" ]; then echo "Stopping container $CONTAINER_ID" docker rm -f "$CONTAINER_ID" + + echo "Stopping container $CONTAINER_PROMETHEUS_ID" + docker rm -f "$CONTAINER_PROMETHEUS_ID" + + echo "Stopping container $CONTAINER_GRAFANA_ID" + docker rm -f "$CONTAINER_GRAFANA_ID" else echo "No admin container found." fi echo "3. start container" -sudo docker-compose -f docker-compose.admin.yml -p nowait_dev pull nowait-app-admin-api -sudo docker-compose -f docker-compose.admin.yml -p nowait_dev up -d nowait-app-admin-api +sudo docker-compose -f docker-compose.admin.yml -f docker-compose.admin-monitoring.yml -p nowait_dev pull nowait-app-admin-api prometheus-admin grafana-admin +sudo docker-compose -f docker-compose.admin.yml -f docker-compose.admin-monitoring.yml -p nowait_dev up -d nowait-app-admin-api prometheus-admin grafana-admin echo "4. check container status" NEW_CONTAINER_ID=$(docker ps -q --filter "name=nowait-app-admin-api") diff --git a/scripts/deploy-user-docker.sh b/scripts/deploy-user-docker.sh index 0df38526..9f53cb29 100644 --- a/scripts/deploy-user-docker.sh +++ b/scripts/deploy-user-docker.sh @@ -7,8 +7,8 @@ START_LOG="$REPOSITORY/start.log" echo "1. find container id" CONTAINER_ID=$(docker ps -q --filter "name=nowait-app-user-api") -CONTAINER_PROMETHEUS_ID=$(docker ps -q --filter "name=prometheus") -CONTAINER_GRAFANA_ID=$(docker ps -q --filter "name=grafana") +CONTAINER_PROMETHEUS_ID=$(docker ps -q --filter "name=prometheus-user") +CONTAINER_GRAFANA_ID=$(docker ps -q --filter "name=grafana-user") echo "2. stop container" if [ -n "$CONTAINER_ID" ]; then @@ -18,15 +18,15 @@ if [ -n "$CONTAINER_ID" ]; then echo "Stopping container $CONTAINER_PROMETHEUS_ID" docker rm -f "$CONTAINER_PROMETHEUS_ID" - echo "Stopping container $CONTAINER_GRAFANA_ID" - docker rm -f "$CONTAINER_GRAFANA_ID" + echo "Stopping container $CONTAINER_GRAFANA_ID" + docker rm -f "$CONTAINER_GRAFANA_ID" else echo "No user container found." fi echo "3. start container" -sudo docker-compose -f docker-compose.user.yml -f docker-compose.user-monitoring.yml -p nowait_dev pull nowait-app-user-api prometheus grafana -sudo docker-compose -f docker-compose.user.yml -f docker-compose.user-monitoring.yml -p nowait_dev up -d nowait-app-user-api prometheus grafana +sudo docker-compose -f docker-compose.user.yml -f docker-compose.user-monitoring.yml -p nowait_dev pull nowait-app-user-api prometheus-user grafana-user +sudo docker-compose -f docker-compose.user.yml -f docker-compose.user-monitoring.yml -p nowait_dev up -d nowait-app-user-api prometheus-user grafana-user echo "4. check container status" NEW_CONTAINER_ID=$(docker ps -q --filter "name=nowait-app-user-api") From 5ed7cfbbd75e3f631a4b6f9f6554897eea5d05e9 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Sun, 3 Aug 2025 22:00:43 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor(APM):=20prometheus,=20grafana=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.admin-monitoring.yml | 4 ++-- docker-compose.user-monitoring.yml | 4 ++-- scripts/deploy-admin-docker.sh | 4 ++-- scripts/deploy-user-docker.sh | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docker-compose.admin-monitoring.yml b/docker-compose.admin-monitoring.yml index 3603e161..414f1404 100644 --- a/docker-compose.admin-monitoring.yml +++ b/docker-compose.admin-monitoring.yml @@ -20,8 +20,8 @@ services: volumes: - grafana-admin-data:/var/lib/grafana depends_on: - - prometheus-admin + - prometheus restart: always volumes: - grafana_data: + grafana-admin-data: diff --git a/docker-compose.user-monitoring.yml b/docker-compose.user-monitoring.yml index a3733f69..c92dc1e5 100644 --- a/docker-compose.user-monitoring.yml +++ b/docker-compose.user-monitoring.yml @@ -20,8 +20,8 @@ services: volumes: - grafana-user-data:/var/lib/grafana depends_on: - - prometheus-user + - prometheus restart: always volumes: - grafana_data: + grafana-user-data: diff --git a/scripts/deploy-admin-docker.sh b/scripts/deploy-admin-docker.sh index b93b10f7..6decd539 100644 --- a/scripts/deploy-admin-docker.sh +++ b/scripts/deploy-admin-docker.sh @@ -7,8 +7,8 @@ START_LOG="$REPOSITORY/start.log" echo "1. find container id" CONTAINER_ID=$(docker ps -q --filter "name=nowait-app-admin-api") -CONTAINER_PROMETHEUS_ID=$(docker ps -q --filter "name=prometheus-admin") -CONTAINER_GRAFANA_ID=$(docker ps -q --filter "name=grafana-admin") +CONTAINER_PROMETHEUS_ID=$(docker ps -aq --filter "name=prometheus-admin") +CONTAINER_GRAFANA_ID=$(docker ps -aq --filter "name=grafana-admin") echo "2. stop container" if [ -n "$CONTAINER_ID" ]; then diff --git a/scripts/deploy-user-docker.sh b/scripts/deploy-user-docker.sh index 9f53cb29..b4ff5f96 100644 --- a/scripts/deploy-user-docker.sh +++ b/scripts/deploy-user-docker.sh @@ -7,8 +7,8 @@ START_LOG="$REPOSITORY/start.log" echo "1. find container id" CONTAINER_ID=$(docker ps -q --filter "name=nowait-app-user-api") -CONTAINER_PROMETHEUS_ID=$(docker ps -q --filter "name=prometheus-user") -CONTAINER_GRAFANA_ID=$(docker ps -q --filter "name=grafana-user") +CONTAINER_PROMETHEUS_ID=$(docker ps -aq --filter "name=prometheus-user") +CONTAINER_GRAFANA_ID=$(docker ps -aq --filter "name=grafana-user") echo "2. stop container" if [ -n "$CONTAINER_ID" ]; then