метод для создания метрик:
@Override
@Metric(metricName = "rmq.onMessage", type = { MetricType.METER, MetricType.HISTOGRAM })
public void onMessage(Object messageBytes) {
//some processing
}
Метод регистрации здесь:
MessageListenerAdapter listenerAdapter = new MessageListenerAdapter(messageConsumer, "onMessage");
если в очередь поступают какие-либо сообщения, то onMessage будет вызываться с использованием:
protected Object invokeListenerMethod(String methodName, Object[] arguments, Message originalMessage)
throws Exception {
try {
MethodInvoker methodInvoker = new MethodInvoker();
methodInvoker.setTargetObject(getDelegate());
methodInvoker.setTargetMethod(methodName);
methodInvoker.setArguments(arguments);
methodInvoker.prepare();
return methodInvoker.invoke();
}
Мой аспект:
@Around("@annotation(myAnnotation.graphite.annotations.Metric)")
public Object graphiteAspect(ProceedingJoinPoint joinPoint) {
//metrics reporting done here
}