728x90
반응형
프로메테우스를 통해 메트릭을 수집하고, 그라파나를 사용해 시각화, 대시보드를 설정한다.
build.gradle.kts 의존성 추가
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("io.micrometer:micrometer-registry-prometheus")
yml 파일 설정
core.yml
---
spring:
config:
activate:
on-profile: prod
datasource:
hikari:
jdbc-url: jdbc:mysql://PROD_URL:3306/coupon
driver-class-name: com.mysql.cj.jdbc.Driver
maximum-pool-size: 10
max-lifetime: 30000
connection-timeout: 3000
username: PROD_USER_NAME
password: PROD_PASSWORD
jpa:
hibernate:
ddl-auto: none
data:
redis:
host: PROD_URL
port: 6379
consumer.yml
management:
metrics:
tags:
application:
${spring.application.name}
endpoints:
web:
exposure:
include: prometheus
api.yml
server:
port: 8080
tomcat:
mbeanregistry:
enabled: true
management:
metrics:
tags:
application:
${spring.application.name}
endpoints:
web:
exposure:
include: prometheus
루트 모듈(coupon) 에 monitoring 패키지를 추가한다.
prometheus.yml 을 추가한다.
global:
scrape_interval: 5s // http://localhost:8080/actuator/prometheus 매트릭 수집 주기 5s
scrape_configs:
- job_name: "coupon-api"
metrics_path: '/actuator/prometheus'
static_configs:
- targets: [ 'host.docker.internal:8080' ]
- job_name: "coupon-consumer"
metrics_path: '/actuator/prometheus'
static_configs:
- targets: [ 'host.docker.internal:8081' ]
docker-compose.yml
version: '3.7'
services:
prometheus: //프로메테우스를 사용해 메트릭 수집
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus/config:/etc/prometheus
- ./prometheus/volume:/prometheus
ports:
- 9090:9090
command:
- '--config.file=/etc/prometheus/prometheus.yml'
restart: always
networks:
- promnet
grafana: // 그라파나를 통해 시각화. 대시보드를 만든다.
image: grafana/grafana
container_name: grafana
ports:
- 3000:3000
volumes:
- ./grafana/volume:/var/lib/grafana
restart: always
networks:
- promnet
networks:
promnet:
driver: bridge
접근하기
cd monitoring 로 모니터링 패키지로 접근해 docker-conpose up -d 을 사용해 container 를 띄워준다.
프로메테우스:
9090포트로 들어가 status 를 확인해준다.
couponApiApplication. couponCousumerApplication 을 실행해주면 초록불이 들어온다.
Query - system_cpu_usage - excute 를 확인해보면
cpu 사용량을 볼 수 있다.
그라파나 port에 접속하면 로그인 창이 나온다.
name, password: admin 로 로그인 한다.
Home - connections - Data Source 에서 프로메테우스를 설정해준다.
모니터링을 할 수 있다.
성능 테스트:
RPS 가 4652 로 상승한 것을 볼 수 있다.
RPS:
mySql 3669 - redis 분산락 319 - redis script 4652
728x90
'JAVA > 프로젝트' 카테고리의 다른 글
쿠폰 선착순 발급 이벤트 - redis 분산락 쿠폰 발급 문제점. (0) | 2024.12.05 |
---|---|
쿠폰 선착순 발급 이벤트 - 쿠폰 발급 서버 구조 학습, 적절한 redis 데이터 구조 결정. (3) | 2024.12.02 |
쿠폰 선착순 발급 이벤트 - 동시성 이슈 해결. MySql lock (0) | 2024.11.30 |
쿠폰 선착순 발급 이벤트 - 동시성 이슈 해결 synchronized (1) | 2024.11.30 |
쿠폰 선착순 발급 이벤트 - locust 설정, docker-compose.yml 작성 (0) | 2024.11.28 |