@Inherited @Documented @InterceptorBinding @Retention(value=RUNTIME) @Target(value={TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE}) public @interface Metered
Given a method annotated with @Metered like this:
@Metered(name = "fancyName")
public String fancyName(String name) {
return "Sir Captain " + name;
}
A meter with the fully qualified class name + fancyName
will be created and each time the
#fancyName(String)
method is invoked, the meter will be marked.
Similarly, the same applies for a constructor annotated with metered.
Given a class annotated with @Metered like this:
@Metered
public class MeteredBean {
public void meteredMethod1() {}
public void meteredMethod2() {}
}
A meter for the defining class will be created for each of the constructors/methods.
Each time a constructor/method is invoked, the respective meter will be marked.
This annotation will throw an IllegalStateException if the constructor/method is invoked, but the metric no
longer exists in the MetricRegistry.Modifier and Type | Optional Element and Description |
---|---|
boolean |
absolute |
String |
description
The description of the meter.
|
String |
displayName
The display name of the meter.
|
String |
name |
boolean |
reusable
Denotes if this metric instance can be reused by multiple registrations.
|
String[] |
tags |
String |
unit
The unit of the meter.
|
public abstract String name
public abstract boolean absolute
true
, use the given name as an absolute name. If false
(default), use the given name
relative to the annotated class. When annotating a class, this must be false
.public abstract String unit
MetricUnits.PER_SECOND
.Metadata
,
MetricUnits
Copyright © 2020. All rights reserved.