Annotation Interface ConcurrentGauge
@Inherited
@Documented
@InterceptorBinding
@Retention(RUNTIME)
@Target({TYPE,CONSTRUCTOR,METHOD})
public @interface ConcurrentGauge
An annotation for marking a method, constructor, or class as concurrent gauged.
The metric will be registered in the application MetricRegistry.
A concurrent gauge has the following semantics:
- Upon entering the marked item, the value is increased.
- Upon exiting the marked item, the value is decreased.
Given a method annotated with @ConcurrentGauge like this:
@ConcurrentGauge(name = "fancyName")
public String fancyName(String name) {
return "Sir Captain " + name;
}
A concurrent gauge with the fully qualified class name + fancyName
will be created and each time the
#fancyName(String)
method is invoked, the gauge will be updated.
Similarly, the same applies for a constructor annotated with @ConcurrentGauge.
Given a class annotated with @ConcurrentGauge like this:
@ConcurrentGauge
public class CGaugedBean {
public void cGaugedMethod1() {}
public void cGaugedMethod2() {}
}
A counter for the defining class will be created for each of the constructors/methods.
Each time the constructor/method is invoked, the respective gauge will be updated.
This annotation will throw an IllegalStateException if the constructor/method is invoked, but the metric no
longer exists in the MetricRegistry.- Since:
- 2.0
-
Optional Element Summary
-
Element Details
-
name
String name- Returns:
- The name of the concurrent gauge.
- Default:
- ""
-
tags
String[] tags- Returns:
- The tags of the concurrent gauge. 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. When annotating a class, this must befalse
.
- Default:
- false
-
displayName
String displayName- Returns:
- The display name of the concurrent gauge.
- See Also:
- Default:
- ""
-
description
String description- Returns:
- The description of the concurrent gauge.
- See Also:
- Default:
- ""
-
unit
String unit- Returns:
- The unit of the concurrent gauge. By default, the value is
MetricUnits.NONE
. - See Also:
- Default:
- "none"
-
reusable
boolean reusableDenotes if this metric instance can be reused by multiple registrations.- Returns:
- false if not reusable, true otherwise
- Since:
- Metrics 1.1
- Default:
- false
-