소개
게시글
질문&답변
2023.12.30
HTTP 방식의 actuator가 메트릭을 수집하는 방법
추가적으로 공부하며 정리한 사항 올려드립니다.springboot actuator와 관련된 JMX 사항들에 대해 궁금하신 분들께 도움이 되면 좋겠습니다.Actuator는 JMX 방식의 메트릭 수집을 지원하는가?공식문서에 의하면, spring.jmx.enabled 옵션을 true로 줄 경우 가능합니다.(질문의 링크 참조)위와 같이 설정한 경우 JDK에 포함되는 VisualVM(JDK 9 이후로는 개별 설치 필요), JConsole 등의 JMX 클라이언트를 통해 스프링 부트 WAS에 대한 정보를 확인 할 수 있습니다.JMX와 HTTP 방식은 어떻게 다른가?JMX는 MBean이라는 오브젝트를 통해 메트릭을 수집한 뒤, 이를 통해 수집 가능한 API를 제공하고, HTTP는 저희가 흔히 사용하는 HTTP 엔드 포인트를 노출하여 메트릭을 수집할 수 있게 합니다. 메트릭을 수집하는 방법이 둘 간의 가장 큰 차이입니다.JMX는 RMI가 표준으로 사용되기에 서로 다른 두 JVM 프로세스 간의 통신이 이루어지며 메트릭이 수집됩니다.JMX 방식이 어떻게 이뤄지는지 궁금하시면 RMI, MBean 두 가지 키워드로 검색해보시면 될 것 같습니다.프로메테우스에서 제공하는 JMX-Exporter와 Springboot Actuator의 차이는?JMX-Exporter의 경우 내부적으로 JMX API를 통해 메트릭을 수집합니다. 즉, agent 역할을 수행하는 JVM 프로세스가 따로 존재하고 해당 프로세스와 WAS 프로세스간 RMI 연결을 통해 메트릭이 수집됩니다. 공식문서의 실행 옵션에서 두개의 jar를 실행시키는것을 확인 가능합니다. (https://github.com/prometheus/jmx_exporter)반면, Actuator는 영한님께서 말씀해주신것 처럼 각각 다른 방식으로 수집됩니다. 다만 코드를 직접 까보니 Thread Dump, Heap Dump의 경우 내부적으로 MBean을 사용하는것이 확인됩니다. (추가적으로 더 있을 수도 있습니다.) 다만 하나의 프로세스 내에서 수집이 이뤄지기에 JMX 방식은 아닙니다.JMX-Exporter의 경우 Spring 컨테이너가 사용되지 않는 JVM 프로세스(주키퍼, 카프카 등)에서 메트릭을 수집하기 위해 자주 사용된다고 합니다.또한 모니터링 하고자 하는 메트릭을 MBean으로 등록할 경우, JMX-Exporter를 설치하면 이를 바로 수집할 수 있습니다. 혹시 잘못된 내용 있으면 지적 바랍니다. 감사합니다.
- 0
- 3
- 464
질문&답변
2023.01.03
시뮬레이터는 켜지는데 앱이 오류가 납니다ㅠㅠ
npm install --save react-native-push-notification npm install --save react-native-status-bar-height둘 중 하나 인 것 같습니다!
- 0
- 2
- 599
고민있어요
2022.04.11 19:56
테스트
- 1
- 0
- 144
고민있어요
2022.04.11 18:13
테스트
- 0
- 0
- 142
질문&답변
2021.02.19
window10 환경에서 npm run dev-watch 실행 시 error: unknown option '--ignore'./client'' 오류질문입니다.
npm cache clean --force하고 node_modules파일과 package-lock.json 삭제하신뒤 npm install후 blog 디렉토리에 강의 순서대로 모듈ㄷㄹ 다시 설치하시면 해결됩니다... 혹시나 저같은 분 있으실까봐 남겨요...
- 0
- 1
- 342