@Inherited
@Documented
@Retention(value=RUNTIME)
@Target(value={TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE})
public @interface SimplyTimed
SimpleTimer
metric tracks elapsed time duration and count. This
is a lightweight alternative to timer
(@Timed
). The metric
will be registered in the application MetricRegistry.
Given a method annotated with @SimplyTimed like this:
@SimplyTimed(name = "fancyName")
public String fancyName(String name) {
return "Sir Captain " + name;
}
A simple 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 @SimplyTimed like this:
@SimplyTimed
public class SimplyTimedBean {
public void simplyTimedMethod1() {}
public void simplyTimedMethod2() {}
}
A simple 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 simple 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 |
java.lang.String |
description |
java.lang.String |
displayName |
java.lang.String |
name |
java.lang.String[] |
tags |
java.lang.String |
unit |
public abstract java.lang.String name
public abstract java.lang.String[] tags
String
tag must be in the form of 'key=value'. If the input is
empty or does not contain a '=' sign, the entry is ignored.Metadata
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 java.lang.String displayName
Metadata
public abstract java.lang.String description
Metadata
public abstract java.lang.String unit
MetricUnits.NANOSECONDS
.Metadata
,
MetricUnits