Annotation Interface Metric
@InterceptorBinding
@Retention(RUNTIME)
@Target({METHOD,FIELD,PARAMETER,ANNOTATION_TYPE})
public @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;
}
};
-
Optional Element Summary
-
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. Iffalse
(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"
-