apache/skywalking
APM, Application Performance Monitoring System
30 Releases
Latest: 2mo ago
10.4.0 - GenAI Observability, Groovy-Free Runtime and Grafana Tempo Compatiblev10.4.0Latest
📋 Changes
- Introduce OAL V2 engine:
- Immutable AST models for thread safety and predictable behavior
- Type-safe enums replacing string-based filter operators
- Precise error location reporting with file, line, and column numbers
- Clean separation between parsing and code generation phases
- Enhanced testability with models that can be constructed without parsing
- Introduce MAL/LAL/Hierarchy V2 engine — replace Groovy-based DSL runtime with ANTLR4 parser + Javassist bytecode generation:
- Remove Groovy runtime dependency from OAP backend
- + 102 more
10.3.0 - New Trace Model in BanyanDBv10.3.0
📋 Changes
- Bump up BanyanDB dependency version(server and java-client) to 0.9.0.
- Fix CVE-2025-54057, restrict and validate url for widgets.
- Fix `MetricsPersistentWorker`, remove DataCarrier queue from `Hour/Day` dimensions metrics persistent process.
- [Break Change] BanyanDB: support new Trace model.
- Implement self-monitoring for BanyanDB via OAP Server.
- BanyanDB: Support `hot/warm/cold` stages configuration.
- Fix query continues profiling policies error when the policy is already in the cache.
- Support `hot/warm/cold` stages TTL query in the status API and graphQL API.
- + 115 more
10.2.0 - No H2, More BanyanDBv10.2.0
📦 No H2, More BanyanDB
- Add BanyanDB 0.8.0 support.
- H2 storage option is removed permanently.
- Add [`doc_values`](https://www.elastic.co/guide/en/elasticsearch/reference/current/doc-values.html) for fields that need to be sorted or aggregated in Elasticsearch, and disable all others.
- This change would not impact the existing deployment and its feature for our official release users.
- Warning If there are custom query plugins for our Elasticsearch indices, this change could break them as sort queries and aggregation queries which used the unexpected fields are being blocked.
- [Breaking Change] Rename `debugging-query` module to `status-query` module. Relative exposed APIs are UNCHANGED.
- [Breaking Change] All jars of the `skywalking-oap-server` are no longer published through maven central. We will only publish the source tar and binary tar to the website download page, and docker images to docker hub.
- Warning If you are using the `skywalking-oap-server` as a dependency in your project, you need to download the source tar from the website and publish them to your private maven repository.
- + 112 more
✨ New Contributors
- @ShyunnY made their first contribution in https://github.com/apache/skywalking/pull/12676
- @zjh129 made their first contribution in https://github.com/apache/skywalking/pull/12700
- @zhengziyi0117 made their first contribution in https://github.com/apache/skywalking/pull/12671
- @tsonglew made their first contribution in https://github.com/apache/skywalking/pull/12778
- @kemalceng made their first contribution in https://github.com/apache/skywalking/pull/12827
- @cclauss made their first contribution in https://github.com/apache/skywalking/pull/12896
- @Super-Lu made their first contribution in https://github.com/apache/skywalking/pull/12897
- @hanwha-jesoos made their first contribution in https://github.com/apache/skywalking/pull/12935
- + 2 more
v10.1.0
📋 Changes
- Huge UI Performance Improvement. Metrics widgets queries are bundled by leveraging the GraphQL capabilities.
- Parallel Queries Support in GraphQL engine. Improve query performance.
- Significantly improve the performance of OTEL metrics handler. Reduce CPU and GC costs in OTEL metrics processes.
- With adopting BanyanDB 0.7, native database performance and stability are improved.
- E2E: bump up the version of the opentelemetry-collector to 0.102.1.
- Push snapshot data-generator docker image to ghcr.io.
- Bump up skywalking-infra-e2e to work around GHA removing `docker-compose` v1.
- Bump up CodeQL GitHub Actions.
- + 89 more
✨ New Contributors
- @xsShuang made their first contribution in https://github.com/apache/skywalking/pull/12347
- @friendlytkyj made their first contribution in https://github.com/apache/skywalking/pull/12363
- @shalk made their first contribution in https://github.com/apache/skywalking/pull/12362
- @kael-aiur made their first contribution in https://github.com/apache/skywalking/pull/12505
- @wetool19 made their first contribution in https://github.com/apache/skywalking/pull/12558
- @huicunjun made their first contribution in https://github.com/apache/skywalking/pull/12624
- All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/205?closed=1)
10.0.1v10.0.1
📋 Changes
- Add SBOM (Software Bill of Materials) to the project.
- Fix LAL test query api.
- Add component libraries of `Derby`/`Sybase`/`SQLite`/`DB2`/`OceanBase` jdbc driver.
- Fix setting the wrong interval to day level measure schema in BanyanDB installation process.
- Fix widget title and tips.
- Fix statistics span data.
- Fix browser log display.
- Fix the topology layout for there are multiple independent network relationships.
10.0.0v10.0.0
📋 Changes
- Support Java 21 runtime.
- Support oap-java21 image for Java 21 runtime.
- Upgrade `OTEL collector` version to `0.92.0` in all e2e tests.
- Switch CI macOS runner to m1.
- Upgrade PostgreSQL driver to `42.4.4` to fix CVE-2024-1597.
- Remove CLI(`swctl`) from the image.
- Remove CLI_VERSION variable from Makefile build.
- Add BanyanDB to docker-compose quickstart.
- + 163 more
9.7.0v9.7.0
📋 Changes
- Bump Java agent to 9.1-dev in the e2e tests.
- Bump up netty to 4.1.100.
- Update Groovy 3 to 4.0.15.
- Support packaging the project in JDK21. Compiler source and target remain in JDK11.
- ElasticSearchClient: Add `deleteById` API.
- Fix Custom alarm rules are overwritten by 'resource/alarm-settings.yml'
- Support Kafka Monitoring.
- Support Pulsar server and BookKeeper server Monitoring.
- + 70 more
9.6.0v9.6.0
📋 Changes
- MQE(Metrics Query Expression) and a new notification mechanism are supported.
- Newly added support for Loki LogQL and Grafana Loki Dashboard for SkyWalking collected logs
- ElasticSearch 6 storage relative tests are removed. It worked and is not promised due to end of life officially.
- Bump up Guava to 32.0.1 to avoid the lib listed as vulnerable due to CVE-2020-8908. This API is never used.
- Maven artifact `skywalking-log-recevier-plugin` is renamed to `skywalking-log-receiver-plugin`.
- Bump up cli version 0.11 to 0.12.
- Bump up the version of ASF parent pom to v30.
- Make builds reproducible for automatic releases CI.
- + 102 more
9.5.0v9.5.0
📋 Changes
- Fix `Duplicate class found` due to the `delombok` goal.
- Fix wrong layer of metric `user error` in DynamoDB monitoring.
- ElasticSearch storage does not check field types when OAP running in `no-init` mode.
- Support to bind TLS status as a part of component for service topology.
- Fix component ID priority bug.
- Fix component ID of topology overlap due to storage layer bugs.
- [Breaking Change] Enhance JDBC storage through merging tables and managing day-based table rolling.
- [Breaking Change] Sharding-MySQL implementations and tests get removed due to we have the day-based rolling mechanism by default
- + 77 more
9.4.0v9.4.0
📋 Changes
- Bump up Zipkin and Zipkin lens UI dependency to 2.24.0.
- Bump up Apache parent pom version to 29.
- Bump up Armeria version to 1.21.0.
- Clean up maven `pom.xml`s.
- Bump up Java version to 11.
- Bump up snakeyaml to 2.0.
- Add `ServerStatusService` in the core module to provide a new way to expose booting status to other modules.
- Adds Micrometer as a new component.(ID=141)
- + 117 more
9.3.0v9.3.0
📋 Changes
- Bump up the embedded `swctl` version in OAP Docker image.
- Add component ID(133) for impala JDBC Java agent plugin and component ID(134) for impala server.
- Use prepareStatement in H2SQLExecutor#getByIDs.(No function change).
- Bump up snakeyaml to 1.32 for fixing CVE.
- Fix `DurationUtils.convertToTimeBucket` missed verify date format.
- Enhance LAL to support converting LogData to DatabaseSlowStatement.
- [Breaking Change] Change the LAL script format(Add layer property).
- Adapt ElasticSearch 8.1+, migrate from removed APIs to recommended APIs.
- + 142 more
9.2.0v9.2.0
📋 Changes
- [Critical] Fix a low performance issue of metrics persistent in the ElasticSearch storage implementation. One single
- Upgrade Armeria to 1.16.0, Kubernetes Java client to 15.0.1.
- Add more entities for Zipkin to improve performance.
- ElasticSearch: scroll id should be updated when scrolling as it may change.
- Mesh: fix only last rule works when multiple rules are defined in metadata-service-mapping.yaml.
- Support sending alarm messages to PagerDuty.
- Support Zipkin kafka collector.
- Add `VIRTUAL` detect type to Process for Network Profiling.
- + 83 more
9.1.0v9.1.0
📋 Changes
- [IMPORTANT] Remove InfluxDB 1.x and Apache IoTDB 0.X as storage options, check details
- Upgrade OAP dependencies zipkin to 2.23.16, H2 to 2.1.212, Apache Freemarker to 2.3.31, gRPC-java 1.46.0, netty to
- Upgrade Webapp dependencies, spring-cloud-dependencies to 2021.0.2, logback-classic to 1.2.11
- [IMPORTANT] Add BanyanDB storage implementation. Notice BanyanDB is currently under active development
- Add component definition(ID=127) for `Apache ShenYu (incubating)`.
- Fix Zipkin receiver: Decode spans error, missing `Layer` for V9 and wrong time bucket for generate Service and
- [Refactor] Move SQLDatabase(H2/MySQL/PostgreSQL), ElasticSearch and BanyanDB specific configurations out of column.
- Support BanyanDB global index for entities. Log and Segment record entities declare this new feature.
- + 90 more
9.0.0v9.0.0
📋 Changes
- Upgrade log4j2 to 2.17.1 for CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 and CVE-2021-44832. This CVE only effects
- Upgrade maven-wrapper to 3.1.0, maven to 3.8.4 for performance improvements and ARM more native support.
- Exclude unnecessary libs when building under JDK 9+.
- Migrate base Docker image to eclipse-temurin as adoptopenjdk is deprecated.
- Add E2E test under Java 17.
- Upgrade protoc to 3.19.2.
- Add Istio 1.13.1 to E2E test matrix for verification.
- Upgrade Apache parent pom version to 25.
- + 130 more
8.9.1v8.9.1
📋 Changes
- Upgrade log4j2 to 2.15.0 for CVE-2021-44228. This CVE only effects on JDK versions below 6u211, 7u201, 8u191 and 11.0.1 according to [the post](https://securityboulevard.com/2021/12/critical-new-0-day-vulnerability-in-popular-log4j-library-discovered-with-evidence-of-mass-scanning-for-affected-applications/amp/). Notice, using JVM option `-Dlog4j2.formatMsgNoLookups=true` also avoids CVE if your JRE opened JNDI by default.
8.9.0v8.9.0
📋 Changes
- E2E tests immigrate to e2e-v2.
- Support JDK 16 and 17.
- Add Docker images for arm64 architecture.
- Add component definition for `Jackson`.
- Fix that zipkin-receiver plugin is not packaged into dist.
- Upgrade Armeria to 1.12, upgrade OpenSearch test version to 1.1.0.
- Add component definition for `Apache-Kylin`.
- Enhance `get` generation mechanism of OAL engine, support map type of source's field.
- + 62 more
8.8.1v8.8.1
📋 Changes
- Fix wrong (de)serializer of ElasticSearch client for OpenSearch storage.
- Fix that traces query with tags will report error.
- Replace e2e simple cases to e2e-v2.
- Fix endpoint dependency breaking.
- Delete duplicate calls for endpoint dependency.
8.8.0v8.8.0
📋 Changes
- Split javaagent into skywalking-java repository. https://github.com/apache/skywalking-java
- Merge `Dockerfile`s from apache/skywalking-docker into this codebase.
- Fix CVE-2021-35515, CVE-2021-35516, CVE-2021-35517, CVE-2021-36090. Upgrade org.apache.commons:commons-compress to 1.21.
- kubernetes java client upgrade from 12.0.1 to 13.0.0
- Add `event` http receiver
- Support Metric level function `serviceRelation` in `MAL`.
- Support envoy metrics binding into the topology.
- Fix openapi-definitions folder not being read correctly.
- + 63 more
8.7.0v8.7.0
📋 Changes
- Extract dependency management to a bom.
- Add JDK 16 to test matrix.
- DataCarrier consumer add a new event notification, call `nothingToConsume` method if the queue has no element to
- Build and push snapshot Docker images to GitHub Container Registry, this is only for people who want to help to test
- Supports modifying span attributes in async mode.
- Agent supports the collection of JVM arguments and jar dependency information.
- [Temporary] Support authentication for log report channel. This feature and grpc channel is going to be removed after
- Remove deprecated gRPC method, `io.grpc.ManagedChannelBuilder#nameResolverFactory`.
- + 95 more
8.6.0v8.6.0
📋 Changes
- Add OpenSearch as storage option.
- Upgrade Kubernetes Java client dependency to 11.0.
- Fix plugin test script error in macOS.
- Add `trace_segment_ref_limit_per_span` configuration mechanism to avoid OOM.
- Improve `GlobalIdGenerator` performance.
- Add an agent plugin to support elasticsearch7.
- Add `jsonrpc4j` agent plugin.
- new options to support multi skywalking cluster use same kafka cluster(plugin.kafka.namespace)
- + 67 more
8.5.0v8.5.0
📋 Changes
- Incompatible Change. Indices and templates of ElasticSearch(6/7, including zipkin-elasticsearch7) storage option have been changed.
- Update frontend-maven-plugin to 1.11.0, for Download node x64 binary on Apple Silicon.
- Add E2E test for VM monitoring that metrics from Prometheus node-exporter.
- Upgrade lombok to 1.18.16.
- Add Java agent Dockerfile to build Docker image for Java agent.
- Remove invalid mysql configuration in agent.config.
- Add net.bytebuddy.agent.builder.AgentBuilder.RedefinitionStrategy.Listener to show detail message when redefine errors occur.
- Fix ClassCastException of log4j gRPC reporter.
- + 83 more
8.4.0v8.4.0
📋 Changes
- Incompatible with previous releases when use H2/MySQL/TiDB storage options, due to support multiple alarm rules triggered for one entity.
- Chore: adapt `create_source_release.sh` to make it runnable on Linux.
- Add `package` to `.proto` files, prevent polluting top-level namespace in some languages; The OAP server supports previous agent releases, whereas the previous OAP server (<=8.3.0) won't recognize newer agents since this version (>= 8.4.0).
- Add ElasticSearch 7.10 to test matrix and verify it works.
- Replace Apache RAT with skywalking-eyes to check license headers.
- Set up test of Envoy ALS / MetricsService under Istio 1.8.2 to verify Envoy V3 protocol
- Test: fix flaky E2E test of Kafka.
- The operation name of quartz-scheduler plugin, has been changed as the `quartz-scheduler/${className}` format.
- + 111 more
8.3.0v8.3.0
📋 Changes
- Test: ElasticSearch version 7.0.0 and 7.9.3 as storage are E2E tested.
- Test: Bump up testcontainers version to work around the Docker bug on MacOS.
- Support propagate the sending timestamp in MQ plugins to calculate the transfer latency in the async MQ scenarios.
- Support auto-tag with the fixed values propagated in the correlation context.
- Make HttpClient 3.x, 4.x, and HttpAsyncClient 3.x plugins to support collecting HTTP parameters.
- Make the Feign plugin to support Java 14
- Make the okhttp3 plugin to support Java 14
- Polish tracing context related codes.
- + 53 more
8.2.0v8.2.0
📋 Changes
- Support Browser monitoring.
- Add e2e test for ALS solution of service mesh observability.
- Support compiling(include testing) in JDK11.
- Support build a single module.
- Support metrics plugin.
- Support slf4j logs of gRPC and Kafka(when agent uses them) into the agent log files.
- Add `PROPERTIES_REPORT_PERIOD_FACTOR` config to avoid the properties of instance cleared.
- Limit the size of traced SQL to avoid OOM.
- + 84 more
8.1.0v8.1.0
📋 Changes
- Support Kafka as an optional trace, JVM metrics, profiling snapshots and meter system data transport layer.
- Support Meter system, including the native metrics APIs and the Spring Sleuth adoption.
- Support JVM thread metrics.
- [Core] Fix the concurrency access bug in the Concurrency ClassLoader Case.
- [Core] Separate the config of the plugins from the core level.
- [Core] Support instrumented class cached in memory or file, to be compatible with other agents, such as Arthas.
- Add logic endpoint concept. Could analysis any span or tags flagged by the logic endpoint.
- Add Spring annotation component name for UI visualization only.
- + 44 more
8.0.1v8.0.1
📋 Changes
- Fix `no-init` mode is not working in ElasticSearch storage.
8.0.0v8.0.0
📋 Changes
- v3 protocol is added and implemented. All previous releases are incompatible with 8.x releases.
- Service, Instance, Endpoint register mechanism and inventory storage entities are removed.
- New GraphQL query protocol is provided, the legacy procotol is still supported(plan to remove at the end of this year).
- Support Prometheus network protocol. Metrics in Prometheus format could be transferred into SkyWalking.
- Python agent provided.
- All inventory caches have been removed.
- Apache ShardingSphere(4.0.0, 4.1.1) agent plugin provided.
- Add MariaDB plugin.
- + 33 more
7.0.0v7.0.0
📋 Changes
- SkyWalking discards the supports of JDK 1.6 and 1.7 on the java agent side. The minimal requirement of JDK is JDK8.
- Support method performance profile.
- Provide new E2E test framework.
- Remove AppVeyor from the CI, use GitHub action only.
- Provide new plugin test tool.
- Don't support SkyWalking v5 agent in-wire and out-wire protocol. v6 is required.
- Add lazy injection API in the agent core.
- Support Servlet 2.5 in the Struts plugin.
- + 43 more
6.6.0v6.6.0
📋 Changes
- [IMPORTANT] Local span and exit span are not treated as endpoint detected at client and local. Only entry span is the endpoint. Reduce the load of register and memory cost.
- Support MiniKube, Istio and SkyWalking on K8s deployment in CI.
- Support Windows and MacOS build in GitHub Action CI.
- Support ElasticSearch 7 in official dist.
- Hundreds plugin cases have been added in GitHub Action CI process.
- Remove the local/exit span operation name register mechanism.
- Add plugin for JDK Threading classes.
- Add plugin for Armeria.
- + 31 more
6.5.0v6.5.0
📋 Changes
- Compatible with 6.4.0 release
- TTL E2E test (#3437)
- Test coverage is back in pull request check status (#3503)
- Plugin tests begin to be migrated into main repo, and is in process. (#3528, #3756, #3751, etc.)
- Switch to SkyWalking CI (exclusive) nodes (#3546)
- MySQL storage e2e test. (#3648)
- E2E tests are verified in multiple jdk versions, jdk 8, 9, 11, 12 (#3657)
- Jenkins build jobs run only when necessary (#3662)
- + 51 more
