Class LongTaskTimer.Builder

java.lang.Object
io.micrometer.core.instrument.LongTaskTimer.Builder
Enclosing interface:
LongTaskTimer

public static class LongTaskTimer.Builder extends Object
Fluent builder for long task timers.
  • Method Details

    • tags

      public LongTaskTimer.Builder tags(String... tags)
      Parameters:
      tags - Must be an even number of arguments representing key/value pairs of tags.
      Returns:
      The long task timer builder with added tags.
    • tags

      public LongTaskTimer.Builder tags(Iterable<Tag> tags)
      Parameters:
      tags - Tags to add to the eventual long task timer.
      Returns:
      The long task timer builder with added tags.
    • tag

      public LongTaskTimer.Builder tag(String key, String value)
      Parameters:
      key - The tag key.
      value - The tag value.
      Returns:
      The long task timer builder with a single added tag.
    • description

      public LongTaskTimer.Builder description(@Nullable String description)
      Parameters:
      description - Description text of the eventual long task timer.
      Returns:
      The long task timer builder with added description.
    • serviceLevelObjectives

      public LongTaskTimer.Builder serviceLevelObjectives(@Nullable Duration... slos)
      Publish at a minimum a histogram containing your defined service level objective (SLO) boundaries. When used in conjunction with publishPercentileHistogram(), the boundaries defined here are included alongside other buckets used to generate aggregable percentile approximations.
      Parameters:
      slos - Publish SLO boundaries in the set of histogram buckets shipped to the monitoring system.
      Returns:
      This builder.
      Since:
      1.5.0
    • minimumExpectedValue

      public LongTaskTimer.Builder minimumExpectedValue(@Nullable Duration min)
      Sets the minimum value that this timer is expected to observe. Sets a lower bound on histogram buckets that are shipped to monitoring systems that support aggregable percentile approximations.
      Parameters:
      min - The minimum value that this timer is expected to observe.
      Returns:
      This builder.
      Since:
      1.5.0
    • maximumExpectedValue

      public LongTaskTimer.Builder maximumExpectedValue(@Nullable Duration max)
      Sets the maximum value that this timer is expected to observe. Sets an upper bound on histogram buckets that are shipped to monitoring systems that support aggregable percentile approximations.
      Parameters:
      max - The maximum value that this timer is expected to observe.
      Returns:
      This builder.
      Since:
      1.5.0
    • distributionStatisticExpiry

      public LongTaskTimer.Builder distributionStatisticExpiry(@Nullable Duration expiry)
      Statistics emanating from a timer like max, percentiles, and histogram counts decay over time to give greater weight to recent samples (exception: histogram counts are cumulative for those systems that expect cumulative histogram buckets). Samples are accumulated to such statistics in ring buffers which rotate after this expiry, with a buffer length of distributionStatisticBufferLength(Integer).
      Parameters:
      expiry - The amount of time samples are accumulated to a histogram before it is reset and rotated.
      Returns:
      This builder.
      Since:
      1.5.0
    • distributionStatisticBufferLength

      public LongTaskTimer.Builder distributionStatisticBufferLength(@Nullable Integer bufferLength)
      Statistics emanating from a timer like max, percentiles, and histogram counts decay over time to give greater weight to recent samples (exception: histogram counts are cumulative for those systems that expect cumulative histogram buckets). Samples are accumulated to such statistics in ring buffers which rotate after distributionStatisticExpiry(Duration), with this buffer length.
      Parameters:
      bufferLength - The number of histograms to keep in the ring buffer.
      Returns:
      This builder.
      Since:
      1.5.0
    • publishPercentiles

      public LongTaskTimer.Builder publishPercentiles(@Nullable double... percentiles)
      Produces an additional time series for each requested percentile. This percentile is computed locally, and so can't be aggregated with percentiles computed across other dimensions (e.g. in a different instance). Use publishPercentileHistogram() to publish a histogram that can be used to generate aggregable percentile approximations.
      Parameters:
      percentiles - Percentiles to compute and publish. The 95th percentile should be expressed as 0.95.
      Returns:
      This builder.
      Since:
      1.5.0
    • percentilePrecision

      public LongTaskTimer.Builder percentilePrecision(@Nullable Integer digitsOfPrecision)
      Determines the number of digits of precision to maintain on the dynamic range histogram used to compute percentile approximations. The higher the degrees of precision, the more accurate the approximation is at the cost of more memory.
      Parameters:
      digitsOfPrecision - The digits of precision to maintain for percentile approximations.
      Returns:
      This builder.
      Since:
      1.5.0
    • publishPercentileHistogram

      public LongTaskTimer.Builder publishPercentileHistogram()
      Adds histogram buckets used to generate aggregable percentile approximations in monitoring systems that have query facilities to do so (e.g. Prometheus' histogram_quantile, Atlas' :percentiles).
      Returns:
      This builder.
      Since:
      1.5.0
    • publishPercentileHistogram

      public LongTaskTimer.Builder publishPercentileHistogram(@Nullable Boolean enabled)
      Adds histogram buckets used to generate aggregable percentile approximations in monitoring systems that have query facilities to do so (e.g. Prometheus' histogram_quantile, Atlas' :percentiles).
      Parameters:
      enabled - Determines whether percentile histograms should be published.
      Returns:
      This builder.
      Since:
      1.5.0
    • withRegistry

      public Meter.MeterProvider<LongTaskTimer> withRegistry(MeterRegistry registry)
      Convenience method to create meters from the builder that only differ in tags. This method can be used for dynamic tagging by creating the builder once and applying the dynamically changing tags using the returned Meter.MeterProvider.
      Parameters:
      registry - A registry to add the meter to, if it doesn't already exist.
      Returns:
      A Meter.MeterProvider that returns a meter based on the provided tags.
      Since:
      1.12.0
    • register

      public LongTaskTimer register(MeterRegistry registry)
      Add the long task timer to a single registry, or return an existing long task timer in that registry. The returned long task timer will be unique for each registry, but each registry is guaranteed to only create one long task timer for the same combination of name and tags.
      Parameters:
      registry - A registry to add the long task timer to, if it doesn't already exist.
      Returns:
      A new or existing long task timer.