@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.| Modifier and Type | Optional Element and Description |
|---|---|
boolean |
absolute
Denotes whether to use the absolute name or use the default given name relative to the annotated class.
|
String |
description
The description of the meter.
|
String |
displayName
The display name of the meter.
|
String |
name
The name of the meter.
|
boolean |
reusable
Denotes if this metric instance can be reused by multiple registrations.
|
String[] |
tags
The tags of the meter.
|
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,
MetricUnitsCopyright © 2021. All rights reserved.