Top Description Methods
org.eclipse.microprofile.metrics.annotation

public @Interface Timed

extends Annotation
Annotations
@Inherited
@Documented
@InterceptorBinding
@Retention:RUNTIME
@Target:TYPE, CONSTRUCTOR, METHOD, ANNOTATION_TYPE
Imports
java.lang.annotation.Documented, .ElementType, .Inherited, .Retention, .RetentionPolicy, .Target, org.eclipse.microprofile.metrics.MetricRegistry, .MetricUnits, jakarta.enterprise.util.Nonbinding, jakarta.interceptor.InterceptorBinding

An annotation for marking a method, constructor, or class as timed. The underlying Timer metric aggregates timing durations and provides duration statistics.

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.

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

If 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.
absolute
()

Denotes whether to use the absolute name or use the default given name relative to the annotated class.

public String

Returns:

The description of the timer.
description
()

The description of the timer.

public String

Returns:

The name of the timer.
name
()

The name of the timer.

public String

Returns:

The scope this Timer belongs to. By default, the value is MetricRegistry#APPLICATION_SCOPE.
scope
()

The scope that this Timer belongs to.

public String[]

Returns:

The tags of the timer. Each 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.
tags
()

public String

Returns:

The unit of the timer. By default, the value is MetricUnits#NANOSECONDS.
unit
()

The unit of the timer.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

absoluteback to summary
public boolean absolute()

Denotes whether to use the absolute name or use the default given name relative to the annotated class.

Returns:boolean

If 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.

Annotations
@Nonbinding
descriptionback to summary
public String description()

The description of the timer.

Returns:String

The description of the timer.

Annotations
@Nonbinding
See Also
org.eclipse.microprofile.metrics.Metadata
nameback to summary
public String name()

The name of the timer.

Returns:String

The name of the timer.

Annotations
@Nonbinding
scopeback to summary
public String scope()

The scope that this Timer belongs to.

Returns:String

The scope this Timer belongs to. By default, the value is MetricRegistry#APPLICATION_SCOPE.

Annotations
@Nonbinding
tagsback to summary
public String[] tags()
Returns:String[]

The tags of the timer. Each 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.

Annotations
@Nonbinding
See Also
org.eclipse.microprofile.metrics.Metadata
unitback to summary
public String unit()

The unit of the timer.

Returns:String

The unit of the timer. By default, the value is MetricUnits#NANOSECONDS.

Annotations
@Nonbinding
See Also
org.eclipse.microprofile.metrics.Metadata, org.eclipse.microprofile.metrics.MetricUnits