在 spring-boot 中为 http.server.requests 配置分布统计

Configure distribution statistic for http.server.requests in spring-boot

有没有办法为 http.server.requests 指标配置分布统计过期和缓冲区长度?

我需要增加到期时间,但找不到使用 spring 引导执行器执行此操作的正确方法。是否可以配置这些设置?

你应该看看 DistributionStatisticConfigDEFAULT 实例的创建展示了如何设置 expirybufferLength.

在 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上问。