【问题标题】:Micrometer sending metrics zero - Spring Boot千分尺发送指标为零 - Spring Boot
【发布时间】:2019-04-10 04:26:58
【问题描述】:

我正在使用 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>

我有一个类可以收集这些指标并发送给 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;
    }
}

当我向 influx 发送一些值时,这非常有效,但是 spring 在未经我许可的情况下继续发送“零值”,填充我的 influx 数据库。所以我的 influxDB 显示如下:

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

【问题讨论】:

    标签: spring spring-boot influxdb micrometer spring-micrometer


    【解决方案1】:

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

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

    步长值应与您的预期流量相关。这样你就不会在那里看到 90% 的零。

    【讨论】:

    • 这并不能解决我的问题并创建另一个问题。 1) 使用 10s 逐步累积值。 2)如果在 10 秒内没有任何公制弹簧将发送零。
    • 现在请参考touk.pl/blog/2018/03/05/… 将尝试对此进行更多调查。
    • 我遇到以下错误,你能帮帮我吗?我已经在 yml 文件中配置了 [SpringContextShutdownHook] 错误 iminflux.InfluxMeterRegistry - 无法将指标发送到流入 java.net.SocketTimeoutException: 读取超时
    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 2019-02-22
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2022-06-22
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多