@Inherited @Documented @InterceptorBinding @Retention(value=RUNTIME) @Target(value={TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE}) public @interface Counted
Given a method annotated with @Counted like this:
@Counted(name = "fancyName")
public String fancyName(String name) {
return "Sir Captain " + name;
}
A counter with the fully qualified class name + fancyName will be created and each time the
#fancyName(String) method is invoked, the counter will be marked. Similarly, the same applies for a
constructor annotated with counted.
Given a class annotated with @Counted like this:
@Counted
public class CounterBean {
public void countMethod1() {}
public void countMethod2() {}
}
A counter for the defining class will be created for each of the constructors/methods. Each time the
constructor/method is invoked, the respective counter will be marked.
The counter value will only monotonically increase.
Note: the default behaviour has changed in MicroProfile Metrics 2.0. To get the old @Counted(monotonic=false)
behavior, see @ConcurrentGauge
| 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 counter.
|
String |
displayName
The human readable display name of the counter.
|
String |
name
The name of the counter.
|
String[] |
tags
The tags of the counter.
|
String |
unit
The unit of the counter.
|
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.NONE.Metadata,
MetricUnitsCopyright © 2017 – 2021 Eclipse Foundation. All rights reserved.
Use is subject to license terms.