zhengziyi0117
26ef911aea
fix: async profiler max duration && reduce memory allocation when sending jfr ( #733 )
2024-12-02 16:12:12 +08:00
Zixin Zhou
cb764a7849
Add empty judgment for constructorInterceptPoint ( #732 )
2024-11-29 15:29:11 +08:00
zhengziyi0117
f0245864e4
fix: shade async-profiler packages ( #727 )
2024-11-05 20:25:16 +08:00
zhengziyi0117
26e59485cc
fix: jdk8 send jfr data error ( #725 )
2024-10-31 17:31:33 +08:00
zhengziyi0117
2027a98b1e
Support async profiler feature ( #720 )
2024-10-30 17:22:33 +08:00
yizhouw11
5c4970b519
Fix intermittent ClassCircularityError by preloading ThreadLocalRandom since ByteBuddy 1.12.11 ( #718 )
2024-09-23 15:32:23 +08:00
weixiang1862
7536424165
Add agent self-observability. ( #716 )
2024-09-15 18:04:09 +08:00
吴晟 Wu Sheng
92b09c9d79
Released 9.3.0 and start 9.4.0 ( #710 )
...
* [maven-release-plugin] prepare release v9.3.0
* [maven-release-plugin] prepare for next development iteration
* Create changes-9.3.0.md
* Update CHANGES.md
2024-07-26 06:49:38 +08:00
jiangyunpeng
8200cf2b51
Improve 4x performance of ContextManagerExtendService.createTraceContext() ( #698 )
2024-06-22 10:34:41 +08:00
苏格苏格拉
313d7d5c8e
Fix to Ensure not isInterface requirement applied to all conditions ( #695 )
2024-06-03 11:22:17 +08:00
gzlicanyi
b608d74c15
Add a forceIgnoring mechanism to the agent kernel ( #689 )
...
IgnoredTracerContext can propagate the unsampled flag into the following tracing context through the invalid snapshot.
2024-05-17 13:43:51 +08:00
jiangyuan
0bf535e861
Fix TracingSegmentRunner (testing only) ( #688 )
2024-05-12 11:37:55 +08:00
githubcheng2978
ec2a2d4188
Use a daemon thread to flush logs. ( #684 )
2024-04-26 22:09:36 +08:00
吴晟 Wu Sheng
eb1041675c
Release 9.2.0 begin 9.3.0 dev ( #678 )
2024-03-31 21:38:08 +08:00
吴晟 Wu Sheng
4dd00e97e9
Release 9.1 and begin 9.2.0 ( #652 )
2023-12-01 23:31:19 -08:00
weixiang1862
6220af1172
Optimize plugin selector logic. ( #651 )
2023-11-30 17:24:30 -08:00
Chen Ziyan
e71b9e899e
Fix PostgreSQL Jdbc URL parsing exception ( #649 )
2023-11-17 21:37:13 +08:00
Gong Dewei
db54c65d09
Optimize bytebuddy type description performance ( #637 )
...
### Improve the performance of type description of byte-buddy
The goal is to get the original class description at re-transform, so as to generate consistent results when the Skywalking agent is enhanced again (including implementing the EnhancedInstance interface, auxiliary fields and methods, etc.)
The previous type description used the `AgentBuilder.DescriptionStrategy.Default.POOL_FIRST` policy to get origin type description, which slows down the application startup, due to heavy I/O operations and parsing bytecode.
New way is to remove dynamic fields, methods and interfaces generated by SkyWalking Agent from `TypeDescription`, and **make it as origin type descripton**.
**Key feature** :
* No need to cache `TypeDescription` objects, less memory used.
* It only applies to the re-transform class processing flow and does not affect the startup process.
**Process flow:**
1. Find `TypeDescription` from commonly used type cache, such as primitive class.
2. Delegate to `AgentBuilder.DescriptionStrategy.Default.HYBRID`
3. Wrap `TypeDescription` by `SWTypeDescriptionWrapper` , remove fields, methods, interface generated by SkyWalking.
**Relative Issue:** https://github.com/apache/skywalking/issues/11460
2023-11-03 09:45:28 +08:00
Wayne Chu
c15ac3071e
Support collect ZGC memory pool metrics ( #622 )
2023-10-20 12:38:18 +08:00
吴晟 Wu Sheng
6e47084501
Release 9.0.0 and set 9.1.0-SNAPSHOT for next iteration ( #600 )
...
* [maven-release-plugin] prepare release v9.0.0
* [maven-release-plugin] prepare for next development iteration
* Create changes-9.0.0.md
* Update CHANGES.md
---------
Co-authored-by: Wu Sheng <“wu.sheng@foxmail.com”>
2023-08-29 11:57:56 +08:00
xzyJavaX
c38a19c6c6
fix the conditions for resetting uuid in dynamic configuration ( #588 )
2023-07-29 04:29:17 +09: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
alan
b9075ce7ad
fix CVE-2023-2976 and CVE-2023-34462 ( #570 )
2023-07-05 14:41:01 +02:00
peachisai
88d8e6398f
Support to trace redisson lock ( #567 )
2023-07-02 15:16:23 +02:00
吴晟 Wu Sheng
b9dd0f24b7
Update version to 9.0.0 with new change logs. ( #563 )
2023-06-25 09:18:28 +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
xiaqi1210
35388ac062
Fix the apm-jdk-threadpool-plugin does not work in certain scenarios ( #556 )
2023-06-16 21:26:34 +08:00
xu1009
c891bb595d
remove zgc pause space ( #544 )
2023-06-01 22:04:59 +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
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
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
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
mrproliu
db7a14d167
Fix the profiling segment count not correct ( #491 )
2023-03-29 15:31:28 +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
mrproliu
d357bdef7a
Support keep trace profiling when cross-thread ( #479 )
2023-03-14 17:55:28 +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
吴晟 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
codePig
9d03d56778
Put `Agent-Version` property reading in premain stage to avoid deadlock when use `jarsigner`. ( #437 )
2023-01-06 19:08:41 +08:00
吴晟 Wu Sheng
3ff8c23d0a
[Deadlock] Move `Agent-Version` property reading away from the class loading stage ( #436 )
2023-01-06 09:11:20 +08:00
dylanforest
a68b447878
Support to customize the collect period of JVM relative metrics. ( #428 )
2022-12-26 22:34:30 +08:00
Stephen Ni
51161ae6a5
Report the agent version to OAP ( #397 )
2022-11-29 09:16:00 +08:00
Stephen Ni
6cb2b4290f
Print meter size when it exceeds the maximum value ( #392 )
2022-11-21 14:25:33 +08:00
吴晟 Wu Sheng
70b3e88b0f
Release 8.13.0, begin 8.14.0 iteration ( #378 )
2022-11-06 21:46:51 +08:00
pg.yang
6fce184cfe
Update guava-cache,jedis,memcached,ehcache plugins to adopt uniform tags ( #303 )
2022-09-10 21:58:55 +08:00
Lv Lifeng
1c14a87067
Add plugin to support impala jdbc driver ( #302 )
2022-09-10 21:10:46 +08:00
吴晟 Wu Sheng
b8f99e95e5
Begin 8.13.0 iteration, 8.12.0 release is on vote ( #301 )
...
* [maven-release-plugin] prepare release v8.12.0
* [maven-release-plugin] prepare for next development iteration
* Create changes-8.12.0.md
* Update CHANGES.md
2022-09-01 16:51:48 +08:00