Apache SkyWalking¶
Summary
Apache SkyWalking is an Apache Software Foundation APM and observability platform for distributed, microservice, cloud-native and service-mesh systems. Language agents, eBPF (Rover), Envoy/Istio telemetry and OpenTelemetry feed a Java OAP server. OAP builds topology, metrics, traces, logs, profiling and alarms, and stores them in its purpose-built database BanyanDB (default) or Elasticsearch/OpenSearch, MySQL or PostgreSQL. Release 11.0.0 (2026-08-28) split the UI into the separately released Horizon UI, added runtime hot-update of MAL/LAL rules with a live DSL debugger, and requires BanyanDB 0.11.x.
Key Facts¶
| Attribute | Detail |
|---|---|
| Latest Version | OAP 11.0.0 (2026-08-28); Horizon UI 1.0.0 (2026-08-28); BanyanDB 0.11.1 (2026-09-20) |
| Previous line | 10.4.0 (2026-04-01) with BanyanDB 0.10.x and the legacy booster UI |
| Release cadence | Roughly two OAP feature releases per year (10.2.0 Mar 2025, 10.3.0 Nov 2025, 10.4.0 Apr 2026, 11.0.0 Aug 2026); no LTS or backport branches are published |
| License | Apache 2.0 |
| Governance | ASF top-level project (graduated 2019) |
| Languages | Java (OAP), Go (BanyanDB, Rover, Satellite, SWCK), TypeScript (Horizon UI) |
| Default storage | BanyanDB (H2 removed in 10.2.0) |
| OAP runtime | Java 11, 17, 21 or 25; default image on JDK 25 |
| Install paths | Helm chart 5.0.0 (OCI), SWCK operator 0.11.0, Docker Compose, binary tarball, experimental GraalVM native distro 0.4.0 |
| Repository | github.com/apache/skywalking |
| Stars / contributors | ~24.8k / ~996 (2026-04 snapshot) |
The full release matrix for every sub-project and agent is in Reference.
Architecture at a Glance¶
Probes push to OAP. OAP analyzes data with OAL/MAL/LAL, aggregates it in two levels, and persists it to one storage backend. Horizon UI and Grafana read the results through OAP's query APIs.
flowchart LR
subgraph Probes["Probes"]
AG["Language agents<br/>(Java, Python, Go, NodeJS, PHP...)"]
EB["Rover<br/>(eBPF)"]
OT["OTLP / Zipkin /<br/>Envoy ALS"]
end
subgraph OAP["OAP server"]
RX["Receivers<br/>11800 / 12800"]
AN["OAL / MAL / LAL<br/>L1 + L2 aggregation"]
QY["GraphQL, MQE,<br/>PromQL, LogQL, TraceQL"]
AD["admin-server 17128"]
end
subgraph Store["Storage"]
BDB["BanyanDB 0.11<br/>(default)"]
ALT["Elasticsearch / OpenSearch<br/>MySQL / PostgreSQL"]
end
HUI["Horizon UI"]
GF["Grafana"]
Probes --> RX --> AN --> Store
QY --> Store
HUI --> QY
HUI --> AD
GF --> QY
Internals are covered in Explanation.
Evaluation¶
Why Choose It¶
- Vendor-neutral governance: ASF project with no single-vendor licensing risk.
- Deep native APM: mature Java agent (9.7.0) plus ASF agents for Python, Go (compile-time), NodeJS, PHP, Rust, Ruby, Nginx LUA, Kong and browser JavaScript. Topology, endpoint metrics and profiling come out of the box.
- Service mesh and eBPF: Envoy ALS/metrics analysis for Istio, Cilium Hubble fetcher, and Rover eBPF on/off-CPU and network profiling.
- Purpose-built storage: BanyanDB used about 5x less memory and about 30% less disk than Elasticsearch in the 2024 benchmark (0.6.1 against ES 8.13.2).
- Operability in 11.0: rule hot-update without restarts, a live debugger for MAL/LAL/OAL, TLS with hot reload on every server, and GenAI / AI-agent monitoring layers.
When It Fits¶
- Java-heavy enterprise estates that want agent-based APM with minimal code change.
- Istio/Envoy meshes that need service topology from mesh telemetry.
- Organizations that require ASF governance and self-hosting.
- Large deployments: upstream claims "100+ billion telemetry data" per cluster (README, vendor claim).
Pros and Cons¶
| Pros | Cons |
|---|---|
| ASF governance, Apache 2.0 | OAP is a JVM service with multi-GB heaps under load (GraalVM distro is still experimental) |
| Strong Java agent and profiling (async-profiler, pprof, eBPF) | BanyanDB is still 0.x; OAP pins an exact BanyanDB API version, so upgrades are lockstep |
| Many ASF language agents | .NET and C++ agents are community projects, not ASF releases |
| BanyanDB: lower memory and disk than Elasticsearch | Rover and Satellite releases are infrequent (latest 2024-10 and 2025-02) |
| Mesh-native topology (Envoy ALS) | OTLP traces are stored as Zipkin traces in 11.0, not merged into native traces |
| Horizon UI with login, RBAC, MCP endpoint | 11.0 upgrade is breaking: new UI, admin port, and login setup required |
| Runtime MAL/LAL hot-update and live debugger (11.0) | Admin and HTTP query ports have no built-in auth; they need a gateway |
| GenAI, Envoy AI Gateway and AI-agent monitoring | Smaller hosted/cloud ecosystem than Grafana or Datadog |
Compatibility¶
| Dimension | Support |
|---|---|
| Ingest protocols | Native SkyWalking (gRPC/HTTP, Kafka), OTLP gRPC + HTTP (HTTP since 11.0.0), Zipkin, Prometheus (via OTel Collector), Telegraf, Zabbix, Envoy ALS/metrics service, Cilium Hubble, AWS Firehose |
| Storage backends | BanyanDB 0.11.x (default), Elasticsearch 7/8/9, OpenSearch 1/2/3, MySQL, PostgreSQL |
| Query APIs | GraphQL + MQE, PromQL, LogQL, TraceQL/Tempo (optional), Zipkin (optional) |
| Service meshes | Istio / Envoy (ALS and metrics service); Cilium (Hubble fetcher); Istio ambient ztunnel detection in Rover's development line |
| Platforms | Kubernetes (Helm, SWCK), Docker, bare metal; amd64 and arm64 images |
| UI | Horizon UI 1.0.0 (native for OAP 11, partial for 10.3–10.4); Grafana through PromQL/LogQL/Tempo APIs |
Ecosystem and Connections¶
- OpenTelemetry: OAP ingests OTLP metrics (through MAL rules), logs (through LAL) and traces (stored as Zipkin in 11.0). See OpenTelemetry and OpenTelemetry Collector.
- Grafana: PromQL, LogQL and Tempo-compatible APIs let Grafana dashboards query SkyWalking data. See Grafana.
- Service mesh: Istio Envoy ALS feeds mesh topology. Cilium Hubble flows feed the
CILIUM_SERVICElayer. - eBPF: Rover belongs to the same toolbox as bpftrace and Coroot's node agent.
- Kubernetes: deployed through Helm or SWCK on Kubernetes.
- Databases: PostgreSQL and MySQL work both as storage options and as monitored layers.
Alternatives and Migration¶
| Alternative | Choose it instead when |
|---|---|
| SigNoz | You want an OTel-native, ClickHouse-backed single product |
| LGTM Stack | You standardize on Grafana, Prometheus-style metrics and object storage |
| Victoria Stack | Metrics and logs volume and cost dominate |
| Coroot | You want zero-instrumentation eBPF observability |
| OpenObserve | You want S3-backed logs, metrics and traces with SQL |
Lock-in: the SkyWalking agent wire protocol (sw8 headers, segment format) and BanyanDB schemas are project-specific. OTLP ingestion and the PromQL/LogQL/TraceQL APIs reduce lock-in at the edges. Moving between storage backends means starting with empty history, because there is no supported cross-backend data migration.
Community Health¶
- ASF project with an active dev mailing list, frequent sub-project releases in 2026 (OAP, Horizon, BanyanDB, Java/Python/Go/NodeJS agents, Helm, SWCK), and SWIP design proposals (SWIP-7, 11, 12, 13, 15 landed in 11.0).
- Adoption: the upstream "Powered by" list and demo site exist. Not published: no independent adoption or deployment-count figures (checked 2026-09-28).
Topic Map¶
- How-to Guides: deploy, configure, secure, upgrade and troubleshoot SkyWalking 11.x with BanyanDB and Horizon UI.
- Reference: release and compatibility matrices, ports, config keys, BanyanDB groups and TTLs, storage versions, language agents, benchmarks, hardening checklist.
- Explanation: OAP pipeline, OAL/MAL/LAL/MQE, BanyanDB storage, Horizon UI split, Rover eBPF profiling, SWCK, OpenTelemetry integration, security model.
Related Topics¶
- Observability Stacks Comparison: seven-way comparison including SkyWalking
- LGTM Stack, Victoria Stack, SigNoz, Coroot
- OpenTelemetry, OpenTelemetry Collector
- Observability 2.0
- Istio, Cilium, Kubernetes
Sources¶
Questions¶
Open Questions¶
- What is published sizing guidance for BanyanDB at 100B+ data points? The upstream docs only give a small-cluster hint (2 liaison + 2 data nodes, 4 vCPU / 8 GB, for about 200 services). The BanyanDB docs also include single-model and hybrid benchmarks, which this page does not summarize.
- When will BanyanDB reach 1.0 and loosen the exact OAP/BanyanDB API pinning? No public roadmap date (checked 2026-09-28).
- How does throughput of Rover's eBPF network profiling compare with Coroot's node-agent? No published comparison (checked 2026-09-28).
- How much do Horizon UI's AI assistant and MCP endpoint get used in practice, and what are the operational costs? Too new (1.0.0, 2026-08) to judge.
Answered Questions¶
- Which storage backend should I use? BanyanDB 0.11.x for new OAP 11 installs (default, lowest resource use). Elasticsearch/OpenSearch if you already run it at scale. PostgreSQL/MySQL only for medium scale with low trace/log sampling. H2 is gone since 10.2.0 and ClickHouse is not a storage option. See How-to Guides.
- Does BanyanDB replicate across datacenters? No. Groups have an in-cluster
replicassetting, and upstream otherwise leans on durable block/object storage plus snapshot backups (to S3/GCS). Multi-region setups run independent clusters. - What does the GraalVM Distro cover? As of 0.4.0 it is the full OAP feature set compiled natively on JDK 25, with three limits: BanyanDB-only storage, a module set fixed at build time, and no runtime rule hot-update. Upstream measured ~5 ms startup and ~41 MiB idle RSS against ~635 ms / ~1.2 GiB for the JVM.
- How do I migrate LAL
slowSql {}rules after 10.4.0? DeclareoutputType: SlowSQLon the rule, assignid,statementandlatencyinextractor {}, and add an explicitsink {}block. See How-to Guides. - Does SkyWalking support OpenTelemetry? Yes. OTLP gRPC (11800) and, since 11.0.0, OTLP/HTTP (12800) for traces, metrics and logs. Native agents still give richer APM data.
- How many threads does OAP use? About 72 in a 2-node JDK 25 cluster on 10.4.0, down from 150+ on 10.3.0, thanks to BatchQueue and virtual threads.
- Can SkyWalking integrate with Grafana? Yes, through OAP's PromQL, LogQL and (optional) TraceQL/Tempo APIs, plus a Grafana topology plugin.
- Is the old booster UI still usable with OAP 11? No. Its last image is
apache/skywalking-ui:10.4.0; OAP 11 removed the APIs it depended on. Use Horizon UI.