Invalid distribution configuration: expiry (1ms) / bufferLength (3) must be greater than 0 解决

Caused by: io.micrometer.core.instrument.config.InvalidConfigurationException: Invalid distribution configuration: expiry (1ms) / bufferLength (3) must be greater than 0.
	at io.micrometer.core.instrument.distribution.AbstractTimeWindowHistogram.rejectHistogramConfig(AbstractTimeWindowHistogram.java:129)
	at io.micrometer.core.instrument.distribution.AbstractTimeWindowHistogram.<init>(AbstractTimeWindowHistogram.java:82)
	at io.micrometer.core.instrument.distribution.TimeWindowPercentileHistogram.<init>(TimeWindowPercentileHistogram.java:41)
	at io.micrometer.core.instrument.AbstractTimer.<init>(AbstractTimer.java:89)
	at io.micrometer.prometheus.PrometheusTimer.<init>(PrometheusTimer.java:65)
	at io.micrometer.prometheus.PrometheusMeterRegistry.newTimer(PrometheusMeterRegistry.java:324)
	at io.micrometer.core.instrument.MeterRegistry.lambda$timer$2(MeterRegistry.java:318)
	at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:618)
	at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:570)
	at io.micrometer.core.instrument.MeterRegistry.timer(MeterRegistry.java:316)
	at io.micrometer.core.instrument.Timer$Builder.register(Timer.java:400)
	at io.lettuce.core.metrics.MicrometerCommandLatencyRecorder.firstResponseTimer(MicrometerCommandLatencyRecorder.java:125)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at io.lettuce.core.metrics.MicrometerCommandLatencyRecorder.recordCommandLatency(MicrometerCommandLatencyRecorder.java:80)
	at io.lettuce.core.protocol.CommandHandler.recordLatency(CommandHandler.java:914)
	at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:771)
	at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:659)
	at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:599)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:833)

这个问题是因为 durationBetweenRotatesMillis <= 0 导致,如下图所示:

在yml加上以下参数:

management:
  metrics:
    distribution:
      expiry:
        lettuce: 10ms

这样就保证durationBetweenRotatesMillis不小于0:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值