代码之家  ›  专栏  ›  技术社区  ›  Ronaldo Lanhellas

千分尺发送测量零弹簧靴

  •  0
  • Ronaldo Lanhellas  · 技术社区  · 6 年前

    我使用spring boot 2+inflox+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>
    

    我有一个收集这些指标并发送到influx的类,请参见:

    @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;
        }
    }
    

    当我向inflix发送一些值时,这非常有效,但是spring一直在未经我允许的情况下发送“零值”,填满了inflix数据库。所以我的涌入显示了这样的情况:

    0
    0
    0
    334 (My sent value)
    0
    0
    0
    0
    0
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Sanjari    6 年前

    您可以在yml文件中这样配置。

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

    步长值应与预期流量相关。所以你看不到90%的零。