org.eclipse.microprofile.metrics.annotation

## Annotation Type Metered

    @Inherited
     @Documented
     @InterceptorBinding
     @Retention(value=RUNTIME)
     @Target(value={TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE})
    public @interface Metered

An annotation for marking a method, constructor, or class as metered. The metric will be registered in the application MetricRegistry.

Given a method annotated with @Metered like this:

          @Metered(name = "fancyName")
         public String fancyName(String name) {
             return "Sir Captain " + name;
         }

A meter with the fully qualified class name + `fancyName` will be created and each time the `#fancyName(String)` method is invoked, the meter will be marked. Similarly, the same applies for a constructor annotated with metered.

Given a class annotated with @Metered like this:

          @Metered
         public class MeteredBean {
             public void meteredMethod1() {}
             public void meteredMethod2() {}
         }

A meter for the defining class will be created for each of the constructors/methods. Each time a constructor/method is invoked, the respective meter will be marked. This annotation will throw an IllegalStateException if the constructor/method is invoked, but the metric no longer exists in the MetricRegistry.

### Optional Element Summary

Optional Elements
`boolean` `absolute`
`String` `description` The description of the meter.
`String` `displayName` The display name of the meter.
`String` `name`
`String[]` `tags`
`String` `unit` The unit of the meter.

### Element Detail

#### name

    public abstract String name

Returns:
  The name of the meter.

Default:
  ""

#### tags

    public abstract String[] tags

Returns:
  The tags of the meter. 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.
See Also:
  `Metadata`

Default:
  {}

#### absolute

    public abstract boolean absolute

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

Default:
  false

#### displayName

    public abstract String displayName

The display name of the meter.

Returns:
  The display name of the meter.
See Also:
  `Metadata`

Default:
  ""

#### description

    public abstract String description

The description of the meter.

Returns:
  The description of the meter.
See Also:
  `Metadata`

Default:
  ""

#### unit

    public abstract String unit

The unit of the meter.

Returns:
  The unit of the meter. By default, the value is `MetricUnits.PER_SECOND`.
See Also:
  `Metadata`, `MetricUnits`

Default:
  "per_second"