pinpoint icon indicating copy to clipboard operation
pinpoint copied to clipboard

Implementing DB2 Profiler Plugin

Open snmsmanager opened this issue 1 year ago • 4 comments

I've created sample DB2 plugin by using existing MariaDB plugin and I've successfully compiled and generated plugin jar file. can you please explain the steps needed to Implement this Profiler Plugin? Is it sufficient to copy DB2 plugin jar file under agent/plugins?

snmsmanager avatar Feb 21 '24 15:02 snmsmanager

Yes, just copy the jar file. If you place the jar in agent/plugins, it will be automatically loaded by ServiceLoader.

https://github.com/pinpoint-apm/pinpoint/tree/master/plugins/mysql-jdbc/src/main/resources/META-INF/services Don't forget the services config file as well.

emeroad avatar Feb 22 '24 02:02 emeroad

DB2Plugin.java.txt @emeroad thank for the instruction.

I’ve copied “pinpoint-db2-plugin-3.0.0-SNAPSHOT.jar” to agent’s plugin location and it is registered properly. Now I’m getting below error for addDriverTransformer method in **** file. I'm not able to see any connections related to DB2 in corelation map.
sLoader@97a145b ctxCl:org.springframework.boot.loader.LaunchedURLClassLoader@97a145b agentCl:ParallelClassLoader@1510467688{name='pinpoint.agent'} Cause:Cannot find suitable constructor for com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.DriverConnectInterceptorV2 com.navercorp.pinpoint.exception.PinpointException: Cannot find suitable constructor for com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.DriverConnectInterceptorV2 at com.navercorp.pinpoint.profiler.objectfactory.AutoBindingObjectFactory.byConstructor(AutoBindingObjectFactory.java:86) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.objectfactory.AutoBindingObjectFactory.createInstance(AutoBindingObjectFactory.java:79) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.interceptor.factory.AnnotatedInterceptorFactory.newInterceptor(AnnotatedInterceptorFactory.java:118) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.instrument.ASMMethod.createInterceptor(ASMMethod.java:146) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.instrument.ASMMethod.newInterceptor(ASMMethod.java:138) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.instrument.ASMMethod.addScopedInterceptor(ASMMethod.java:287) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.plugin.db2.DB2Plugin$DriverTransformer.doInTransform(DB2Plugin.java:177) ~[pinpoint-db2-plugin-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.plugin.MatchableClassFileTransformerDelegate.transform(MatchableClassFileTransformerDelegate.java:64) ~[pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.transformer.BaseClassFileTransformer.transform(BaseClassFileTransformer.java:56) [pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at com.navercorp.pinpoint.profiler.transformer.DefaultClassFileTransformerDispatcher.transform(DefaultClassFileTransformerDispatcher.java:89) [pinpoint-profiler-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at sun.instrument.TransformerManager.transform(TransformerManager.java:188) [?:1.8.0_402] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428) [?:1.8.0_402] at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_402] at java.lang.ClassLoader.defineClass(ClassLoader.java:756) [?:1.8.0_402] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [?:1.8.0_402] at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) [?:1.8.0_402] at java.net.URLClassLoader.access$100(URLClassLoader.java:74) [?:1.8.0_402] at java.net.URLClassLoader$1.run(URLClassLoader.java:369) [?:1.8.0_402] at java.net.URLClassLoader$1.run(URLClassLoader.java:363) [?:1.8.0_402] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_402] at java.net.URLClassLoader.findClass(URLClassLoader.java:362) [?:1.8.0_402] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) [?:1.8.0_402] at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) [spring-boot-db2-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) [?:1.8.0_402] at org.springframework.util.ClassUtils.forName(ClassUtils.java:250) [spring-core-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]

snmsmanager avatar Feb 25 '24 16:02 snmsmanager

Please submit a PR for db2 plugn on pinpoint github Let's run the reproduction code.

emeroad avatar Feb 26 '24 06:02 emeroad

Please submit a PR for db2 plugn on pinpoint github Let's run the reproduction code. #10719 please check.

snmsmanager avatar Feb 27 '24 09:02 snmsmanager