Interface Timer

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  Timer.Builder
      Fluent builder for timers.
      static class  Timer.Sample
      Maintains state on the clock's start position for a latency sample.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods Deprecated Methods 
      Modifier and Type Method Description
      java.util.concurrent.TimeUnit baseTimeUnit()  
      static Timer.Builder builder​(Timed timed, java.lang.String defaultName)
      Create a timer builder from a Timed annotation.
      static Timer.Builder builder​(java.lang.String name)  
      long count()  
      default double histogramCountAtValue​(long valueNanos)
      Deprecated.
      Use HistogramSupport.takeSnapshot() to retrieve bucket counts.
      double max​(java.util.concurrent.TimeUnit unit)  
      default double mean​(java.util.concurrent.TimeUnit unit)  
      default java.lang.Iterable<Measurement> measure()
      Get a set of measurements.
      default double percentile​(double percentile, java.util.concurrent.TimeUnit unit)
      Deprecated.
      Use HistogramSupport.takeSnapshot() to retrieve bucket counts.
      void record​(long amount, java.util.concurrent.TimeUnit unit)
      Updates the statistics kept by the timer with the specified amount.
      void record​(java.lang.Runnable f)
      Executes the runnable f and records the time taken.
      default void record​(java.time.Duration duration)
      Updates the statistics kept by the timer with the specified amount.
      <T> T record​(java.util.function.Supplier<T> f)
      Executes the Supplier f and records the time taken.
      <T> T recordCallable​(java.util.concurrent.Callable<T> f)
      Executes the callable f and records the time taken.
      static Timer.Sample start()
      Start a timing sample.
      static Timer.Sample start​(Clock clock)
      Start a timing sample.
      static Timer.Sample start​(MeterRegistry registry)
      Start a timing sample.
      double totalTime​(java.util.concurrent.TimeUnit unit)  
      default java.lang.Runnable wrap​(java.lang.Runnable f)
      Wrap a Runnable so that it is timed when invoked.
      default <T> java.util.concurrent.Callable<T> wrap​(java.util.concurrent.Callable<T> f)
      Wrap a Callable so that it is timed when invoked.
      default <T> java.util.function.Supplier<T> wrap​(java.util.function.Supplier<T> f)
      Wrap a Supplier so that it is timed when invoked.
    • Method Detail

      • start

        static Timer.Sample start()
        Start a timing sample.
        Returns:
        A timing sample with start time recorded.
        Since:
        1.1.0
      • start

        static Timer.Sample start​(MeterRegistry registry)
        Start a timing sample.
        Parameters:
        registry - a meter registry to be used
        Returns:
        A timing sample with start time recorded.
      • start

        static Timer.Sample start​(Clock clock)
        Start a timing sample.
        Parameters:
        clock - a clock to be used
        Returns:
        A timing sample with start time recorded.
      • builder

        static Timer.Builder builder​(java.lang.String name)
      • builder

        static Timer.Builder builder​(Timed timed,
                                     java.lang.String defaultName)
        Create a timer builder from a Timed annotation.
        Parameters:
        timed - The annotation instance to base a new timer on.
        defaultName - A default name to use in the event that the value attribute is empty.
        Returns:
        This builder.
      • record

        void record​(long amount,
                    java.util.concurrent.TimeUnit unit)
        Updates the statistics kept by the timer with the specified amount.
        Parameters:
        amount - Duration of a single event being measured by this timer. If the amount is less than 0 the value will be dropped.
        unit - Time unit for the amount being recorded.
      • record

        default void record​(java.time.Duration duration)
        Updates the statistics kept by the timer with the specified amount.
        Parameters:
        duration - Duration of a single event being measured by this timer.
      • record

        <T> T record​(java.util.function.Supplier<T> f)
        Executes the Supplier f and records the time taken.
        Type Parameters:
        T - The return type of the Supplier.
        Parameters:
        f - Function to execute and measure the execution time.
        Returns:
        The return value of f.
      • recordCallable

        <T> T recordCallable​(java.util.concurrent.Callable<T> f)
                      throws java.lang.Exception
        Executes the callable f and records the time taken.
        Type Parameters:
        T - The return type of the Callable.
        Parameters:
        f - Function to execute and measure the execution time.
        Returns:
        The return value of f.
        Throws:
        java.lang.Exception - Any exception bubbling up from the callable.
      • record

        void record​(java.lang.Runnable f)
        Executes the runnable f and records the time taken.
        Parameters:
        f - Function to execute and measure the execution time.
      • wrap

        default java.lang.Runnable wrap​(java.lang.Runnable f)
        Wrap a Runnable so that it is timed when invoked.
        Parameters:
        f - The Runnable to time when it is invoked.
        Returns:
        The wrapped Runnable.
      • wrap

        default <T> java.util.concurrent.Callable<T> wrap​(java.util.concurrent.Callable<T> f)
        Wrap a Callable so that it is timed when invoked.
        Type Parameters:
        T - The return type of the callable.
        Parameters:
        f - The Callable to time when it is invoked.
        Returns:
        The wrapped callable.
      • wrap

        default <T> java.util.function.Supplier<T> wrap​(java.util.function.Supplier<T> f)
        Wrap a Supplier so that it is timed when invoked.
        Type Parameters:
        T - The return type of the Supplier result.
        Parameters:
        f - The Supplier to time when it is invoked.
        Returns:
        The wrapped supplier.
        Since:
        1.2.0
      • count

        long count()
        Returns:
        The number of times that stop has been called on this timer.
      • totalTime

        double totalTime​(java.util.concurrent.TimeUnit unit)
        Parameters:
        unit - The base unit of time to scale the total to.
        Returns:
        The total time of recorded events.
      • mean

        default double mean​(java.util.concurrent.TimeUnit unit)
        Parameters:
        unit - The base unit of time to scale the mean to.
        Returns:
        The distribution average for all recorded events.
      • max

        double max​(java.util.concurrent.TimeUnit unit)
        Parameters:
        unit - The base unit of time to scale the max to.
        Returns:
        The maximum time of a single event.
      • measure

        default java.lang.Iterable<Measurement> measure()
        Description copied from interface: Meter
        Get a set of measurements. Should always return the same number of measurements and in the same order, regardless of the level of activity or the lack thereof.
        Specified by:
        measure in interface Meter
        Returns:
        The set of measurements that represents the instantaneous value of this meter.
      • histogramCountAtValue

        @Deprecated
        default double histogramCountAtValue​(long valueNanos)
        Deprecated.
        Use HistogramSupport.takeSnapshot() to retrieve bucket counts.
        Provides cumulative histogram counts.
        Parameters:
        valueNanos - The histogram bucket to retrieve a count for.
        Returns:
        The count of all events less than or equal to the bucket. If valueNanos does not match a preconfigured bucket boundary, returns NaN.
      • percentile

        @Deprecated
        default double percentile​(double percentile,
                                  java.util.concurrent.TimeUnit unit)
        Deprecated.
        Use HistogramSupport.takeSnapshot() to retrieve bucket counts.
        Parameters:
        percentile - A percentile in the domain [0, 1]. For example, 0.5 represents the 50th percentile of the distribution.
        unit - The base unit of time to scale the percentile value to.
        Returns:
        The latency at a specific percentile. This value is non-aggregable across dimensions. Returns NaN if percentile is not a preconfigured percentile that Micrometer is tracking.
      • baseTimeUnit

        java.util.concurrent.TimeUnit baseTimeUnit()
        Returns:
        The base time unit of the timer to which all published metrics will be scaled