Commit Graph

1218 Commits

Author SHA1 Message Date
changhao.ni b1f18f36ba
Feature: Support for tracking for lettuce versions 6.5+ (#760) 2025-06-25 11:41:46 +08:00
saber-wang 6c74815fdf
Add support for dameng(DM) JDBC URL format in URLParser (#758)
* [Feature] Add URLParser for dameng(DM)
2025-06-10 11:59:05 +08:00
peachisai 35856b4bca
Add the virtual thread executor plugin (#751) 2025-03-09 09:39:41 +08:00
Zixin Zhou d53f04b7bf
Add Caffeine plugin as optional (#743) 2024-12-29 08:16:05 +08:00
吴晟 Wu Sheng b4ad5b1960
Enhance optional plugin docs for Spring Gateway. (#740) 2024-12-16 17:51:28 +08:00
吴晟 Wu Sheng 860c93c3c1
Fix deadlinks (#729) 2024-11-27 10:26:15 +08:00
吴晟 Wu Sheng 615a1b11bb
Change so11y menu (#719) 2024-09-24 09:45:16 +08:00
weixiang1862 7536424165
Add agent self-observability. (#716) 2024-09-15 18:04:09 +08:00
pg.yang 24ec663a34
Upgrade nats plugin to expand support to 2.16.5 (#711) 2024-07-27 12:36:04 +08:00
darkness-2nd 744eb1e5d8
Support Kafka 3.7+ (#707) 2024-07-25 16:33:03 +08:00
寻找的人 0fc3cd86e8
Add a plugin that supports the Solon framework. (#697) 2024-06-29 09:44:23 +08:00
吴晟 Wu Sheng 002a4557c4
Fix RESTEasy link 404 (#701) 2024-06-24 09:40:05 +08:00
Chen Ziyan f736b371d3
Support for tracing the callbacks of async methods in elastiicsearch-6.x/7.x-plugin (#694) 2024-05-28 00:18:56 +08:00
Chen Ziyan ffbd90c3d3
Fix bugs in Redisson plugin (#693) 2024-05-22 14:28:58 +08:00
Chen Ziyan 4dfc1e85b5
Fix method name missing in spring-plugins:scheduled-annotation-plugin with spring 6.1.x (#691) 2024-05-14 20:21:27 +08:00
Chen Ziyan 7dd7914765
Add pool metrics support for Derby/Sybase/SQLite/DB2/OceanBase jdbc URL format in URLParser (#687) 2024-05-11 21:33:40 +08:00
jiangyuan 75deff1923
Fix a wrong folder name about optional reporter (#685) 2024-04-30 23:57:47 +08:00
Chen Ziyan d37ee271c4
Add support for C3P0 connection pool tracing (#683) 2024-04-26 14:01:13 +08:00
吴晟 Wu Sheng 4adb343091
Archive the expired plugins `impala-jdbc-2.6.x-plugin`. (#673) 2024-03-07 11:31:08 +08:00
Chen Ziyan 5cd52658c6
Support for ActiveMQ-Artemis messaging tracing. (#670) 2024-01-29 16:01:20 +08:00
吴晟 Wu Sheng b1c96da0d4
Rename system env name from `sw_plugin_kafka_producer_config` to `SW_PLUGIN_KAFKA_PRODUCER_CONFIG` (#668) 2024-01-22 13:50:20 +08:00
Chen Ziyan bbb177a893
Support tracing for async producing, batch sync consuming, and batch async consuming in rocketMQ-client-java-5.x-plugin (#665) 2024-01-21 10:29:39 +08:00
Chen Ziyan d5b99f9434
add support for HttpExchange along with webflux-webclient-6.x (#664) 2024-01-11 19:58:42 +08:00
Chen Ziyan 7aec68263b
Support for tracing webflux-6.x and gateway-4.x (#661) 2023-12-21 16:04:21 +08:00
吴晟 Wu Sheng 045c1e753f
Remove dead links (#655) 2023-12-06 12:09:23 +08:00
吴晟 Wu Sheng 8ca62a48c2
Fix missing command in the docker release (#653) 2023-12-05 07:30:50 -08:00
吴晟 Wu Sheng c82287e1dd
Add JDK21 Support (#647) 2023-11-10 14:56:48 +08:00
peachisai 0b80f3d424
Add a netty-4.1.x plugin to trace http (#625) 2023-10-29 16:18:25 +08:00
Ricky Lau 45993545e9
[DOCS] Corrected an issue using misspelled words in Native Tracer (#626) 2023-10-23 10:49:21 +08:00
吴晟 Wu Sheng 88b4b5c930
Add OAP version requirement (#624) 2023-10-20 17:58:24 +08:00
qiaoxingxing f25e6600b4
fix doc Application-toolkit-tracer extract data from map (#617) 2023-09-28 04:14:12 -05:00
xyyz150 738201c33a
add rocketmq-client-java-5.x plugin (#598) 2023-08-28 21:25:23 +08:00
peachisai e31b9bb6a2
Add nacos-client 2.x plugin (#593) 2023-08-18 08:45:46 +08:00
Leibniz.Hu 6baa4a7baa
Add support for RESTEasy 6.x (#587) 2023-07-27 07:18:05 -07:00
DarknessTM c9a61701f1
Support access the tracer context in spring gateway filter (#539)
Co-authored-by: darknesstm <askkoy@163.com>
2023-07-07 20:26:18 +02:00
dd1k d42e24583d
Add plugin to support Aerospike Java client (#565) 2023-06-29 23:32:05 +08:00
weixiang1862 e464f18ad9
Add WebSphere Liberty 23.x plugin.(#10887) (#560) 2023-06-25 16:50:18 +08:00
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
weihubeats 6621f82739
add RocketMQ 5.x plugin (#536) 2023-06-07 22:05:08 +08:00
xu1009 af4ddc61c9
Support jetty 11 (#545) 2023-06-06 09:39:34 +08:00
GuiSong c04a714725
[Feature] Support to configure custom decode method for kafka configurations (#540) 2023-05-31 18:03:35 +08:00
xu1009 9e26f26f0b
Support monitor grizzly thread pool (#533) 2023-05-25 19:30:35 -04:00
xu1009 28fcf17642
Support grizzly web server trace (#528) 2023-05-15 08:18:52 +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 02dad132b2
Support forkjoinpool plugin (#505) 2023-04-17 17:45:09 +08:00
吴晟 Wu Sheng 89e5262f99
Polish docs for preparing release. (#490) 2023-03-29 11:21:50 +08:00
mrproliu d357bdef7a
Support keep trace profiling when cross-thread (#479) 2023-03-14 17:55:28 +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
kezhenxu94 0b1af4fd18
Fix Spring 6 test case (#463) 2023-02-24 16:17:37 +08:00