Annotation Type Timed


  • @Inherited
    @Documented
    @InterceptorBinding
    @Retention(RUNTIME)
    @Target({TYPE,CONSTRUCTOR,METHOD,ANNOTATION_TYPE})
    public @interface Timed
    An annotation for marking a method, constructor, or class as timed. The underlying Timer metric aggregates timing durations and provides duration statistics.

    Given a method annotated with @Timed like this:

     
         @Timed(name = "fancyName")
         public String fancyName(String name) {
             return "Sir Captain " + name;
         }
     
     
    A timer with the fully qualified class name + fancyName will be created and each time the #fancyName(String) method is invoked, the method's execution will be timed.

    Given a class annotated with @Timed like this:

     
         @Timed
         public class TimedBean {
             public void timedMethod1() {}
             public void timedMethod2() {}
         }
     
     
    A timer for the defining class will be created for each of the constructors/methods. Each time a constructor/method is invoked, the execution will be timed with the respective timer. 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
      Denotes whether to use the absolute name or use the default given name relative to the annotated class.
      String description
      The description of the timer.
      String name
      The name of the timer.
      String scope
      The scope that this Timer belongs to.
      String[] tags  
      String unit
      The unit of the timer.
    • Element Detail

      • name

        String name
        The name of the timer.
        Returns:
        The name of the timer.
        Default:
        ""
      • tags

        String[] tags
        Returns:
        The tags of the timer. 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
      • description

        String description
        The description of the timer.
        Returns:
        The description of the timer.
        See Also:
        Metadata
        Default:
        ""