본문 바로가기

Java/Spring Boot31

비즈니스 메트릭(모니터링) 주문수, 취소수 등 비즈니스에 특화된 부분을 모니터링 할 수 있도록 비즈니스 메트릭을 이용해보자. 마이크로미터를 사용해서 메트릭을 직접 등록할 수 있다. * 마이크로미터 핵심기능 : Counter, Gauge, Timer, Tag 참고: Tag를 사용하면 데이터를 나누어서 확인할 수 있다.(ex. 성별, 주문상태 등등...) @Counted 어노테이션을 이용해서 쉽게 등록할 수 있다.(이미 마이크로미터에서 구성요소를 등록해두었음) @Counted("my.order") @Override public void cancel() { log.info("취소"); stock.incrementAndGet(); } @Counted("메트릭이름") tag 에 method 를 기준으로 분류해서 적용한다 이때, config.. 2023. 9. 27.
프로메테우스, 그라파나 : 모니터링 도구 메트릭은 실시간 서버의 대략적인 값과 추세를 확인할 때 사용한다. 문제파악! 프로메테우스 : 메트릭을 수집하고 보관하는 DB역할 그라파나 : 메트릭을 보기 편하게 만들어주는 대시보드 프로테메우스 실행파일 실행 후 http://localhost:9090/ 접속 레이블 일치 연산자 = 제공된 문자열과 정확히 동일한 레이블 선택 != 제공된 문자열과 같지 않은 레이블 선택 =~ 제공된 문자열과 정규식 일치하는 레이블 선택 !~ 제공된 문자열과 정규식 일치하지 않는 레이블 선택 프로메테우스 범위벡터 활용 프로메테우스의 메트릭은 게이지/카운터로 나뉜다. increase() 를 사용하면 카운터 메트릭을 게이지처럼 그래프를 확인할 수 있다.지정한 시간 단위별로 증가를 확인할 수 있다. 마지막에 [시간] 을 사용해서 .. 2023. 9. 24.
프로덕션 준비 기능 - Actuator Spring Boot Actuator 라이브러리 활용 엔드포인트 활성화 + 노출 필 2023. 9. 23.
@Profile(각 환경별로 등록할 스프링 빈 분리) @Profile 을 사용하면 각 환경 별로 외부 설정 값을 분리하는 것을 넘어서, 등록되는 스프링 빈도 분리할 수 있다 만약에 프로필에 따라 빈 등록이 변경되어야 한다면? 예를 들어서 기능을 붙여야 하는데, 로컬 개발 환경에서는 실제 결제가 발생하면 문제가 되니 가짜 결제 기능이 있는 스프링 빈을 등록하고, 운영 환경에서는 실제 결제 기능을 제공하는 스프링 빈을 등록한다고 가정해보자 config 파일에서 @Profile 사용 @Slf4j @Configuration public class PayConfig { @Bean @Profile("default") public LocalPayClient localPayClient(){ log.info("LocalPayClient 빈 등록"); return new L.. 2023. 9. 23.
YAML 스프링은 설정 데이터를 사용할 때 application.properties 뿐만 아니라 application.yml 이라는 형식도 지원한다. 실무에서는 YAML을 주로 사용함. *주의 : application.properties가 우선권을 가지므로 yml 사용 시 제거 필수 yml 문서 프로필 구분자 = --- my: datasource: url: local.db.com user: local_user password: local_pw etc: max-connection: 1 timeout: 60s options: LOCAL, CACHE --- spring: config: activate: on-profile: dev my: datasource: url: dev.db.com user: dev_user pa.. 2023. 9. 23.
내부설정파일 통합 application.properties spring.config.activate.on-profile=dev url=dev.dv.com username=dev_user password=dev_pw #--- spring.config.activate.on-profile=prod url=prod.dv.com username=prod_user password=prod_pw #--- 로 영역을 구분한다. (구분자 주위 위아래 주석 적으면 안됨) spring.config.activate.on-profile=프로필이름 ex) 개발 서버에서는 dev프로필 사용 / 운영 서버에서는 prod 사용 커맨드 라인 옵션 인수 실행 --spring.profiles.active=dev 자바 시스템 속성 실행 -Dspring.pro.. 2023. 9. 22.