@Inherited @Documented @InterceptorBinding @Retention(value=RUNTIME) @Target(value={TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE}) public @interface Timed
Timer metric aggregates timing durations and provides duration
statistics, plus throughput statistics. There is a lightweight alternative
SimpleTimer (@SimplyTimed) that only tracks elapsed time
duration and count. The metric will be registered in the application MetricRegistry.
Given a method annotated with @Timed like this:
@Timed(name = "fancyName")
public String fancyName(String name) {
return "Sir Captain " + name;
}
A timer with the fully qualified class name + fancyName will be created and each time the
#fancyName(String) method is invoked, the method's execution will be timed.
Given a class annotated with @Timed like this:
@Timed
public class TimedBean {
public void timedMethod1() {}
public void timedMethod2() {}
}
A timer for the defining class will be created for each of the constructors/methods. Each time a constructor/method
is invoked, the execution will be timed with the respective timer.
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
Denotes whether to use the absolute name or use the default given name relative to the annotated class.
|
String |
description
The description of the timer.
|
String |
displayName
The display name of the timer.
|
String |
name
The name of the timer.
|
String[] |
tags |
String |
unit
The unit of the timer.
|
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.NANOSECONDS.Metadata,
MetricUnitsCopyright © 2017 – 2021 Eclipse Foundation. All rights reserved.
Use is subject to license terms.