2016-05-26 6 views
0

Wir bauen Dateiverarbeitungssystem (Web-Anwendung + Stateful) mit Kamel, JMS und Ruhe. Mehrere Benutzer können Dateien hochladen. Es ist erforderlich, min, max, durchschnittliche Zeit, durchschnittliche Anzahl von Treffern und etc. für den Benutzer anzuzeigen. Dies entspricht fast den von camel bereitgestellten Routenmetriken. Gibt es eine Möglichkeit, diese Routenmetriken auf Benutzerebene zu sammeln? Oder sollten wir die Metriken-Komponenten und die Registrierung entsprechend unseren Anforderungen erweitern?ist möglich, Camel Routenmetriken auf Benutzerlevel/benutzerspezifischen gesammelt

Hinzugefügt unten Änderungen an Code zum Sammeln von Metriken.

<!--added to bean context --> 
<bean id="policy" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicy"/> 

<!-- below changes done to route -->   
<route id="prefRate" routePolicyRef="policy"> 

    <from uri="cxfrs://bean://prefRateService?bindingStyle=SimpleConsumer"/> 
     <log message="Processing username:${headers.username}"/> 
    <setHeader headerName="HEADER_METRIC_NAME"> 
       <simple>${headers.username}</simple> 
    </setHeader> 
    <to uri="log:body?level=INFO"/> 
    <to uri="bean:fxPrefRateProcessor" /> 
     <to uri="metrics:meter:prefRateCounter"/> 
    </route> 

Antwort

2

Sie können den Namen einer Metrik in der Route überschreiben, indem Sie den Header MetricsConstants.HEADER_METRIC_NAME setzen. Um eine eindeutige Metrik pro Benutzer zu erhalten, fügen Sie einfach den eindeutigen Benutzernamen in den Metriknamen ein. Sie könnten so etwas tun:

.setHeader(MetricsConstants.HEADER_METRIC_NAME, simple("your.metric.name.for.user.${body.user}")) 
.to("metrics:meter:your.metric.name"); 

Dies würde Ihnen pro Benutzer Messwerte geben. Es gibt einige Dokumentation auf der Apache-Website, die die metrics component and how to set variables/values

+0

umfasst. Wir haben Änderungen gemäß Ihrer Empfehlung vorgenommen. Es ist jedoch nicht möglich, Messwerte in Hawtio anzuzeigen. –

+0

Stellen Sie sicher, dass Sie Ihren Benutzernamen ordnungsgemäß ausfüllen (der obige einfache Ausdruck ist ein Beispiel, ich weiß nicht, wo Sie Ihre eindeutige Benutzerzeichenfolge in Ihrem Exchange beibehalten) und überprüfen Sie, ob die richtigen Messwerte in Ihrem Weblog protokolliert werden Kamelprotokolle. – AndyN

+0

Name sind eindeutig bevölkert, die über Trace in HawtIO überprüft wird. Es ist mein Fehler. Die Dokumentation zeigt deutlich, dass Metriken aus Java-Code gezogen werden können. In der Zwischenzeit werde ich auch die Kamelstämme nach Vorschlag prüfen. –