Gong Dewei
267aba8fad
Improve bytebuddy class enhance for retransform classes ( #561 )
...
* SWAuxiliaryTypeNamingStrategy
Auxiliary type name pattern: <origin_class_name>$<name_trait>$auxiliary$<auxiliary_type_instance_hash>
* DelegateNamingResolver
Interceptor delegate field name pattern: <name_trait>$delegate$<class_name_hash>$<plugin_define_hash>$<intercept_point_hash>
* SWMethodNameTransformer
Renamed origin method pattern: <name_trait>$original$<method_name>$<method_description_hash>
* SWImplementationContextFactory
Method cache value field pattern: cachedValue$<name_trait>$<origin_class_name_hash>$<field_value_hash>
Accessor method name pattern: <renamed_origin_method>$accessor$<name_trait>$<origin_class_name_hash>
Here is an example of manipulated enhanced class with new naming policies of auxiliary classes, fields, and methods
```java
import sample.mybatis.controller.HotelController$sw$auxiliary$19cja42;
import sample.mybatis.controller.HotelController$sw$auxiliary$p257su0;
import sample.mybatis.domain.Hotel;
import sample.mybatis.service.HotelService;
@RequestMapping(value={"/hotel"})
@RestController
public class HotelController
implements EnhancedInstance {
@Autowired
@Lazy
private HotelService hotelService;
private volatile Object _$EnhancedClassField_ws;
// Interceptor delegate fields
public static volatile /* synthetic */ InstMethodsInter sw$delegate$td03673$ain2do0$8im5jm1;
public static volatile /* synthetic */ InstMethodsInter sw$delegate$td03673$ain2do0$edkmf61;
public static volatile /* synthetic */ ConstructorInter sw$delegate$td03673$ain2do0$qs9unv1;
public static volatile /* synthetic */ InstMethodsInter sw$delegate$td03673$fl4lnk1$m3ia3a2;
public static volatile /* synthetic */ InstMethodsInter sw$delegate$td03673$fl4lnk1$sufrvp1;
public static volatile /* synthetic */ ConstructorInter sw$delegate$td03673$fl4lnk1$cteu7s1;
// Origin method cache value field
private static final /* synthetic */ Method cachedValue$sw$td03673$g5sobj1;
public HotelController() {
this(null);
sw$delegate$td03673$ain2do0$qs9unv1.intercept(this, new Object[0]);
}
private /* synthetic */ HotelController(sw.auxiliary.p257su0 p257su02) {
}
@GetMapping(value={"city/{cityId}"})
public Hotel selectByCityId(@PathVariable(value="cityId") int n) {
// call interceptor with auxiliary type and parameters and origin method object
return (Hotel)sw$delegate$td03673$ain2do0$8im5jm1.intercept(this, new Object[]{n}, new HotelController$sw$auxiliary$19cja42(this, n), cachedValue$sw$td03673$g5sobj1);
}
// Renamed origin method
private /* synthetic */ Hotel sw$origin$selectByCityId$a8458p3(int cityId) {
/*22*/ return this.hotelService.selectByCityId(cityId);
}
// Accessor of renamed origin method, calling from auxiliary type
final /* synthetic */ Hotel sw$origin$selectByCityId$a8458p3$accessor$sw$td03673(int n) {
// Calling renamed origin method
return this.sw$origin$selectByCityId$a8458p3(n);
}
@Override
public Object getSkyWalkingDynamicField() {
return this._$EnhancedClassField_ws;
}
@Override
public void setSkyWalkingDynamicField(Object object) {
this._$EnhancedClassField_ws = object;
}
static {
ClassLoader.getSystemClassLoader().loadClass("org.apache.skywalking.apm.dependencies.net.bytebuddy.dynamic.Nexus").getMethod("initialize", Class.class, Integer.TYPE).invoke(null, HotelController.class, -1072476370);
// Method object
cachedValue$sw$td03673$g5sobj1 = HotelController.class.getMethod("selectByCityId", Integer.TYPE);
}
}
```
Auxiliary type of Constructor :
```java
class HotelController$sw$auxiliary$p257su0 {
}
```
Auxiliary type of `selectByCityId` method:
```java
class HotelController$sw$auxiliary$19cja42
implements Runnable,
Callable {
private HotelController argument0;
private int argument1;
public Object call() throws Exception {
return this.argument0.sw$origin$selectByCityId$a8458p3$accessor$sw$td03673(this.argument1);
}
@Override
public void run() {
this.argument0.sw$origin$selectByCityId$a8458p3$accessor$sw$td03673(this.argument1);
}
HotelController$sw$auxiliary$19cja42(HotelController hotelController, int n) {
this.argument0 = hotelController;
this.argument1 = n;
}
}
```
2023-06-24 20:50:10 +08:00
xzyJavaX
b72e984289
fix npe in guava eventbus plugin ( #559 )
...
Co-authored-by: 熊哲源 <xiongzheyuan@shouqianba.com>
2023-06-21 14:32:18 +08:00
xiaqi1210
3497199f98
update changes.md for Fixing issue #10925 ( #558 )
2023-06-16 23:03:39 +08:00
gzlicanyi
7af3f06713
Fix the thread safety bug of finishing operation for the span named "SpringCloudGateway/sendRequest" ( #555 )
2023-06-16 22:25:50 +08:00
weihubeats
6621f82739
add RocketMQ 5.x plugin ( #536 )
2023-06-07 22:05:08 +08:00
gzlicanyi
5002da5a13
Feature/fix spring data hadoop ( #546 )
2023-06-06 16:21:03 +08:00
xu1009
af4ddc61c9
Support jetty 11 ( #545 )
2023-06-06 09:39:34 +08:00
xu1009
97337063f8
Support jdk17 zgc ( #541 )
2023-06-01 13:06:15 +08:00
吴晟 Wu Sheng
d074a0a063
Release 8.16.0 and set 8.17.0-SNAPSHOT for next iteration ( #543 )
2023-05-31 22:46:05 +08:00
gzlicanyi
dc602b7d04
Fix deserialization of kafka producer json config in the kafka-reporter-plugin. ( #542 )
2023-05-31 21:27:18 +08:00
GuiSong
c04a714725
[Feature] Support to configure custom decode method for kafka configurations ( #540 )
2023-05-31 18:03:35 +08:00
gzlicanyi
ddc68e27e2
Fix the gson dependency in the kafka-reporter-plugin. ( #538 )
2023-05-26 07:02:18 -04:00
xu1009
9e26f26f0b
Support monitor grizzly thread pool ( #533 )
2023-05-25 19:30:35 -04:00
Cathy
de730d7dde
Fix possible IllegalStateException when using Micrometer ( #531 )
2023-05-19 08:07:24 +08:00
xu1009
28fcf17642
Support grizzly web server trace ( #528 )
2023-05-15 08:18:52 +08:00
guoxiolong
4eb07e3c15
Add JBoss support through mount agent by ModuleClassloader. ( #527 )
...
- Change the classloader to locate the agent path in AgentPackagePath, from `SystemClassLoader` to AgentPackagePath's loader.
2023-05-09 23:34:03 +08:00
xu1009
6e6aafe310
fix jedis can not get host info when use jedis 3.3.x+ ( #526 )
2023-05-08 22:50:17 +08:00
Jiajing LU
04603b2027
Chore: fix exclusion rules in maven-shade-plugin ( #525 )
...
* exclude checkerframework j2objc, and protos
2023-05-08 12:12:02 +08:00
破晓长空
e09809f318
Fix ClassCastException when mssql inserting data ( #10741 ) ( #524 )
2023-05-05 17:05:59 +08:00
xu1009
dc9f7d130d
support jersey rest framework ( #520 )
2023-05-02 17:19:15 +08:00
xu1009
3ad9f249d9
support jetty server work thread pool metric monitor ( #517 )
...
* support jetty server work thread pool metric monitor
Co-authored-by: litexu <litexu@tencent.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2023-05-02 16:34:06 +08:00
xu1009
9144a06ca1
clickhouse-jdbc-plugin support trace sql parameters when enable plugin.jdbc.trace_sql_parameters ( #515 )
...
Co-authored-by: litexu <litexu@tencent.com>
2023-04-25 18:12:19 +08:00
xu1009
02dad132b2
Support forkjoinpool plugin ( #505 )
2023-04-17 17:45:09 +08:00
Jiajing LU
e08c4583a3
Exclude synthetic methods for WitnessMethod ( #504 )
2023-04-14 17:23:47 +08:00
吴晟 Wu Sheng
7a6334d2b5
Begin 8.16.0 iteration ( #501 )
...
* [maven-release-plugin] prepare release v8.15.0
* [maven-release-plugin] prepare for next development iteration
* Create changes-8.15.0.md
* Set changes.md for 8.16.0
2023-04-04 09:15:21 +08:00
吴晟 Wu Sheng
f179b65994
Build a dummy(empty) javadoc of finagle and jdk-http plugins ( #499 )
...
* Build a dummy(empty) javadoc of finagle and jdk-http plugins
* Add javadoc check for the CI.
2023-04-03 15:24:31 +08:00
mrproliu
81afeddd08
Update the endpoint name format of the `Undertow` ( #497 )
2023-04-02 11:12:24 +08:00
xu1009
1f30e38864
Support MySQL plugin tracing SQL parameters when useServerPrepStmts ( #489 )
2023-03-28 22:45:55 +08:00
hyhyf
c0b4447540
Fix a thread leak in `SamplingService` when updated sampling policy in the runtime. ( #487 )
2023-03-27 22:15:10 +08:00
SWHHEART
e91514c634
Fix unexpected whitespace of the command catalogs in several Redis plugins. ( #480 )
2023-03-23 20:46:04 +08:00
mrproliu
d357bdef7a
Support keep trace profiling when cross-thread ( #479 )
2023-03-14 17:55:28 +08:00
DarkerEcho
f04866cf24
Fix thrift plugin generate duplicate traceid ( #467 )
2023-03-05 18:10:42 +08:00
xzyJavaX
122d0064f0
fix tomcat-10x-plugin and add test case to support tomcat7.x-8.x-9.x ( #466 )
2023-03-03 17:31:02 +08:00
weiyang.zhang
e648ca2145
Adapt Armeria's plugins to the latest version 1.22.x ( #459 )
2023-02-26 21:25:43 +08:00
Chenfx-git
20c8b98cd9
Fix servicecomb plugin trace break in cse case ( #460 )
2023-02-23 15:35:59 +08:00
Kanro
6b35f06d15
Fix gRPC plugin not working for server side in some case ( #457 )
2023-02-15 16:38:24 +08:00
Kanro
bca5c8e628
Refactor kotlin coroutine plugin with CoroutineContext ( #453 )
2023-02-14 18:10:21 +08:00
Superskyyy (AWAY, busy graduating | Debug 人)
5250ecfe2e
Fix oracle url parser ignoring actual port ( #456 )
...
* Fix oracle url parser missed case
* Add changelog
2023-02-14 03:22:01 -05:00
空青
9cb5a13d44
Add plugin to support clickhouse jdbc ( #455 )
...
* Add plugin to support clickhouse-jdbc-0.3.2.*
* Rename clickhouse-0.3.x-plugin to clickhouse-0.3.1-plugin
2023-02-12 22:50:19 +08:00
Kanro
ad1389347a
Enhance kotlin coroutine plugin for stack tracing ( #451 )
2023-02-09 11:28:23 +08:00
2han9wen71an
b4bf6fd75d
How to make SkyWalking agent works in `OSGI` environment? ( #450 )
2023-02-04 19:29:41 +08:00
吴晟 Wu Sheng
8dde931b72
Correct missing package name in native manual API docs. ( #449 )
2023-02-03 22:09:56 +08:00
xzyJavaX
492fb6e356
refactor pipeline in jedis-plugin ( #445 )
2023-02-03 20:56:03 +08:00
2han9wen71an
4012dc4ff7
Fix H2 plugin instrumentation point ( #447 )
2023-02-02 22:18:33 +08:00
kezhenxu94
62266673ff
Add plugin for Spring 6, set development baseline to JDK 17, remove Powermock entirely ( #444 )
2023-01-31 19:29:32 +08:00
叶梦飞
ac84d57023
Expose complete Tracing APIs in the tracing toolkit ( #442 )
2023-01-24 08:01:18 +08:00
xzyJavaX
f366503d58
Enhance lettuce plugin to adopt uniform tags ( #441 )
2023-01-16 11:46:39 +08:00
吴晟 Wu Sheng
8c989b74e9
Release 8.14.0, begin for 8.15.0 iteration ( #440 )
2023-01-12 11:00:25 +08:00
xzyJavaX
92b076c281
Enhance redisson plugin to adopt uniform tags ( #438 )
2023-01-11 23:09:19 +08:00
吴晟 Wu Sheng
5cffa078e1
Add a config `agent.enable`(default: true) to support disabling agent ( #439 )
2023-01-11 17:14:23 +08:00