본문 바로가기

전체 글

[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 아래와 같은 .. 더보기
[Springboot] 프로메테우스 설치 애플리케이션에서 발생한 메트릭을 그 순간만 확인하는 것이 아닌 과거 이력까지 함께 확인하려면 메트릭을 보관하는 DB가 필요함 이렇게 하려면 어디선가 메트릭을 지속해서 수집하고 DB에 저장해야 함 프로메테우스가 바로 이런 역할을 담당함 1. 프로메테우스 아키텍처 2. 설치 https://prometheus.io/download/ Download | Prometheus An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach. prometheus.io mac 사용자는 darwin-amd64 선택 다운로.. 더보기
[Springboot] 다양한 메트릭 확인하기 1. JVM 메트릭 JVM 관련 메트릭을 제공 jvm. 으로 시작함 메모리, 버퍼, 가비지 수집, 스레드, 로드 및 언로드된 클래스 수, JVM 버전 정보, JIT 컴파일 시간 등의 정보를 확인할 수 있음 "jvm.buffer.count", "jvm.buffer.memory.used", "jvm.buffer.total.capacity", "jvm.classes.loaded", "jvm.classes.unloaded", "jvm.compilation.time", "jvm.gc.live.data.size", "jvm.gc.max.data.size", "jvm.gc.memory.allocated", "jvm.gc.memory.promoted", "jvm.gc.overhead", "jvm.info", "jvm... 더보기
[Springboot] 기본 메트릭 확인하기 스프링부트 액츄에이터를 사용하여 메트릭(지표)를 편리하게 사용할 수 있음 액츄에이터가 마이크로미터를 통해서 등록한 기본 메트릭 확인 http://localhost:8080/actuator/metrics 자세히 확인하기 http://localhost:8080/actuator/metrics/{name} 설명 { "name": "jvm.memory.used", "description": "The amount of used memory", "baseUnit": "bytes", "measurements": [ { "statistic": "VALUE", "value": 1.28958912E8 // 메모리 사용량 } ], "availableTags": [ // 해당 태그를 기반으로 정보를 필터링해서 확인할 수 있음 .. 더보기
[Springboot] 마이크로미터 1. 모니터링의 필요성 서비스를 운영할 때는 애플리케이션에 CPU, 메모리, 커넥션 사용, 고객 요청수 같은 수 많은 지표들을 확인하는 것이 필요함 어디에 어떤 문제가 발생했는지 사전에 대응할 수 있고, 문제 발생 시 원인을 빠르게 파악해서 대처할 수 있음 2. 마이크로미터(Micrometer) 라이브러리 세상에는 다양한 모니터링 툴이 존재하는데, 각 툴마다 정보를 전달하는 방법이 다 다름, 그래서 이 것을 표준 측정하도록 돕는게 마이크로미터 라이브러리 -> 애플리케이션 메트릭 파사드라고 불리는데, 애플리케이션의 메트릭(측정 지표)을 마이크로미터가 정한 표준 방법으로 모아서 제공해줌 마이크로미터 추상체를 사용하고 예를들어 JMX구현체, 프로메테우스 구현체 등 구현체를 선택하면됨 -> 마이크로미터가 추상화.. 더보기