An injection listener which creates a gauge for the declaring class with the given name (or the
method's name, if none was provided) which returns the value returned by the annotated method.
For gauges (which can reside in superclasses of the type being instantiated), this will use the
instantiated type for the resulting metric name no matter what superclass declares the gauge
method.
For AOP-wrapped method invocations (which is how all metrics other than Gauges have to be
handled), there isn't a way to handle annotated methods defined in superclasses since we can't
AOP superclass methods.
A method interceptor which creates a meter for the declaring class with the given name (or the
method's name, if none was provided), and which measures the rate at which the annotated method
is invoked.