2010-06-17 4 views
2

(JConsole과 같은 다양한 도구를 통해 MBeans에 액세스 할 수 있기 때문에) 어플리케이션 및 시스템 메트릭을 모니터링하기 위해 JMX를보고있었습니다. JMX에 포함 된 클래스는 메트릭이 임계 값을 초과 할 때 알림과 같은 것들에 유용 할 것입니다. 그러나 나는 그들이 특정 기간 동안 이들을 측정하기를 원하는 방식에 맞는지 확신 할 수 없다.JMX 클래스를 사용하여 시간에 따른 이벤트 알림

예를 들어 5 분 이상 평균 CPU로드가 95 %를 초과하면 관리자에게 알리고 싶다고 가정 해 봅시다. GaugeMonitor로 그 일을 할 수 있습니까? 문서에서,이 꽤 적합하지 않은 것, 그리고 대신에 필요한 논리와 함께 내 자신의 MBean을 작성해야하는지 궁금하네요.

더 관련있는 예는 사용자의 로그인 시간이 5 분 동안 10 초를 초과하는 경우입니다. 지난 20 번의 로그인은 평균 10 초 이상 걸렸습니다. 또 다른 경우는 프로세스가 한 시간에 4 번 이상 충돌하는 경우입니다. 또는 요청 큐가 5 분 동안 15를 초과합니다. JMX Monitor 클래스는 이런 종류의 일에 유용합니까?

답변

1

모니터 mbean 클래스는 특히 유용하지 않으며 사용자의 요구를 충족시킬만큼 충분히 조정할 수는 있지만 다양한 요구 사항이있는 것 같습니다. 스트리밍 이벤트 엔진 인 Esper과 같은 것을 살펴 보는 것이 좋습니다. 기본적으로 엔진에 정기적으로 판독 값을 주입하고 정의한 조건이 발생하면 JMX 알림으로 쉽게 변환 될 수있는 콜백을 받게됩니다.

Esper 엔진은 매우 효율적이며 호출자 스레드 (추가 스레드 없음)에서 완전히 실행되며 알림을 받기 위해 등록한 조건을 충족시키는 데 필요한 주입 된 데이터 만 유지합니다.

+0

흥미 롭습니다. 우리는 이벤트를 개최하고 조건을 관찰하기위한 유틸리티 클래스의 자체 라이브러리를 작성했습니다. Esper는 잔인 함을 느낄 수 있지만 올바른 종류의 기능처럼 들립니다. –

+0

처음에는 홍당무처럼 보이지만 ....... A. 리소스 사용량 (또는 추가 오버 헤드)은 아주 작습니다 (데이터의 쓰레기로드를 유지하지 않으면 작년에는() 이었지만, 평균 및 기타 집계를 계산할 수 있기 때문에 실행해야하는 작업량을 실제로 줄일 수 있습니다. 플러스에서 새 쿼리를 추가 할 수 있습니다. 팬 소년입니다. ... 분명하지 않다면 ... – Nicholas