Микрометр отправляет нулевые метрики - Spring Boot

Я использую Spring Boot 2 + Influx + Spring AOP для сбора показателей в моей системе.

Так что я:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>


        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-influx</artifactId>
        </dependency>

У меня есть класс, который собирает эти метрики и отправляет их на приток, см.:

@Aspect
@Configuration
@RequiredArgsConstructor
@Slf4j
public class TimerCounterAspect {

    private final MicrometerFactory micrometerFactory;

    @Around("@annotation(br.com.myproject.TimerCount)")
    public Object around(ProceedingJoinPoint joinPoint) {
        Timer.Sample sample = micrometerFactory.starTimer();
        micrometerFactory.counterIncrement(joinPoint.getTarget().getClass());
        Object oReturn;
        try {
            oReturn = joinPoint.proceed();
        } catch (Throwable throwable) {
            micrometerFactory.counterErrorIncrement(joinPoint.getTarget().getClass());
            log.error("Falha ao processar JoinPoint", throwable);
            throw new RuntimeException(throwable);
        } finally {
            micrometerFactory.stopTimer(joinPoint.getTarget().getClass(), sample);
        }

        return oReturn;
    }
}

Когда я отправляю какое-то значение для притока, это работает очень хорошо, но весна продолжает отправлять «нулевые значения» без моего разрешения, заполняя мою базу данных о притоке. Итак, мой InfluxDB показывает что-то вроде этого:

0
0
0
334 (My sent value)
0
0
0
0
0

person Ronaldo Lanhellas    schedule 06.11.2018    source источник


Ответы (1)


Вы можете настроить так в файле yml.

management:
  metrics:
    export:
      influx:
        uri: http://localhost:8086
        db: mydbName
        step: 10s  

значение шага должно быть связано с ожидаемым трафиком. Чтобы там не было 90% нулей.

person Sanjari    schedule 06.11.2018
comment
Это не решит мою проблему и не создаст другую. 1) Используя 10 с в шаге, накапливайте значения. 2) Если через 10 секунд нет метрической пружины, будет отправлен ноль. - person Ronaldo Lanhellas; 06.11.2018
comment
А пока обратитесь к touk.pl/blog/2018/03/05/ Постараюсь подробнее изучить это. - person Sanjari; 06.11.2018
comment
Я получаю ошибку ниже, не могли бы вы помочь мне, и я настроил в yml файле [SpringContextShutdownHook] ОШИБКА i.m.influx.InfluxMeterRegistry - не удалось отправить метрики на приток java.net.SocketTimeoutException: время чтения истекло - person nitinsridar; 06.05.2020