Release Apache SkyWalking Java Agent 9.7.0

Release Apache SkyWalking Java Agent 9.7.0.

SkyWalking Java Agent 9.7.0 is released. Go to downloads page to find release tars. Changes by Version

9.7.0

  • Fix plugin.http.include_http_headers not working on Spring Boot 3.x / Jakarta EE (apache/skywalking#13938).
  • Support plugin.http.include_http_headers in the Tomcat plugin, collecting the configured request headers as the http.headers tag on Tomcat entry spans (e.g. RESTEasy on Tomcat), consistent with the Spring MVC plugin. Honors the shared plugin.http.http_headers_length_threshold.
  • Unify the Tomcat plugins into a single tomcat plugin (Tomcat 7 - 10) and the Jetty server plugins into a single jetty-server plugin (Jetty 9 - 11), each supporting both javax.servlet and jakarta.servlet. Breaking change: plugin names tomcat-7.x/8.x and tomcat-10.x are replaced by tomcat, and jetty-server-9.x and jetty-server-11.x by jetty-server; update plugin.exclude_plugins if you reference the old names.
  • Add a Jetty 12 server plugin (jetty-server-12.x). Jetty 12 removed the HttpChannel handle target and moved request handling to the async Server#handle(Request, Response, Callback) core API, so it needs a separate plugin from the merged jetty-server.
  • Add a Struts 7 plugin (struts2-7.x) for Jakarta Struts, whose DefaultActionInvocation moved to org.apache.struts2.
  • Added support for Lettuce reactive Redis commands.
  • Add tracing support for invokeAll and invokeAny in the JDK thread pool plugin (jdk-threadpool-plugin).
  • Add Spring AI 1.x plugin and GenAI layer.
  • Add tracing support for vector-store retrieval operations.
  • Fix httpclient-5.x plugin injecting sw8 propagation headers into ClickHouse HTTP requests (port 8123), causing HTTP 400. Add PROPAGATION_EXCLUDE_PORTS config to skip tracing (including header injection) for specified ports in the classic client interceptor.
  • Add Spring RabbitMQ 2.x - 4.x plugin.
  • Extend MySQL plugin to support MySQL Connector/J 8.4.0 and 9.x (9.0 -> 9.6).
  • Extend MariaDB plugin to support MariaDB Connector/J 2.7.x.
  • Add MariaDB 3.x plugin (all classes renamed in 3.x).
  • Extend MongoDB 4.x plugin to support MongoDB Java Driver 4.2 -> 4.10. Fix db.bind_vars extraction for driver 4.9+ where InsertOperation/DeleteOperation/UpdateOperation classes were removed.
  • Fix MongoDB 4.x plugin for driver 4.11+ where Cluster.getDescription() was removed, use getCurrentDescription() instead.
  • Extend Feign plugin to support OpenFeign 10.x, 11.x, 12.1.
  • Add Feign 12.2+ PathVar support (BuildTemplateByResolvingArgs moved to RequestTemplateFactoryResolver).
  • Extend Undertow plugin to support Undertow 2.1.x, 2.2.x, 2.3.x.
  • Extend GraphQL plugin to support graphql-java 18 -> 24 (20+ requires JDK 17).
  • Extend Spring Kafka plugin to support Spring Kafka 2.4 -> 2.9 and 3.0 -> 3.3.
  • Extend Jedis 4.x plugin to support Jedis 5.x (fix witness method for 5.x compatibility).
  • Add Elasticsearch Java client (co.elastic.clients:elasticsearch-java) plugin for 7.16.x-9.x.
  • Fix an issue where JDBCPluginConfig.Plugin.JDBC.SQL_BODY_MAX_LENGTH was not honored by clickhouse-0.3.1 and clickhouse-0.3.2.x plugins.
  • Fix agent lifecycle events: the Start event now carries the service instance name, and the Shutdown event is delivered on graceful JVM exit. ServiceManager prepares/starts higher-priority BootServices first and shuts them down last (matching BootService#priority()), and the shutdown event refreshes its gRPC deadline before sending.
  • Fix the SenderSendInterceptor in the nutz-plugins/http-1.x-plugin to avoid NPE caused by the Response status.
  • Only publish apm-application-toolkit modules to Maven Central. Agent and plugins are distributed via download package and Docker images.

All issues and pull requests are here