Package io.micrometer.core.instrument
Class Timer.Builder
java.lang.Object
io.micrometer.core.instrument.AbstractTimerBuilder<Timer.Builder>
io.micrometer.core.instrument.Timer.Builder
- Enclosing interface:
Timer
Fluent builder for timers.
-
Field Summary
Fields inherited from class io.micrometer.core.instrument.AbstractTimerBuilder
description, distributionConfigBuilder, name, pauseDetector, tags -
Method Summary
Modifier and TypeMethodDescriptiondescription(@Nullable String description) 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).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).maximumExpectedValue(@Nullable Duration max) Sets the maximum value that this timer is expected to observe.minimumExpectedValue(@Nullable Duration min) Sets the minimum value that this timer is expected to observe.pauseDetector(@Nullable PauseDetector pauseDetector) Sets the pause detector implementation to use for this timer.percentilePrecision(@Nullable Integer digitsOfPrecision) Determines the number of digits of precision to maintain on the dynamic range histogram used to compute percentile approximations.Adds histogram buckets used to generate aggregable percentile approximations in monitoring systems that have query facilities to do so (e.g.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.publishPercentiles(double @Nullable ... percentiles) Produces an additional time series for each requested percentile.register(MeterRegistry registry) Add the timer to a single registry, or return an existing timer in that registry.serviceLevelObjectives(Duration @Nullable ... slos) Publish at a minimum a histogram containing your defined service level objective (SLO) boundaries.Publish at a minimum a histogram containing your defined service level objective (SLO) boundaries.withRegistry(MeterRegistry registry) Convenience method to create meters from the builder that only differ in tags.
-
Method Details
-
tags
- Overrides:
tagsin classAbstractTimerBuilder<Timer.Builder>- Parameters:
tags- Must be an even number of arguments representing key/value pairs of tags.- Returns:
- This builder.
-
tags
- Overrides:
tagsin classAbstractTimerBuilder<Timer.Builder>- Parameters:
tags- Tags to add to the eventual timer.- Returns:
- The timer builder with added tags.
-
tag
- Overrides:
tagin classAbstractTimerBuilder<Timer.Builder>- Parameters:
key- The tag key.value- The tag value.- Returns:
- The timer builder with a single added tag.
-
publishPercentiles
Description copied from class:AbstractTimerBuilderProduces 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). UseAbstractTimerBuilder.publishPercentileHistogram()to publish a histogram that can be used to generate aggregable percentile approximations.- Overrides:
publishPercentilesin classAbstractTimerBuilder<Timer.Builder>- Parameters:
percentiles- Percentiles to compute and publish. The 95th percentile should be expressed as0.95.- Returns:
- This builder.
-
percentilePrecision
Description copied from class:AbstractTimerBuilderDetermines 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.- Overrides:
percentilePrecisionin classAbstractTimerBuilder<Timer.Builder>- Parameters:
digitsOfPrecision- The digits of precision to maintain for percentile approximations.- Returns:
- This builder.
-
publishPercentileHistogram
Description copied from class:AbstractTimerBuilderAdds 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).- Overrides:
publishPercentileHistogramin classAbstractTimerBuilder<Timer.Builder>- Returns:
- This builder.
-
publishPercentileHistogram
Description copied from class:AbstractTimerBuilderAdds 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).- Overrides:
publishPercentileHistogramin classAbstractTimerBuilder<Timer.Builder>- Parameters:
enabled- Determines whether percentile histograms should be published.- Returns:
- This builder.
-
sla
Description copied from class:AbstractTimerBuilderPublish at a minimum a histogram containing your defined service level objective (SLO) boundaries. When used in conjunction withAbstractTimerBuilder.publishPercentileHistogram(), the boundaries defined here are included alongside other buckets used to generate aggregable percentile approximations.- Overrides:
slain classAbstractTimerBuilder<Timer.Builder>- Parameters:
sla- Publish SLO boundaries in the set of histogram buckets shipped to the monitoring system.- Returns:
- This builder.
-
serviceLevelObjectives
Description copied from class:AbstractTimerBuilderPublish at a minimum a histogram containing your defined service level objective (SLO) boundaries. When used in conjunction withAbstractTimerBuilder.publishPercentileHistogram(), the boundaries defined here are included alongside other buckets used to generate aggregable percentile approximations.- Overrides:
serviceLevelObjectivesin classAbstractTimerBuilder<Timer.Builder>- Parameters:
slos- Publish SLO boundaries in the set of histogram buckets shipped to the monitoring system.- Returns:
- This builder.
-
minimumExpectedValue
Description copied from class:AbstractTimerBuilderSets 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.- Overrides:
minimumExpectedValuein classAbstractTimerBuilder<Timer.Builder>- Parameters:
min- The minimum value that this timer is expected to observe.- Returns:
- This builder.
-
maximumExpectedValue
Description copied from class:AbstractTimerBuilderSets 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.- Overrides:
maximumExpectedValuein classAbstractTimerBuilder<Timer.Builder>- Parameters:
max- The maximum value that this timer is expected to observe.- Returns:
- This builder.
-
distributionStatisticExpiry
Description copied from class:AbstractTimerBuilderStatistics 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 ofAbstractTimerBuilder.distributionStatisticBufferLength(Integer), hence complete expiry happens after this expiry * buffer length.- Overrides:
distributionStatisticExpiryin classAbstractTimerBuilder<Timer.Builder>- Parameters:
expiry- The amount of time samples are accumulated to a histogram before it is reset and rotated.- Returns:
- This builder.
-
distributionStatisticBufferLength
Description copied from class:AbstractTimerBuilderStatistics 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 afterAbstractTimerBuilder.distributionStatisticExpiry(Duration), with this buffer length.- Overrides:
distributionStatisticBufferLengthin classAbstractTimerBuilder<Timer.Builder>- Parameters:
bufferLength- The number of histograms to keep in the ring buffer.- Returns:
- This builder.
-
pauseDetector
Description copied from class:AbstractTimerBuilderSets the pause detector implementation to use for this timer. Can also be configured on a registry-level withMeterRegistry.Config.pauseDetector(PauseDetector).- Overrides:
pauseDetectorin classAbstractTimerBuilder<Timer.Builder>- Parameters:
pauseDetector- The pause detector implementation to use.- Returns:
- This builder.
- See Also:
-
description
- Overrides:
descriptionin classAbstractTimerBuilder<Timer.Builder>- Parameters:
description- Description text of the eventual timer.- Returns:
- This builder.
-
withRegistry
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 returnedMeter.MeterProvider.- Parameters:
registry- A registry to add the meter to, if it doesn't already exist.- Returns:
- A
Meter.MeterProviderthat returns a meter based on the provided tags. - Since:
- 1.12.0
-
register
Add the timer to a single registry, or return an existing timer in that registry. The returned timer will be unique for each registry, but each registry is guaranteed to only create one timer for the same combination of name and tags.- Parameters:
registry- A registry to add the timer to, if it doesn't already exist.- Returns:
- A new or existing timer.
-