@Retention(value=RUNTIME) @Target(value=METHOD) public @interface ExceptionMetered
\@ExceptionMetered(name = "fancyName", eventType = "namings", rateUnit = TimeUnit.SECONDS,
cause=IllegalArgumentException.class)
public String fancyName(String name) {
return "Sir Captain " + name;
}
A meter for the defining class with the name fancyName
will be created and each time the
#fancyName(String)
throws an exception of type cause
(or a subclass), the meter
will be marked.
By default, the annotation default to capturing all exceptions (subclasses of Exception
)
and will use the default event-type of "exceptions".
A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
named based on the method name.
For instance, given a declaration of
\@ExceptionMetered
public String fancyName(String name) {
return "Sir Captain " + name;
}
A meter named fancyNameExceptionMetric
will be created with event-type named
"exceptions". The meter will be marked every time an exception is thrown.Modifier and Type | Fields and Description |
---|---|
static String |
DEFAULT_NAME_SUFFIX
The default suffix for meter names.
|
Modifier and Type | Optional Element and Description |
---|---|
Class<? extends Throwable> |
cause
The type of exceptions that the meter will catch and count.
|
String |
eventType
The name of the type of events the meter is measuring.
|
String |
group
The group of the timer.
|
String |
name
The name of the meter.
|
TimeUnit |
rateUnit
The time unit of the meter's rate.
|
String |
type
The type of the timer.
|
public static final String DEFAULT_NAME_SUFFIX
public abstract String group
public abstract String type
public abstract String name
public abstract String eventType
public abstract TimeUnit rateUnit
Copyright © 2014. All Rights Reserved.