Annotation Type 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

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean absolute
      Denotes whether to use the absolute name or use the default given name relative to the annotated class.
      java.lang.String description
      The description of the concurrent gauge.
      java.lang.String displayName
      The display name of the concurrent gauge.
      java.lang.String name
      The name of the concurrent gauge.
      boolean reusable
      Denotes if this metric instance can be reused by multiple registrations.
      java.lang.String[] tags
      The tags of the concurrent gauge.
      java.lang.String unit
      The unit of the concurrent gauge.
    • Element Detail

      • name

        java.lang.String name
        The name of the concurrent gauge.
        Returns:
        The name of the concurrent gauge.
        Default:
        ""
      • tags

        java.lang.String[] tags
        The tags of the concurrent gauge.
        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:
        Metadata
        Default:
        {}
      • absolute

        boolean absolute
        Denotes whether to use the absolute name or use the default given name relative to the annotated class.
        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

        java.lang.String displayName
        The display name of the concurrent gauge.
        Returns:
        The display name of the concurrent gauge.
        See Also:
        Metadata
        Default:
        ""
      • description

        java.lang.String description
        The description of the concurrent gauge.
        Returns:
        The description of the concurrent gauge.
        See Also:
        Metadata
        Default:
        ""
      • unit

        java.lang.String unit
        The unit of the concurrent gauge.
        Returns:
        The unit of the concurrent gauge. By default, the value is MetricUnits.NONE.
        See Also:
        Metadata, MetricUnits
        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