Monitor

Monitor (모니터 추상 클래스)

모든 모니터 MBean에 공통인 부분을 정의하는 추상 클래스예요. 모니터 MBean은 관찰된 MBean 집합에 공통인 속성의 값을 모니터링해요. 관찰 속성은 세분화 기간(granularity period)에 지정된 간격으로 모니터링되고, 관찰 속성의 값으로부터 게이지 값(파생 게이지, derived gauge)이 파생돼요.

출처: Java API Reference

본문

MonitorNotificationBroadcasterSupport를 상속하고 MonitorMBean, MBeanRegistration을 구현해요. 모든 모니터 유형(카운터, 게이지, 문자열)의 공통 기반이에요.

주요 메서드는 다음과 같아요.

  • start() / stop(): 모니터를 시작/중지해요. 추상 메서드로 하위 클래스가 구현해요.
  • addObservedObject(ObjectName) / removeObservedObject(ObjectName): 관찰 MBean 집합에 객체를 추가/제거해요. addObservedObject는 객체가 null이면 IllegalArgumentException을 던져요.
  • containsObservedObject(ObjectName): 객체가 관찰 집합에 있는지 검사해요.
  • getObservedObjects(): 관찰 중인 객체 배열을 반환해요.
  • getObservedAttribute() / setObservedAttribute(String): 관찰 속성을 조회/설정해요. 기본적으로 초기화되지 않고 null로 설정돼요.
  • getGranularityPeriod() / setGranularityPeriod(long): 세분화 기간(밀리초)을 조회/설정해요. 0 이하이면 IllegalArgumentException을 던져요.

또한 MBeanRegistrationpreRegister, postRegister, preDeregister, postDeregister를 구현해요. preRegister는 MBean 서버 참조를 초기화하고, preDeregister는 모니터를 중지해요.

getObservedObject()/setObservedObject() 무인자 오버로드는 deprecated이며 관찰 집합의 첫 번째 객체를 대상으로 해요.

더 알아보기 (Learn more)

Java 공식 API