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

public @Interface Counted

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 counted. The metric will be registered in the application MetricRegistry.

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. 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 counter.
description
()

The description of the counter.

public String

Returns:

The name of the counter.
name
()

The name of the counter.

public String

Returns:

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

The scope that this counter belongs to.

public String[]

Returns:

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

The tags of the counter.

public String

Returns:

The unit of the counter. By default, the value is MetricUnits#NONE.
unit
()

The unit of the counter.

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

Returns:String

The description of the counter.

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

The name of the counter.

Returns:String

The name of the counter.

Annotations
@Nonbinding
scopeback to summary
public String scope()

The scope that this counter belongs to.

Returns:String

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

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

The tags of the counter.

Returns:String[]

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

Returns:String

The unit of the counter. By default, the value is MetricUnits#NONE.

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