2014-03-03 2 views
3

JConsole에서 다음 경로 통계를 볼 수 있습니다. 메시지의카멜의 경로 통계 추출

  1. 최소/최대/평균 처리 시간
  2. 첫 번째/마지막 메시지 완료 시간
  3. 번호는 실패 또는 재 - 전달했다. 거래의
  4. 총 수는

요구 사항 처리 : I는 웹 페이지의 데이터 위에 표시해야합니다. 사전에

public void process(Exchange exchange) throws Exception { 

CamelContext context = exchange.getContext(); 
List<Route> routeObj = context.getRoutes(); 
for (Route routeId : routeObj) { 
    boolean started = context.getRouteStatus(strRouteId).isStarted(); 
    boolean stopped = context.getRouteStatus(strRouteId).isStopped(); 
    boolean suspended = context.getRouteStatus(strRouteId).isSuspended(); 
    // TODO: find min/max/mean processing time, first/last message 
    // completion time, etc. 
} 
} 

감사 : 다음은 내 코드입니다.

+0

이 정보 :

예는 상황 정보 명령입니다. JMX를 사용해 보셨습니까? –

+0

코드 위에 JMX를 사용하는 방법이 없습니다. 당신이 나에게 코드 조각을 줄 수 있다면 고맙겠습니다. 감사합니다. – user3265703

+0

코드의 일부분보다 더 나은 것을 줄 수 있습니다. 다음은 [공식 JMX 튜토리얼] (http://docs.oracle.com/javase/tutorial/jmx/) 및 [Apache Camel JMX 문서] (http://camel.apache.org/camel-jmx.html)입니다. # CamelJMX-CamelJMX);) –

답변

0

아파치 낙타는 JMX를 사용하여 이러한 정보를 노출, 최소/최대/처리 평균 시간, 마지막/첫 번째 메시지 완료 시간을 얻는 방법을 나에게 제시하시기 바랍니다.

는 좋은 출발점 이벤트의 org.apache.camel.management.PublishEventNotifier

한 종류가 완료처럼 (낙타 교류와 직결되는 통지를 받게됩니다 사용하여, 당신은 실제로 당신이 필요로하는 정보를 계산할 수 official JMX tutorialApache Camel JMX Documentation

입니다 , 실패 ...). 그 후에 필요한 정보는 JMX (LastProcessingTime)를 사용하여 얻을 수있는이 교환 (마지막 교환)의 처리 시간입니다. 각 경로에 대한 처리 시간 교류가 있으면

는 당신이 필요로하는 모든 정보는 실시간으로 계산 될 수있다.

1

예를 들어 낙타 Karaf가 너무 통계를 덤프 할 수 명령을 참조하십시오. 그들은 그것을하기 위해 JMX API를 사용합니다. JMX를 사용하여 노출 https://github.com/apache/camel/blob/master/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java

+1

또 다른 대안은 REST를 노출 jolokia을 사용하는 것입니다 javadoc에보다 PublishEventNotifier 다른 관한 참조를 찾을 수 없습니다 미안 해요 난 당신이 전에 시도하는 것을했다 :) 그것을 확인하지만, API를 JMX 용으로 사용하고 웹 개발자가 hawtio 웹 콘솔에서 수행 한 작업과 같이이 데이터에 훨씬 쉽게 액세스 할 수있게합니다. - http://hawt.io/ –

관련 문제