전체 글
-
메트릭 등록 - 카운터스프링/스프링부트 2023. 10. 3. 21:19
공통으로 사용되는 메트릭인 공용 메트릭을 사용한다. 하지만, 우리 개인만의 메트릭을 만들어야할 수도 있다. 우리만의 기술이나 사용자의 요구사항에 따라 비즈니스 메트릭이 필요할 때가 있다. 비즈니스의 실시간 주문, 취소, 실시간 재고 수량을 메트릭으로 등록하고 확인해볼 것이다. 주문수, 취소수 - 카운터 사용(계속 증가) 상품을 주문하면 주문수가 증가한다. 상품을 취소해도 주문수는 유지한다. 대신에 취소수를 증가한다. 재고 수량 - 게이지 사용(증가하거나 감소) 상품을 주문하면 재고 수량이 감소한다. 상품을 취소하면 재고 수량이 증가한다. 재고 물량이 들어오면 재고 수량이 증가한다. MeterRegistry - 마이크로미터 기능을 제공하는 핵심 component 기본적으로 다 스프링으로 등록되어 있으며 이..
-
그라파나 - 공유 대시보드 활용스프링/스프링부트 2023. 10. 2. 22:18
https://grafana.com/grafana/dashboards 위의 사이트는 다른 사람들이 만들어놓은 대시보드들이 있는 사이트이다. spring이라고 검색하면 많은 대시보드가 나오는데 이 2개가 가장 많이 사용되는 대시보드이다. 오른쪽의 Spring Boot 2.1 System Monitor 대시보드를 클릭하고 ID를 복사해서 이 ID를 가지고 대시보드를 사용하면 된다. 그라파나의 Dashboards 페이지에 가서 New -> Import를 눌러준다. 이후에 복사한 ID를 입력하고 Load를 누르면 대시보드가 만들어진다. 다른 설정은 손댈 필요 없고 data source만 프로메테우스로 지정해준 다음 Import를 눌러주면 된다. 공유 대시보드의 실제 페이지 창이다. 마이크로미터의 메트릭 기능을 ..
-
그라파나 - 대시보드 만들기스프링/스프링부트 2023. 10. 2. 21:59
그라파나 대시보드를 만들기에 앞서 애플리케이션, 프로메테우스, 그라파나를 실행해야한다. 대시보드 생성 그라파나 페이지에서 Dashboards를 선택해준다. 오른쪽에 있는 New -> New Dashboard를 선택해서 대시보드를 만들어준다. 오른쪽 상단의 Save dashboard를 누른다. 그대로 Save를 누르면 대시보드가 만들어진다. 이제 패널을 만들 것이다. 대시보드가 큰 틀이라면 패널은 그 안에서 모듈처럼 들어가는 실제 그래프를 보여주는 component이다. 패널 생성 오른쪽 상단에서 Save Dashboard 옆에 있는 Add panel을 누르고 Add new pannel로 들어간다. 오른쪽에 있는 Builder 버튼을 Code 버튼으로 바꾼 다음, 빈칸에 프로메테우스 쿼리를 입력하면 프로메..
-
그라파나 - 설치 및 연동스프링/스프링부트 2023. 10. 2. 21:40
https://grafana.com/grafana/download 위의 사이트에서 본인의 운영체제에 맞는 그라파나를 다운받으면 된다. 애플리케이션과 프로메테우스를 꼭 켜놓은 상태에서 폴더에 있는 grafana-server.exe를 실행하면 된다. localhost:3030으로 접속하면 로그인 페이지가 나와서 로그인을 해주면 된다. 지금은 공부 단계이니까 ID : admin, PW : admin으로 접속한다. 연동 왼쪽 아래에 있는 Configuration에 들어간다. Add DataSource를 클릭하고 Prometheus를 누른다. 이름을 적고 HTTP URL에 프로메테우스의 포트인 http://localhost:9090을 입력한 뒤 save&test를 누르면 자동으로 연동이 된다.
-
프로메테우스 - 게이지와 카운터스프링/스프링부트 2023. 10. 2. 17:26
메트릭은 크게 보면 게이지와 카운터 2개로 분류할 수 있다. 게이지(Gauge) 임의로 오르내리는 값 ex) CPU 사용량, 메모리 사용량, 사용중인 커넥션 카운터(Counter) 단순하게 증가하는 누적 값 HTTP 요청 수, 로그 발생 수 게이지(Gauge) 대표적인 게이지인 CPU 사용량을 생각해보면, CPU 사용량은 측정 값을 그대로 보여주면 된다. 따로 가공을 하거나 그럴 필요는 딱히 없다. 게이지는 단순하고 쉬운 메트릭이다. 카운터(Counter) 카운터는 게이지보다 조금 복잡한데 쉽게 말해서 단순하게 증가하는 누적 값이다. 02:42 ~ 02:43: 80건 요청 02:43 ~ 02:46: 0건 요청 02:46 ~ 02:48: 약 50건 요청 위의 요청이 있었다고 가정을 할 때, 증가만 하는 그..
-
프로메테우스 - 기본 기능스프링/스프링부트 2023. 10. 2. 17:09
프로메테우스의 기본 페이지에 원하는 엔드포인트를 입력하면 그에 따른 정보가 나온다. 위에서는 http_server_requests_seconds_count를 입력해서 서버에 접근하는 총 소유 시간을 조회했다. Table이 아니라 Graph를 누르면 정보를 그래프로 보여준다. 시간 설정도 할 수 있다. 맨 위에 있는 그래프는 /actuator/prometheus인데 1초에 한 번씩 보내는걸로 yml로 실행했기 때문에 계속 실행되는 것이고, 아래 그래프의 보라색은 /log uri인데, localhost:8080/log에 접근해서 해당 컨트롤러를 약 20번정도 실행하고 결과를 캡쳐한 것이다. 특정 시간을 선택할 수도 있다. 그 시간대의 결과만 따로 보고싶을 때 사용하면 된다. 필터 레이블(마이크로미터의 tag..
-
프로메테우스 - 설정스프링/스프링부트 2023. 10. 2. 16:41
프로메테우스가 애플리케이션 메트릭을 수집하도록 연동하는 과정 1. 애플리케이션 설정 : 프로케테우스가 애플리케이션의 메트릭을 가져갈 수 있도록 애플리케이션에서 프로메테우스의 형식에 맞추어 메트릭 만들기 2. 프로메테우스 설정 : 프로메테우스가 애플리케이션의 메트릭을 주기적으로 수집하도록 설정 아래의 사이트에서 운영체제에 맞는 프로메테우스를 다운받으면 된다. https://prometheus.io/download/ prometheus.exe를 실행하면 9090포트로 프로메테우스 페이지에 접근할 수 있다. http://localhost:9090 애플리케이션 설정 프로메테우스는 localhost:8080/actuator/metrics의 JSON 형식은 이해하지 못한다. 마이크로미터가 프로메테우스 포멧에 맞춰서..
-
프로메테우스와 그라파나 소개스프링/스프링부트 2023. 10. 2. 16:03
프로메테우스 메트릭은 실시간 상황을 알려주지만 과거 이력을 저장해주지 않는다. 애플리케이션에서 발생한 메트릭을 저장하고 지속적으로 확인하기 위해서 메트릭을 보관하는 데이터베이스가 필요하다. 프로메테우스는 이러한 기능을 담당한다. 그라파나 프로메테우스는 데이터베이스인데, 이 데이터베이스의 데이터를 보기 쉽게 만들어주는 대시보드가 필요하다. 그라파나는 유연하게 데이터를 그래프로 보여주는 도구이다. 전체 구조 1. 왼쪽의 매트릭은 액츄에이터와 마이크로미터를 사용해서 자동으로 생성된다. -> 마이크로미터 프로메테우스 구현체는 프로메테우스가 읽을 수 있는 형식으로 메트릭을 만들어준다. 2. 프로메테우스는 만들어진 메트릭을 지속해서 수집한다. 3. 프로메테우스가 수집된 메트릭을 내부의 데이터베이스에 저장한다. 4...