-
Notifications
You must be signed in to change notification settings - Fork 8
스프링 메트릭 모니터링 구성도
Moly edited this page Aug 8, 2024
·
2 revisions
- ec2 인스턴스에 접속하지 않고도 애플리케이션과 인프라의 현재 상태를 실시간으로 확인 가능
- 서버의 각종 수치들을 시각화하여 본다면 상태 파악하기 쉽다.
- 성능 저하나 이상 징후를 조기에 발견하여 알람을 받아 문제를 예방 가능
- 메트릭 생성 (Spring 애플리케이션 - Actuator, Micrometer)
- 메트릭 수집 (Prometheus)
- 저장 및 쿼리 (Prometheus)
- 시각화 및 알림 (Grafana)

- 애플리케이션 상태, 성능 지표 등의 운영 정보를 제공
- /actuator 엔드포인트를 통해 다양한 정보에 접근 가능
- 애플리케이션 메트릭을 생성하고 수집하는 파사드 라이브러리
- Prometheus 등 다양한 모니터링 시스템과 호환
- 우리는 Prometheus을 사용할 것이기 때문에 Prometheus Micrometer를 사용
- Prometheus Micrometer가 Prometheus가 필요한 형식에 맞춰 액추에이터의 매트릭을 변환해줌
Prometheus는 Code-zap-monitoring EC2 Instance에서 실행
- 설정된 간격으로 타겟 시스템(이 경우 Spring 애플리케이션)의 메트릭을 수집(스크래핑)
설정 예시 (prometheus.yml):
yamlCopyscrape_configs: # 수집 설정 정의
- job_name: 'spring-actuator'
metrics_path: '/actuator/prometheus' # 메트릭을 가져올 엔드포인트(Spring Boot Actuator의 Prometheus 엔드포인트)
static_configs:
- targets: ['code-zap-ec2-ip:8080'] # 실제 메트릭을 수집할 대상의 주소와 포트(실제 EC2 인스턴스의 IP 주소와 Spring Boot 애플리케이션이 실행되는 포트)
- Prometheus는 수집한 메트릭을 내장 시계열 데이터베이스에 저장
- PromQL(Prometheus Query Language)을 사용하여 저장된 데이터를 쿼리 가능
Grafana도 Code-zap-monitoring EC2 Instance에서 실행
- Prometheus를 데이터 소스로 설정하여 수집된 메트릭에 접근
- 다양한 차트와 그래프를 통해 메트릭을 시각화
- 대시보드를 구성하여 핵심 지표를 한눈에 볼 수 있음
- 임계값 기반의 알림을 설정하여 문제 상황을 즉시 감지 가능
- 백엔드 코드 컨벤션
- 백엔드 기술 스택 및 선정 이유
- 각종 인스턴스 설정 파일 및 구성 위치 가이드
- ERD
- 백엔드 CI CD 동작 프로세스
- 로컬 DB 환경 설정
- 백엔드 로깅 전략
- 백엔드 로그 모니터링 구성도
- 스프링 메트릭 모니터링 구성도
- Flyway 로 스키마 관리
- 코드잽 서버 구성도
- Git Submodule 사용 메뉴얼
- 프론트엔드 코드 컨벤션
- 프론트엔드 기술 스택 및 선정 이유
- 프론트엔드 서비스 타겟 환경 및 브라우저 지원 범위 선정
- 프론트엔드 모니터링 및 디버깅 환경 구축
- 프론트엔드 테스트 목록
- 프론트엔드 라이브러리 기술 검토
- 프론트엔드 개발서버, 운영서버 빌드 및 배포 환경 구분
- 목표했던 타겟 환경과 디바이스에서 서비스 핵심 기능 동작 확인
- 프론트엔드 접근성 개선 보고서
- EC2 로그 확인 방법
- VSCode를 통한 EC2 인스턴스 SSH 연결 방법
- 터미널을 통한 EC2 인스턴스 SSH 연결 방법
- NGINX 설정 파일 접근 및 적용 방법
- DB 접속 및 백업 방법
- [QA] 배포 전 체크리스트
- CI 파이프라인 구축
- CD 파이프라인 구축
- 백엔드 CI CD 트러블슈팅
- Lombok Annotation Processor 의존성을 추가한 이유
- 2차 스프린트 기준 ERD
- DTO 검증하기
- ProblemDetail
- Fork된 레포지토리 PR에서 CI Secrets 접근 문제 해결
- AWS CloudWatch 모니터링
- 스프링 메트릭 모니터링 구축 방법
- 로깅과 Logback에 대해 알아보아요.
- Logback MDC로 쉽게 요청 추적하기 (+ Grafana로 추적 더더 쉽게!)
- 백엔드 CD 파이프라인 Ver.2
- 요청, 응답 로그에 correlationId 를 추가하자!
- 3차 스프린트 기준 ERD
- 더미데이터 생성하고 실행하기
- 쿼리 성능 개선 결과
- 테이블별 인덱스 설정 목록
- 사용자 증가 시 발생할 수 있는 문제 상황과 개선 방안
- k6를 사용한 서버 부하 테스트
- 6차 스프린트 기준 ERD
- TestExecutionListenr 간의 충돌 문제에 대해 알아보아요
- Query Performance Improvement Results
- 테스트 전략 및 CI 설정
- CI CD 구조
- 배포 전, 로컬에서 로그인 기능 포함 테스트해보는 법
- stylelint 적용기
- 내 작업 브랜치 중간에 Merge된 동료의 작업물을 넣고 싶다면 pull vs rebase
- [TS] Webpack config
- [TS] Webpack 환경에서 MSW v2 이슈
- [TS] webpack에서 react‐router‐dom 적용 안됨