千分尺发送指标为零 - Spring Boot
Posted
技术标签:
【中文标题】千分尺发送指标为零 - Spring Boot【英文标题】:Micrometer sending metrics zero - 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
【问题讨论】:
【参考方案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: 读取超时以上是关于千分尺发送指标为零 - Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章
如何使用千分尺指定我想在spring-boot中使用的指标的白名单
如何使用千分尺指定我想要在spring-boot中使用的度量标准的白名单
在 Spring Boot 中,如何在每次测试之前重置指标注册表?