Настроить статистику распределения для http.server.requests в spring -boot

Есть ли способ настроить срок действия статистики распределения и длину буфера для http.server.requests показателей?

Мне нужно увеличить срок годности, и я не смог найти правильный способ сделать это с приводом пружинного пыльника. Можно ли настроить эти параметры?


person Ivan Nakov    schedule 27.03.2019    source источник
comment
Пожалуйста, добавьте более подробную информацию и поделитесь тем, что вы пробовали, если таковые имеются.   -  person Patel Romil    schedule 27.03.2019
comment
Таймеры микрометра могут увеличивать distributionStatisticExpiry и distributionStatisticBufferLength, но я не могу найти способ установить эти настройки для моих процентилей в http.server.requests весенней загрузки. Я хочу увеличить окно в процентилях, рассчитанных для http.server.requests, и не могу найти правильный способ сделать это.   -  person Ivan Nakov    schedule 27.03.2019


Ответы (1)


Вам следует посмотреть DistributionStatisticConfig. Создание экземпляра DEFAULT показывает, как установить expiry и bufferLength.

Все, что вам нужно сделать в Spring Boot, - это зарегистрировать bean MeterRegistryCustomizer в своем классе @SpringBootApplication или @Configuration.

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 Micrometer.

person lu_ko    schedule 28.05.2019