Reference¶
Look-up facts for Apache SkyWalking: release and compatibility matrices, ports, configuration keys, BanyanDB groups and default TTLs, supported storage versions, language agents, benchmark results, and a hardening checklist. For how the pieces work see Explanation; for step-by-step tasks see How-to Guides.
Data source
Versions and dates below come from the SkyWalking website release catalog (apache/skywalking-website data/projects.yml), the apache/skywalking changelogs (docs/en/changes/), and application.yml / bydb.yml at tag v11.0.0. Checked 2026-09-25.
Release Matrix¶
Latest release per sub-project, as listed on the SkyWalking downloads catalog.
| Sub-project | Latest version | Release date | Notes |
|---|---|---|---|
| SkyWalking (OAP server) | 11.0.0 | 2026-08-28 | "Horizon Ready, Runtime Rule Hot-Update and Live DSL Debugger"; no bundled UI |
| Horizon UI | 1.0.0 | 2026-08-28 | New official UI; image apache/skywalking-ui:horizon-1.0.0 |
| BanyanDB | 0.11.1 | 2026-09-20 | 0.11.0 released 2026-08-28; required by OAP 11 |
| BanyanDB Helm chart | 0.7.0 | 2026-09-08 | Standalone BanyanDB chart; subchart of skywalking-helm 5.0.0 |
Kubernetes Helm (skywalking-helm) |
5.0.0 | 2026-09-01 | OCI chart oci://docker.io/apache/skywalking-helm |
| SkyWalking Cloud on Kubernetes (SWCK) | 0.11.0 | 2026-09-01 | Operator, Java agent injector, custom metrics adapter |
| GraalVM Distro (experimental) | 0.4.0 | 2026-09-10 | Native-image OAP, BanyanDB only |
| AI Sessionizer | 0.5.0 | 2026-09-24 | Conversation-level observability for AI agents |
| SkyWalking MCP | 0.2.0 | 2026-04-12 | Model Context Protocol server for SkyWalking data |
SkyWalking CLI (swctl) |
0.14.0 | 2024-10-21 | |
| Satellite | 1.3.0 | 2025-02-24 | Edge collector / proxy |
| Rover (eBPF) | 0.7.0 | 2024-10-21 | 0.8.0 in development (changelog open, unreleased as of 2026-09-25) |
| Kubernetes Event Exporter | 1.0.0 | 2022-04-25 | |
| SkyWalking Eyes | 0.9.0 | 2026-08-28 | License-header checker (developer tool) |
| SkyWalking Infra E2E | 1.3.0 | 2023-11-13 | E2E test framework (developer tool) |
| Grafana plugin for service topology | 0.1.0 | 2023-09-12 |
OAP Release History (10.x and later)¶
| Version | Date | Headline changes |
|---|---|---|
| 11.0.0 | 2026-08-28 | Bundled booster UI and apm-webapp removed, Horizon UI official; new admin-server (port 17128) hosting runtime-rule hot-update, live DSL debugger, inspect, UI-management and status APIs; TLS for every HTTP server with hot reload; OTLP/HTTP receiver; Elasticsearch 9.x storage; BanyanDB API 0.11 required |
| 10.4.0 | 2026-04-01 | OAL V2 engine; MAL/LAL/Hierarchy V2 engine (ANTLR4 + Javassist, Groovy runtime removed); LAL slowSql {} / sampledTrace {} removed; BatchQueue replaces DataCarrier; virtual threads on JDK 25+; default image JDK 25; TraceQL / Tempo API; GenAI and Envoy AI Gateway monitoring |
| 10.3.0 | 2025-11-10 | New BanyanDB trace model (breaking); BanyanDB 0.9.0; Go agent pprof profiling support |
| 10.2.0 | 2025-03-27 | H2 storage removed permanently; BanyanDB 0.8.0 required (breaking); OAP jars no longer published to Maven Central; async-profiler support; AI-pipeline metric baselines |
| 10.1.0 | 2024-10-07 | |
| 10.0.1 | 2024-05-30 | |
| 10.0.0 | 2024-05-13 | Java 21 runtime support; percentile deprecated in favour of percentile2 |
Source: docs/en/changes/changes-<version>.md in apache/skywalking.
Compatibility Matrices¶
OAP and BanyanDB (hard coupling)¶
OAP accepts an exact list of BanyanDB server API versions (SW_STORAGE_BANYANDB_COMPATIBLE_SERVER_API_VERSIONS in bydb.yml). Any other server version makes OAP refuse to start with Incompatible BanyanDB server API version.
| OAP | Accepted BanyanDB API | BanyanDB release |
|---|---|---|
| 11.0.0 | 0.11 | 0.11.x |
| 10.4.0 | 0.10 | 0.10.x |
| 10.3.0 | 0.9 | 0.9.x |
| 10.2.0 | 0.8 | 0.8.x |
OAP and Horizon UI (soft coupling)¶
| OAP | Horizon 1.0.0 support | Extra configuration |
|---|---|---|
| 11.x | Native, full feature set | None |
| 10.3 – 10.4 | Partial (data plane only) | ui.config.templates.mode: readonly and oap.ports.admin: null in the Helm chart |
| < 10.3 | Partial, with query gaps | As above |
The legacy booster UI's last image is apache/skywalking-ui:10.4.0; no 11.x booster image exists.
Helm Chart 5.0.0 Tested Set¶
| Component | Version |
|---|---|
| OAP | 11.0.0 (oap.image.tag, required) |
| Horizon UI | horizon-1.0.0 (ui.image.tag, required) |
| BanyanDB | 0.11.0 (banyandb.image.tag, required when enabled) |
skywalking-banyandb-helm subchart |
0.7.0 |
| Elasticsearch (ECK-managed) | 8.18.8 |
| PostgreSQL (Bitnami subchart, demo only) | 15.1.0 |
| Kubernetes in CI | v1.28.15 (kind) |
| Helm | 3.8+ (OCI install) |
Source: apache/skywalking-helm docs/evaluate/version-compatibility.md.
Storage Backends¶
| Backend | SW_STORAGE |
Versions supported by OAP 11 | Positioning (upstream docs) |
|---|---|---|---|
| BanyanDB | banyandb (default since the H2 removal in 10.2.0) |
0.11.x only | Native APM database, recommended |
| Elasticsearch | elasticsearch |
7.x, 8.x, 9.x (9.x added in 11.0.0) | Large-scale production; high memory and replication cost |
| OpenSearch | elasticsearch |
1.x, 2.x, 3.x | Same plugin as Elasticsearch |
| MySQL (and compatible, e.g. TiDB, Aurora) | mysql |
TBD — see upstream storages/mysql.md |
Medium scale, low trace/log sampling rates |
| PostgreSQL (and compatible) | postgresql |
8.2+ (JDBC driver 42.x) | Medium scale, low trace/log sampling rates |
Not storage backends
H2 was removed in 10.2.0. ClickHouse is a monitored target (otel-rules/clickhouse/*), not an OAP storage option.
Runtime Requirements¶
| Item | Requirement |
|---|---|
| OAP JDK | Java 11, 17, 21 or 25 (compiled for Java 11) |
| Default OAP image | eclipse-temurin:25-jre; -java11, -java17, -java21 tag variants |
| Virtual threads | Used automatically on JDK 25+; disable with SW_VIRTUAL_THREADS_ENABLED=false |
| CPU architectures | amd64 and arm64 images (BanyanDB dropped Windows binaries/images in 0.10.0) |
| Kubernetes install | Helm 3.8+ for OCI charts; SWCK needs cert-manager |
Ports¶
| Port | Component | Protocol | Purpose |
|---|---|---|---|
| 11800 | OAP core | gRPC | Agent data (native protocol, OTLP/gRPC), OAP cluster traffic |
| 12800 | OAP core | HTTP | GraphQL query API, REST receivers, OTLP/HTTP (/v1/traces, /v1/logs, /v1/metrics, since 11.0.0), /healthcheck |
| 17128 | OAP admin-server (11.0+) | HTTP | Runtime rules, DSL debugging, inspect, UI templates, /status/*, /debugging/*; no built-in auth |
| 17129 | OAP admin-server (11.0+) | gRPC | Admin-internal bus between OAP nodes only |
| 1234 | OAP telemetry | HTTP | Prometheus self-observability metrics (SW_TELEMETRY=prometheus) |
| 9090 | OAP PromQL service | HTTP | PromQL API (Grafana data source) |
| 3100 | OAP LogQL service | HTTP | LogQL API |
| 3200 | OAP TraceQL service | HTTP | Tempo-compatible API (module off by default) |
| 9411 / 9412 | OAP Zipkin receiver / query | HTTP | Zipkin v2 ingest / query (off by default) |
| 12801 | OAP AWS Firehose receiver | HTTP | CloudWatch metric streams |
| 17912 | BanyanDB liaison | gRPC | OAP writes and queries |
| 17913 | BanyanDB liaison | HTTP | bydbctl, embedded web UI, HTTP API |
| 17916 | BanyanDB | gRPC | Property-based schema server |
| 2121 | BanyanDB | HTTP | Observability metrics listener |
| 8081 | Horizon UI container | HTTP | UI and BFF (Helm Service fronts it on 80) |
Sources: application.yml at v11.0.0; BanyanDB docs/operation/configuration.md at v0.11.0; Helm upgrade guide.
Key OAP Configuration Keys¶
| Environment variable | Default (11.0.0) | Purpose |
|---|---|---|
SW_STORAGE |
banyandb |
Storage selector: banyandb, elasticsearch, mysql, postgresql |
SW_CLUSTER |
standalone |
Cluster coordinator: standalone, zookeeper, kubernetes, consul, etcd, nacos |
SW_CORE_GRPC_PORT / SW_CORE_REST_PORT |
11800 / 12800 |
Core ports |
SW_CORE_RECORD_DATA_TTL |
3 (days) |
Traces, logs, sampled records; ignored on BanyanDB |
SW_CORE_METRICS_DATA_TTL |
7 (days) |
Metrics and metadata; ignored on BanyanDB |
SW_STORAGE_BANYANDB_TARGETS |
127.0.0.1:17912 |
BanyanDB liaison address list |
SW_STORAGE_BANYANDB_USER / _PASSWORD |
empty | BanyanDB basic auth |
SW_STORAGE_BANYANDB_SSL_TRUST_CA_PATH |
empty | CA for BanyanDB TLS |
SW_STORAGE_BANYANDB_COMPATIBLE_SERVER_API_VERSIONS |
0.11 |
Accepted BanyanDB API versions |
SW_STORAGE_ES_CLUSTER_NODES |
localhost:9200 |
Elasticsearch / OpenSearch nodes |
SW_AUTHENTICATION |
empty | Shared agent token on the receiver sharing server |
SW_CORE_GRPC_SSL_ENABLED |
false |
TLS on core gRPC (with _KEY_PATH, _CERT_CHAIN_PATH, _TRUSTED_CA_PATH) |
SW_CORE_REST_SSL_* |
disabled | TLS on core HTTP (11.0.0+, hot-reloaded) |
SW_OTEL_RECEIVER_ENABLED_HANDLERS |
otlp-traces,otlp-metrics,otlp-logs |
OTLP signal handlers |
SW_ADMIN_SERVER |
default (enabled) |
Set empty to disable the admin host |
SW_TELEMETRY |
prometheus |
Self-observability exporter |
SW_HEALTH_CHECKER |
default |
Health checker module (/healthcheck) |
SW_TRACEQL / SW_RECEIVER_ZIPKIN / SW_QUERY_ZIPKIN |
- (disabled) |
Optional modules |
BanyanDB Groups and Default TTLs¶
OAP creates BanyanDB groups named <namespace>_<group> (default namespace sw, for example sw_metricsMinute). Hot-stage defaults from bydb.yml at v11.0.0; warm and cold stages are disabled by default.
| Group | Holds | Hot TTL (days) | Warm TTL (days) | Cold TTL (days) |
|---|---|---|---|---|
records |
Sampled records (slow SQL, alarms, etc.) | 3 | 7 | 30 |
trace |
SkyWalking native traces | 3 | 7 | 30 |
zipkinTrace |
Zipkin / OTLP-converted traces | 3 | 7 | 30 |
recordsLog |
Logs | 3 | 7 | 30 |
recordsBrowserErrorLog |
Browser error logs | 3 | 7 | 30 |
metricsMinute |
Minute metrics | 7 | 15 | 60 |
metricsHour |
Hour metrics | 15 | 30 | 120 |
metricsDay |
Day metrics | 15 | 30 | 120 |
metadata |
Service / instance / endpoint lists | 15 | — | — |
property |
Properties (UI templates, config) | — | — | — |
Each stage is tunable through SW_STORAGE_BANYANDB_<GROUP>_TTL_DAYS, ..._WARM_TTL_DAYS, ..._ENABLE_WARM_STAGE, and so on. Warm/cold nodes are chosen by nodeSelector (type=warm, type=cold). The trace and zipkinTrace groups also carry a tail-sampling pipeline block (disabled by default; sw-trace-sampler keeps errors, traces over 500 ms, and 10% of healthy traces when enabled).
Language Agents and Probes¶
| Agent | Latest | Date | Governance |
|---|---|---|---|
| Java | 9.7.0 | 2026-08-14 | ASF (skywalking-java) |
| Python | 1.3.0 | 2026-08-14 | ASF (PyPI apache-skywalking) |
| Go (compile-time instrumentation) | 0.7.0 | 2026-08-07 | ASF (skywalking-go) |
| NodeJS | 0.9.0 | 2026-06-26 | ASF (npm skywalking-backend-js) |
| PHP | 1.1.0 | 2026-03-16 | ASF |
| Client JavaScript (browser) | 1.1.0 | 2026-03-30 | ASF |
| Rust | 0.10.0 | 2025-07-14 | ASF |
| Ruby | 0.1.0 | 2025-01-20 | ASF |
| Nginx LUA | 1.0.0 | 2024-08-19 | ASF |
| Kong | 0.2.0 | 2022-01-09 | ASF |
| .NET (SkyAPM-dotnet) | TBD | — | Community ecosystem, not an ASF release |
| C++ (cpp2sky) | TBD | — | Community ecosystem, not an ASF release |
| Rover (eBPF, C/C++/Go/Rust processes) | 0.7.0 | 2024-10-21 | ASF |
Other ingestion paths: OpenTelemetry (OTLP gRPC/HTTP), Zipkin, Prometheus via OTel Collector, Zabbix, Telegraf, Envoy ALS / metrics service, Cilium Hubble fetcher, Kafka fetcher, AWS Firehose.
Benchmarks¶
GraalVM Distro vs JVM OAP (March 2026)¶
Test: Apple M3 Max, Docker Desktop, 10 CPUs / 62.7 GB, BanyanDB storage; load from Kind + Istio 1.25.2 + Bookinfo at about 20 RPS with 2 OAP replicas.
| Metric | JVM OAP | GraalVM Distro | Change |
|---|---|---|---|
| Cold boot | 635 ms | 5 ms | ~127x faster |
| Idle RSS | ~1.2 GiB | ~41 MiB | ~97% less |
| Memory median under load | 2068 MiB | 629 MiB | -70% |
Source: GraalVM Distro design and benchmarks. The distro README (0.4.0) quotes a ~203 MB binary and a "~512MB memory footprint" for the full feature set, so treat the blog figures as best-case lab numbers.
BanyanDB 0.6.1 vs Elasticsearch 8.13.2 (June 2024)¶
Test cluster: Elasticsearch 3 master (2 CPU / 6 GB) + 3 data (4 CPU / 8 GB, 50 GB); BanyanDB 3 etcd (2 CPU / 4 GB) + 3 data (8 CPU / 4 GB, 50 GB) + 2 liaison (4 CPU / 4 GB).
| System | Mean CPU (cores) | Mean memory (MB) | Mean disk (GB) | IOPS (k) | Disk throughput (GB/s) |
|---|---|---|---|---|---|
| Elasticsearch data | 3.2 | 4147 | 29.6 | 115.5 | 12.8 |
| BanyanDB data | 3.6 | 738 | 21.6 | 21.4 | 3.3 |
| BanyanDB liaison | 1.9 | 62 | — | — | — |
Source: BanyanDB 0.6 release blog. This is the origin of the "about 5x less memory, about 30% less disk" claim. It predates the 0.7–0.11 storage rewrites (trace model, vectorized queries, etcd removal); newer single-model and hybrid benchmarks are in the BanyanDB docs under operation/benchmark/.
Upstream sizing hint (backend-storage doc): about 200 services and 200+ calls/s run stably on 2 liaison + 2 data nodes, each 4 vCPU / 8 GB.
V2 DSL Engine and Threading (10.4.0)¶
| Measurement | V1 (Groovy / DataCarrier) | V2 (10.4.0) |
|---|---|---|
| MAL execute | baseline | ~6.8x faster |
| LAL compile / execute | baseline | ~39x / ~2.8x faster |
| Hierarchy execute | baseline | ~2.6x faster |
| L1 aggregation threads (OAL + MAL) | 26 | 10 |
| L2 persistence threads | 3 | 4 |
| TopN persistence threads | 4 | 1 |
| Total OAP threads (2-node cluster, JDK 25) | 150+ | ~72 |
| Queue buffer slots (8-core) | ~13.9M | ~7.3M |
Source: changes-10.4.0.md (JMH benchmarks and thread-dump comparison run by the maintainers).
Hardening Checklist¶
| Area | Recommendation |
|---|---|
| Agent to OAP | Enable gRPC TLS (SW_CORE_GRPC_SSL_* or the sharing-server SW_RECEIVER_GRPC_SSL_*); add SW_AUTHENTICATION token |
| OAP HTTP | Enable SW_CORE_REST_SSL_* (11.0+); keep 12800 behind an authenticating proxy, it has no user auth |
| Admin server | Bind 17128/17129 to a private interface or disable with SW_ADMIN_SERVER=; never expose to the internet |
| LAL test tool | Keep SW_QUERY_GRAPHQL_ENABLE_LOG_TEST_TOOL=false (it evaluates untrusted code) |
| Horizon UI | Configure users (HORIZON_AUTH_LOCAL_USERS or LDAP) before exposure; there is no default login |
| BanyanDB | Enable --auth-config-file basic auth and --tls; set OAP SW_STORAGE_BANYANDB_USER / SW_STORAGE_BANYANDB_PASSWORD |
| Elasticsearch | HTTPS, dedicated user limited to SkyWalking indices, network restricted to OAP |
| Secrets | Use Kubernetes Secrets / Vault; Elasticsearch secretsManagementFile hot-reloads credentials; the same for BanyanDB is on the unreleased 11.1.0 changelog |
| Retention | Set TTLs per data type (core TTL for ES/JDBC, bydb.yml groups for BanyanDB) |
| Dependencies | Track OAP releases; 11.0.0 bumped log4j, jackson, netty, kafka-clients, ZooKeeper, Consul client to clear CVEs |
Sources¶
- SkyWalking downloads (backed by
apache/skywalking-websitedata/projects.yml) - OAP changelog 11.0.0 and
docs/en/changes/changes-10.x.mdin apache/skywalking - Backend storage
- Configuration vocabulary
- BanyanDB API versions
- skywalking-helm version compatibility
- GraalVM Distro benchmarks blog
- BanyanDB 0.6 release blog
- apache-skywalking on PyPI, skywalking-backend-js on npm