Annotation 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
  • 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. If false (default), use the given name relative to the annotated class. When annotating a class, this must be false.
      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 reusable
      Denotes if this metric instance can be reused by multiple registrations.
      Returns:
      false if not reusable, true otherwise
      Since:
      Metrics 1.1
      Default:
      false