open-telemetry / opentelemetry-java-contrib

https://opentelemetry.io
Apache License 2.0
158 stars 126 forks source link

In Tomcat Version 10.1.19 Spring Boot 3.2.4 Tomcat Bean Name Is Tomca… #1269

Closed sethAmazon closed 5 months ago

sethAmazon commented 5 months ago

…t And Not Catalina

Description: Not getting metrics for Tomcat Version 10.1.19 Spring Boot 3.2.4.

2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"Apr 12, 2024 1:33:00 PM org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite doInvoke","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"WARNING: Failed to fetch MBean Catalina:type=Manager,host=localhost,context=*.","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"Apr 12, 2024 1:33:00 PM java_util_logging_Logger$warning$0 call","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"WARNING: No active MBeans.  Be sure to fetch() before updating any applicable instruments.","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"Apr 12, 2024 1:33:00 PM org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite doInvoke","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"WARNING: Failed to fetch MBean Catalina:type=GlobalRequestProcessor,name=*.","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"Apr 12, 2024 1:33:00 PM java_util_logging_Logger$warning$0 call","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"WARNING: No active MBeans.  Be sure to fetch() before updating any applicable instruments.","kind":"receiver","name":"jmx/0","data_type":"metrics"}
2024-04-12T13:33:00Z D! {"caller":"subprocess/subprocess.go:280","msg":"WARNING: Failed to fetch MBean Catalina:type=ThreadPool,name=*.","kind":"receiver","name":"jmx/0","data_type":"metrics"}
[ec2-user@ip-172-31-57-2 ~]$ sudo java --add-exports jdk.jconsole/sun.tools.jconsole=ALL-UNNAMED -jar jmxterm-1.0.2-uber.jar -v verbose
Delete /root/.jmxterm_history if you encounter error right after launching me.
Welcome to JMX terminal. Type "help" for available commands.
$>open 495425
#Connection to 495425 is opened
$>beans
#domain = JMImplementation:
JMImplementation:type=MBeanServerDelegate
#domain = Tomcat:
Tomcat:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Filter,name=Tomcat WebSocket (JSR356) Filter
Tomcat:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Filter,name=characterEncodingFilter
Tomcat:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Filter,name=formContentFilter
Tomcat:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Filter,name=requestContextFilter
Tomcat:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Filter,name=webMvcObservationFilter
Tomcat:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Servlet,name=dispatcherServlet
Tomcat:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/
Tomcat:context=/,host=localhost,name=Cache,type=WebResourceRoot
Tomcat:context=/,host=localhost,name=NonLoginAuthenticator,type=Valve
Tomcat:context=/,host=localhost,name=StandardContextValve,type=Valve
Tomcat:context=/,host=localhost,type=Loader
Tomcat:context=/,host=localhost,type=Manager
Tomcat:context=/,host=localhost,type=NamingResources
Tomcat:context=/,host=localhost,type=TomcatEmbeddedWebappClassLoader
Tomcat:context=/,host=localhost,type=WebResourceRoot
Tomcat:host=localhost,name=ErrorReportValve,type=Valve
Tomcat:host=localhost,name=StandardHostValve,type=Valve
Tomcat:host=localhost,type=Host
Tomcat:name="http-nio-8090",type=GlobalRequestProcessor
Tomcat:name="http-nio-8090",type=SocketProperties
Tomcat:name="http-nio-8090",type=ThreadPool
Tomcat:name=StandardEngineValve,type=Valve
Tomcat:port=8090,type=Connector
Tomcat:port=8090,type=ProtocolHandler
Tomcat:realmPath=/realm0,type=Realm
Tomcat:type=Engine
Tomcat:type=MBeanFactory
Tomcat:type=Mapper
Tomcat:type=NamingResources
Tomcat:type=Server
Tomcat:type=Service
Tomcat:type=StringCache
Tomcat:type=UtilityExecutor

Existing Issue(s):

1270

Testing: Build jar. Create hacked collector version that does not check hash and version number of jar. Start Collector and see metrics in CW.

Screenshot 2024-04-12 at 9 45 59 AM

Documentation: N/A

Outstanding items:

sethAmazon commented 5 months ago

@breedx-splk can you please review. I see you own this file.

breedx-splk commented 5 months ago

resolves #1270

breedx-splk commented 5 months ago

Hey @sethAmazon thanks for the PR. I don't see anything immediately concerning/problematic with it, however I would like to confirm that this really is the case. Can you help to explain maybe how spring boot enters into this? I'm unclear about that.

I downloaded and ran tomcat 10.1.19 and the management bean was still named Catalina. Is the app you were testing with available as a repro somewhere?

laurit commented 5 months ago

@breedx-splk Also see https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/10115