Annotation Type Metered


  • @Inherited
    @Documented
    @InterceptorBinding
    @Retention(RUNTIME)
    @Target({TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE})
    public @interface Metered
    An annotation for marking a method, constructor, or class as metered. The metric will be registered in the application MetricRegistry.

    Given a method annotated with @Metered like this:

    
         @Metered(name = "fancyName")
         public String fancyName(String name) {
             return "Sir Captain " + name;
         }
     
    A meter with the fully qualified class name + fancyName will be created and each time the #fancyName(String) method is invoked, the meter will be marked. Similarly, the same applies for a constructor annotated with metered.

    Given a class annotated with @Metered like this:

    
         @Metered
         public class MeteredBean {
             public void meteredMethod1() {}
             public void meteredMethod2() {}
         }
     
    A meter for the defining class will be created for each of the constructors/methods. Each time a constructor/method is invoked, the respective meter will be marked. This annotation will throw an IllegalStateException if the constructor/method is invoked, but the metric no longer exists in the MetricRegistry.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean absolute  
      java.lang.String description
      The description of the meter.
      java.lang.String displayName
      The display name of the meter.
      java.lang.String name  
      boolean reusable
      Denotes if this metric instance can be reused by multiple registrations.
      java.lang.String[] tags  
      java.lang.String unit
      The unit of the meter.
    • Element Detail

      • name

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

        java.lang.String[] tags
        Returns:
        The tags of the meter. 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
        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 meter.
        Returns:
        The display name of the meter.
        See Also:
        Metadata
        Default:
        ""
      • description

        java.lang.String description
        The description of the meter.
        Returns:
        The description of the meter.
        See Also:
        Metadata
        Default:
        ""
      • 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