Open josetesan opened 3 years ago
Yes, I think you found the root cause.
Just curious: How are you running Micrometer with the Prometheus client_java
0.10.0? The latest Micrometer version 1.6.4 is bundled with the Prometheus client_java
0.9.0.
Actually , had to revert back to 0.9.0
Micrometer adapted to the breaking change in the prometheus java client 0.10.0 with micrometer-metrics/micrometer#2418, which will be included in our upcoming 1.7.0 release. Consequently, Micrometer 1.7.0 will only work with the prometheus java client 0.10.0 or later, and Micrometer versions before that will only work with 0.9.x or less.
I have got into similar issue
41050 2023-09-07 09:34:09.790 uat [ems-integrated-management,TID: N/A] [XNIO-1 task-1] ERROR c.s.e.c.e.GlobalExceptionHandler.exception 34 -全局异常信息 ex=Handler dispatch failed; nested exception is java.lang.N oSuchFieldError: UNKNOWN
41051 org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: UNKNOWN
41052 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1058)
41053 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
41054 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
41055 at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
41056 at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
41057 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
41058 at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
41059 at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
41060 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
41061 at brave.servlet.TracingFilter.doFilter(TracingFilter.java:68)
41062 at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
41063 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
41064 at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
41065 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
41066 at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
41067 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
41068 at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
41069 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
41070 at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
41071 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
41072 at brave.servlet.TracingFilter.doFilter(TracingFilter.java:87)
41073 at org.springframework.cloud.sleuth.instrument.web.LazyTracingFilter.doFilter(TraceWebServletAutoConfiguration.java:141)
41074 at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
41075 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
41076 at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:97)
41077 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
41078 at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
41079 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
41080 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
41081 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
41082 at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
41083 at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
41084 at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
41085 at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
41086 at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
41087 at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
41088 at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
41089 at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:111)
41090 at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
41091 at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
41092 at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
41093 at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
41094 at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
41095 at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
41096 at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
41097 at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
41098 at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
41099 at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
41100 at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
41101 at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
41102 at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
41103 at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
41104 at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
41105 at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
41106 at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
41107 at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
41108 at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
41109 at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
41110 at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
41111 at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
41112 at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
41113 at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
41114 at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1280)
41115 at java.lang.Thread.run(Thread.java:750)
41116 Caused by: java.lang.NoSuchFieldError: UNKNOWN
41117 at io.micrometer.prometheus.PrometheusMeterRegistry.newMeter(PrometheusMeterRegistry.java:320)
41118 at io.micrometer.core.instrument.MeterRegistry.lambda$register$4(MeterRegistry.java:333)
41119 at io.micrometer.core.instrument.MeterRegistry.lambda$registerMeterIfNecessary$5(MeterRegistry.java:559)
41120 at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:612)
41121 at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:566)
41122 at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:559)
41123 at io.micrometer.core.instrument.MeterRegistry.register(MeterRegistry.java:333)
41124 at io.micrometer.core.instrument.Meter$Builder.register(Meter.java:468)
41125 at io.micrometer.core.instrument.binder.kafka.KafkaMetrics.getCommonTags(KafkaMetrics.java:105)
41126 at io.micrometer.core.instrument.binder.kafka.KafkaMetrics.bindTo(KafkaMetrics.java:97)
41127 at io.micrometer.core.instrument.binder.kafka.KafkaClientMetrics.bindTo(KafkaClientMetrics.java:39)
41128 at org.springframework.kafka.core.MicrometerProducerListener.producerAdded(MicrometerProducerListener.java:75)
41129 at org.springframework.kafka.core.DefaultKafkaProducerFactory.lambda$doCreateProducer$14(DefaultKafkaProducerFactory.java:545)
41130 at java.util.ArrayList.forEach(ArrayList.java:1259)
41131 at org.springframework.kafka.core.DefaultKafkaProducerFactory.doCreateProducer(DefaultKafkaProducerFactory.java:545)
41132 at org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:518)
41133 at org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:512)
41134 at org.springframework.kafka.core.DefaultKafkaProducerFactory$$FastClassBySpringCGLIB$$6502e513.invoke(<generated>)
41135 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
41136 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
41137 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
41138 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
41139 at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
41140 at org.springframework.cloud.sleuth.instrument.messaging.SleuthKafkaAspect.wrapProducerFactory(TraceMessagingAutoConfiguration.java:311)
41141 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
41142 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
41143 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
41144 at java.lang.reflect.Method.invoke(Method.java:498)
41145 at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
41146 at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
41147 at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
41148 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
41149 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
41150 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
41151 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
41152 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
41153 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)
41154 at org.springframework.kafka.core.DefaultKafkaProducerFactory$$EnhancerBySpringCGLIB$$769f329f.createProducer(<generated>)
41155 at org.springframework.kafka.core.KafkaTemplate.getTheProducer(KafkaTemplate.java:665)
41156 at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:551)
41157 at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:369)
41158 at com.example.ems.log.service.impl.LogServiceImpl.of(LogServiceImpl.java:73)
41159 at com.example.ems.integrated.service.impl.IntegratedNoticeServiceImpl.updateIntegratedNotice(IntegratedNoticeServiceImpl.java:164)
41160 at com.example.ems.integrated.service.impl.IntegratedNoticeServiceImpl$$FastClassBySpringCGLIB$$a2c35b7e.invoke(<generated>)
41161 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
41162 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
41163 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
41164 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
41165 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367)
41166 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
41167 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
41168 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
41169 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)
41170 at com.example.ems.integrated.service.impl.IntegratedNoticeServiceImpl$$EnhancerBySpringCGLIB$$7bf115db.updateIntegratedNotice(<generated>)
41171 at com.example.ems.integrated.controller.IntegratedNoticeController.updateIntegratedNotice(IntegratedNoticeController.java:92)
41172 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
41173 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
41174 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
41175 at java.lang.reflect.Method.invoke(Method.java:498)
41176 at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
41177 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
41178 at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
41179 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
41180 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
41181 at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
41182 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)
41183 ... 63 common frames omitted
@rever67697 did you see my previous comment? I am guessing you are using incompatible versions of the Prometheus Java client and Micrometer's Prometheus registry.
Hi, After upgrading to v0.10.0, i can't make kafka metrics work anymore.
See the stacktrace
Caused by: java.lang.NoSuchFieldError: UNTYPED at io.micrometer.prometheus.PrometheusMeterRegistry.newMeter(PrometheusMeterRegistry.java:251) at io.micrometer.core.instrument.MeterRegistry.lambda$register$4(MeterRegistry.java:335) at io.micrometer.core.instrument.MeterRegistry.lambda$registerMeterIfNecessary$5(MeterRegistry.java:561) at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:614) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:568) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:561) at io.micrometer.core.instrument.MeterRegistry.register(MeterRegistry.java:335) at io.micrometer.core.instrument.Meter$Builder.register(Meter.java:468) at io.micrometer.core.instrument.composite.CompositeCustomMeter.add(CompositeCustomMeter.java:34) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at java.base/java.util.Collections$SetFromMap.forEach(Collections.java:5581) at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$0(CompositeMeterRegistry.java:65) at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lock(CompositeMeterRegistry.java:184) at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$1(CompositeMeterRegistry.java:65) at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:624) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:568) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:561) at io.micrometer.core.instrument.MeterRegistry.register(MeterRegistry.java:335) at io.micrometer.core.instrument.Meter$Builder.register(Meter.java:468) at io.micrometer.core.instrument.binder.kafka.KafkaMetrics.getCommonTags(KafkaMetrics.java:109) at io.micrometer.core.instrument.binder.kafka.KafkaMetrics.bindTo(KafkaMetrics.java:101) at io.micrometer.core.instrument.binder.kafka.KafkaClientMetrics.bindTo(KafkaClientMetrics.java:39)
I'm using micrometer 1.6.3 and java11.0.10.
Back to v0.9.0 and it does work fine.
Can this be related to https://github.com/micrometer-metrics/micrometer/issues/2419 ?