Annotation Interface Metric


An annotation requesting that a metric be injected or registered. The metric will be registered in the application MetricRegistry. Given an injected field annotated with @Metric like this:

     @Inject
     @Metric(name="histogram")
     public Histogram histogram;
 
A meter of the field's type will be created and injected into managed objects. It will be up to the user to interact with the metric. This annotation can be used on fields of type Meter, Timer, Counter, and Histogram.

This may also be used to register a metric.


     @Produces
     @Metric(name="hitPercentage")
     @ApplicationScoped
     Gauge<Double> hitPercentage = new Gauge<Double>() {
 
       @Override
       public Double getValue() {
           return hits / total;
       }
     };
 
  • Element Details

    • name

      String name
      Returns:
      The name of the metric.
      Default:
      ""
    • tags

      String[] tags
      Returns:
      The tags of the metric. 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:
      Default:
      {}
    • absolute

      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.
      Default:
      false
    • displayName

      String displayName
      Returns:
      The display name of the metric.
      See Also:
      Default:
      ""
    • description

      String description
      Returns:
      The description of the metric.
      See Also:
      Default:
      ""
    • unit

      String unit
      Returns:
      The unit of the metric. By default, the value is MetricUnits.NONE.
      See Also:
      Default:
      "none"