본문 바로가기

Spring/Springboot

[Springboot] MDC(Mapped Diagnostic Context) 개념 1. MDC(Mapped Diagnostic Context) 로깅 코드에서 특정 데이터를 쉽게 사용할 수 있도록 하는 메커니즘 한 스레드에서 실행되는 작업 간에 로깅 코드를 통해 데이터를 전파할 수 있음 스프링부트에서 MDC는 주로 로깅 프레임워크에서 제공하는 기능을 활용하며 주로 SLF4J와 함께 사용됨 MDC를 사용하면 로그 메시지에 특정 컨텍스트 정보를 쉽게 추가할 수 있음 2. MDC 저장소 MDC가 실제로 사용하는 저장소, 로깅 컨텍스트 정보를 스레드 로컬 기반의 Map으로 관리 로깅 프레임워크(주로 SLF4J)에서 제공하는 자바 ThreadLocal 클래스를 사용 각 스레드는 자체적인 MDC 저장소를 가지고 있으며, 이 저장소에는 특정 작업이나 트랜잭션과 관련된 추가적인 컨텍스트 정보를 저장할.. 더보기
[Springboot] 그라파나(grafana) 공유 대시보드 활용 아래 사이트에서 공유된 대시보드들을 볼 수 있음 https://grafana.com/grafana/dashboards/ Dashboards | Grafana Labs Thank you! Your message has been received! grafana.com 원하는 대시보드를 찾았으면 클릭하고 ID를 복사 그라파나 접속(localhost:3000) - 대시보드 - New - import 복사한 아이디 입력 데이터소스 프로메테우스 선택하고 Import 아래와 같이 대시 보드를 확인할 수 있음 위 대시보드를 커스텀해서 사용하면됨 더보기
[Springboot] 그라파나(grafana) 대시보드 만들기 왼쪽 상단에 메뉴 - Dashboard 클릭 Create Dashboard 클릭 오른쪽 상단에 Save dashboard 아이콘 클릭 대시보드 이름 정해주고 저장하기 Add visualization 클릭 데이터 소스 prometheus 클릭 Code로 변경 [Enter a PromQL query ...] 입력 창에 확인하고 싶은 쿼리 작성 실습에서는 system_cpu_usage 작성 왼쪽 하단에 Add query를 클릭하여 확인하고 싶은 데이터를 추가할 수 있음 실습에서는 process_cpu_usage 작성 범례명 변경 options 클릭 - Legend 를 coustom으로 선택하고 원하는 범례명 작성 대시보드 타이틀 변경 오른쪽 Panel options -title 작성 작성 후 오른쪽 상단 Ap.. 더보기
[Springboot] 그라파나(grafana)-프로메테우스 연동 그라파나는 프로메테우스를 통해서 데이터를 조회하고 보여주는 역할을 함 프로메테우스를 데이터 소스로 사용해서 데이터 읽어옴 1. 데이터 소스 추가 1) 그라파나 접속 후 admin으로 로그인 http://localhost:3000 2) 메인 화면에 Data Sources 클릭 3) Data sourcess - Prometheus 클릭 3) url 입력 Connection탭 - Prometheus server URL 입력 - Save & test 클릭 4) Save & test 클릭하면 연결 성공 메시지를 확인할 수 있음 더보기
[Springboot] 프로메테우스 - 게이지와 카운터 1. 게이지(Gauge) 임의로 오르내릴 수 있는 값 현재 상태를 그대로 출력하면 됨 CPU사용량, 메모리 사용량, 사용중인 커넥션 2. 카운터(Counter) 단순하게 증가하는 단일 누적 값 HTTP 요청 수, 로그 발생 수 카운터에서 사용할 수 있는 함수 1) increase() 시간당 요청 수 확인 [시간]을 사용해서 범위 벡터를 지정하여 시간 단위 별 증가를 확인할 수 있음 2) rate() 범위 벡터에서 초당 평균 증가율 계산 increase()가 숫자를 직접 카운트 한다면, rate()는 여기에 초당 평균을 나누어 계산 3) irate() rate와 유사한데 범위 벡터에서 초당 순간 증가율 계산 급격하게 증가한 내용 확인 더보기
[Springboot] 프로메테우스 - 기본 기능 http_server_requests_seconds_count를 조회하여 실습 1. 기본 조회 Table 탭: Evaluation time을 수정해서 과거 시간 조회 가능 태그(Tag): error, exception, instance, job, method, outcome, status, uri는 각각의 메트릭 정보를 구분해서 사용하기 위한 태그 *마이크로미터에서는 태그(Tag), 프로메테우스에서는 레이블(Lable) '태그'로 통칭하여 작성 숫자: 끝에 910, 1과 같은 숫자는 해당 메트릭의 값 Graph 탭: 메트릭을 그래프로 조회 가능 End time을 수정해서 과거 시간을 조회할 수 있음 2. 필터 조회 태그를 기준으로 필터를 사용하여 조회할 수 있음 필터는 중괄호 '{}' 문법을 사용 1) .. 더보기
[Springboot] 프로메테우스-설정 프로메테우스는 메트릭을 수집하고 보관하는 DB 프로메테우스가 애플리케이션의 메트릭을 수집하도록 연동을 해야 함 1. 애플리케이션 설정 프로메테우스가 애플리케이션의 메트릭을 가져갈 수 있도록 애플리케이션에서 프로메테우스 포맷에 맞추어 메트릭 만들기 프로메테우스는 /actuator/metrics에서 보았던 포맷(JSON)을 이해하지 못함 하지만 마이크로미터가 이런 부분을 해결해 줌 각각의 메트릭들은 내부에서 마이크로미터 표준 방식으로 측정되고 있음, 따라서 어떤 구현체를 사용할지 지정해 주면 됨 1) 의존성 추가 마이크로미터 프로메테우스 구현 라이브러리를 추가 이렇게 하면 스프링 부트와 액츄에이터가 자동으로 마이크로미터 프로메테우스 구현체를 등록해서 동작하도록 설정해 줌 액츄에이터 프로메테우스 메트릭 수집 .. 더보기
[Springboot] 맥북 m2 그라파나(grafana) 설치 프로메테우스가 DB라고 한다면, DB에 있는 데이터를 불러서 사용자가 보기 편하게 보여주는 대시보드가 필요함 그라파나는 매우 유연하고 데이터를 그래프로 보여주는 툴 수 많은 그래프를 제공하고, 프로메테우스를 포함한 다양한 데이터소스를 지원 1. 그라파나 다운로드 https://grafana.com/grafana/download?platform=mac Download Grafana | Grafana Labs Overview of how to download and install different versions of Grafana on different operating systems. grafana.com 2. 압축풀고 실행 다운로드 받은 경로 bin으로 이동 ./grafana-server 아래와 같은 .. 더보기