The Java agent for Apache SkyWalking
sw_plugin_kafka_producer_config
to SW_PLUGIN_KAFKA_PRODUCER_CONFIG
by @wu-sheng in https://github.com/apache/skywalking-java/pull/668
impala-jdbc-2.6.x-plugin
. by @wu-sheng in https://github.com/apache/skywalking-java/pull/673
RoutingSupport#determineHost
works. by @cylx3126 in https://github.com/apache/skywalking-java/pull/674
Full Changelog: https://github.com/apache/skywalking-java/compare/v9.1.0...v9.2.0
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
agent.config
file for service_name and instance_nameeclipse-temurin:21-jre
as another base image.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
sw$
name trait. They are predictable and unchanged after
re-transform.* 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
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 :
class HotelController$sw$auxiliary$p257su0 {
}
Auxiliary type of selectByCityId
method:
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;
}
}
All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
synthetic
methods for the WitnessMethod mechanismSystemClassLoader
to AgentPackagePath's loader.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
sendBase
error occursSamplingService
when updated sampling policy in the runtime.Undertow
plugin to Method:Path
.OSGI
environment?"All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
arm64/v8
platformsplugin.toolkit.use_qualified_name_as_operation_name
, and system variable name SW_PLUGIN_TOOLKIT_USE_QUALIFIED_NAME_AS_OPERATION_NAME:false
. They were toolit.JDBI
to JDBC
rabbitmq-5.x-plugin
to rabbitmq-plugin
mq.message.keys
and mq.message.tags
for RocketMQ producer spanAgent-Version
property reading in the premain stage to avoid deadlock when using jarsigner
.agent.enable
(default: true) to support disabling the agent through system property -Dskywalking.agent.disable=false
or system environment variable setting SW_AGENT_ENABLE=false
.Plugin-test.md
, support string operators start with
and end with
All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
This release begins to adopt SkyWalking 9.3.0+ Virtual Cache Analysis and Virtual MQ Analysis
Apache ShenYu
plugin traceId empty string value.compose-start-script.template
to make compatible with new version docker composeconfiguration
doc about overriding default value as empty map/list accordingly.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
Shenyu plugin
's NPE in reading trace ID when IgnoredTracerContext is used in the context.onHalfClose
using span operation name /Request/onComplete
instead of the wrong name /Request/onHalfClose
.Bootstrap-plugins
doc, introducing HttpURLConnection Plugin compatibility.Plugin automatic test framework
, fix inconsistent description about configuration.yml.Plugin automatic test framework
, add expected data format of the log items.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
cluster
and namespace
value duplicated(namespace
value) in properties report.shade.package
property.yyyy-MM-dd HH:mm:ss.SSS
(was yyyy-MM-dd HH:mm:ss:SSS
).UNARY
、SERVER_STREAMING
.grpc
,sofarpc
,motan
,tars
rpc proxy.-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
in gRPC log report.plugin.jdbc.trace_sql_parameters
into Configuration Discovery Service.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
agent.instance_properties
configuration.
Recommend agent.instance_properties_json
.namespace
and cluster
. Notice, if
instance_properties_json includes these two keys, they would be overrided by the agent core.cross process propagation
key.agent.instance_properties[key]=value
.agent.cluster
and update agent.namespace
.All issues and pull requests are here