@Version("5.0.1")

Package org.eclipse.microprofile.metrics.annotation

This package contains the annotations used for MicroProfile Metrics.

Metric Annotation

The Metric annotation is used to provide metadata for the metric being injected. If a metric with the same name exists in the MetricRegistry, the metric is returned. Otherwise, a new metric is registered into the MetricRegistry along with the metadata provided by the @Metric annotation.

For example,

 
     @Inject
     @Metric(name="histogram", description="The description")
     public Histogram histogram;
 
 

Interceptor Bindings

MicroProfile Metrics provides interceptor bindings which can be used to instrument an application: @Counted, @Gauge and @Timed

An example using @Counted,

 
     @Counted (name="visitorCount",
         description="The number of visitors to the application")
     public void visit () {
         ...
     }
 
 

An example using @Gauge,

 
     @Gauge(name = "queueSize")
     public int getQueueSize() {
         return queue.size;
     }
 
 

RegistryScope annotation

The RegistryScope is used to identify which MetricRegistry (Application, Base, Vendor or a user-defined scope) should be injected. Injecting a MetricRegistry without a RegistryScope annotation gives the application-scoped MetricRegistry.

 
      @Inject
      @RegistryScope(scope=MetricRegistry.APPLICATION_SCOPE)
      MetricRegistry appRegistry;
 
 

RegistryType CDI Qualifier

This is DEPRECATED. Please use RegistryScope instead. The RegistryType is used to identify which MetricRegistry (Application, Base, or Vendor) should be injected. Injecting a MetricRegistry without a RegistryType annotation gives the application-scoped MetricRegistry.

 
      @Inject
      @RegistryType(type=MetricRegistry.Type.BASE)
      MetricRegistry baseRegistry;