Hi there,
After switching to 1.5.1 micrometer-registry-opentsdb we faced with error. It's look like a bug:
19-05 22:09:31:335 WARN [OpenTSDBMeterRegistry] failed to send metrics to opentsdb
java.lang.ClassCastException: class io.micrometer.core.instrument.internal.DefaultLongTaskTimer cannot be cast to class io.micrometer.opentsdb.OpenTSDBTimer (io.micrometer.core.instrument.internal.DefaultLongTaskTimer and io.micrometer.opentsdb.OpenTSDBTimer are in unnamed module of loader 'app')
at io.micrometer.opentsdb.OpenTSDBMeterRegistry.writeLongTaskTimer(OpenTSDBMeterRegistry.java:330)
at io.micrometer.core.instrument.Meter.match(Meter.java:115)
at io.micrometer.opentsdb.OpenTSDBMeterRegistry.lambda$publish$0(OpenTSDBMeterRegistry.java:161)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:271)
at java.base/java.util.ArrayList$SubList$2.forEachRemaining(ArrayList.java:1510)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at io.micrometer.opentsdb.OpenTSDBMeterRegistry.publish(OpenTSDBMeterRegistry.java:171)
at io.micrometer.core.instrument.push.PushMeterRegistry.publishSafely(PushMeterRegistry.java:52)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:305)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
@exploder86 It sounds like you might have version misalignment. Can you check your runtime classpath to ensure that all (micrometer-core, micrometer-registry-opentsdb) are all at 1.5.1?
If this is a Spring Gradle project, this is commonly caused by the Spring dependency management plugin which will pull down the micrometer-core version unless you set the micrometer.version property or include a direct dependency on micrometer-core:1.5.1.
This has been resolved via https://github.com/micrometer-metrics/micrometer/pull/2075.
@exploder86 Please try 1.5.2-SNAPSHOT.
It's worked with 1.5.2-SNAPSHOT
Thanks!
Most helpful comment
It's worked with 1.5.2-SNAPSHOT
Thanks!