在 spring-boot 中为 http.server.requests 配置分布统计
Configure distribution statistic for http.server.requests in spring-boot
有没有办法为 http.server.requests
指标配置分布统计过期和缓冲区长度?
我需要增加到期时间,但找不到使用 spring 引导执行器执行此操作的正确方法。是否可以配置这些设置?
你应该看看 DistributionStatisticConfig。 DEFAULT
实例的创建展示了如何设置 expiry
和 bufferLength
.
在 Spring 引导中,您只需在 @SpringBootApplication
或 @Configuration
class.
中注册一个 bean MeterRegistryCustomizer
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
@Bean
public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
return registry -> registry.config()
.commonTags("myTag", myTagValue)
.meterFilter(new MeterFilter() {
@Override
public DistributionStatisticConfig configure(Meter.Id id,
DistributionStatisticConfig config) {
if (id.getName().startsWith("http.server.requests")) {
return config.merge(DistributionStatisticConfig.builder()
.percentilesHistogram(true)
.percentiles(0.5, 0.9, 0.99)
.percentilePrecision(1)
.minimumExpectedValue(1L)
.maximumExpectedValue(Long.MAX_VALUE)
.expiry(Duration.ofMinutes(1))
.bufferLength(2)
.build());
}
return config;
}
});
}
你也可以在千分尺Slack channel上问。
有没有办法为 http.server.requests
指标配置分布统计过期和缓冲区长度?
我需要增加到期时间,但找不到使用 spring 引导执行器执行此操作的正确方法。是否可以配置这些设置?
你应该看看 DistributionStatisticConfig。 DEFAULT
实例的创建展示了如何设置 expiry
和 bufferLength
.
在 Spring 引导中,您只需在 @SpringBootApplication
或 @Configuration
class.
MeterRegistryCustomizer
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
@Bean
public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
return registry -> registry.config()
.commonTags("myTag", myTagValue)
.meterFilter(new MeterFilter() {
@Override
public DistributionStatisticConfig configure(Meter.Id id,
DistributionStatisticConfig config) {
if (id.getName().startsWith("http.server.requests")) {
return config.merge(DistributionStatisticConfig.builder()
.percentilesHistogram(true)
.percentiles(0.5, 0.9, 0.99)
.percentilePrecision(1)
.minimumExpectedValue(1L)
.maximumExpectedValue(Long.MAX_VALUE)
.expiry(Duration.ofMinutes(1))
.bufferLength(2)
.build());
}
return config;
}
});
}
你也可以在千分尺Slack channel上问。