Skip to content

Apache SkyWalking

Apache Software Foundation APM and observability analysis platform for distributed systems, microservices, cloud-native, and service mesh environments.

Overview

Apache SkyWalking is a mature, enterprise-grade observability platform designed for distributed system, microservice, and cloud-native architectures. Governed by the Apache Software Foundation (ASF), it provides APM, distributed tracing, metrics, logging, event analysis, and topology visualization. Its architecture is highly pluggable, with BanyanDB as its native purpose-built observability database.

Repository & Community

Attribute Detail
Repository github.com/apache/skywalking
Stars ~24.8k ⭐
Latest Version APM 10.4.0 (April 1, 2026), BanyanDB 0.10.1 (April 6, 2026)
Language Java (OAP Server), Go (Satellite, BanyanDB)
License Apache 2.0
Governance Apache Software Foundation (ASF Top-Level Project)
Contributors ~996

Evaluation

  • Why it's better: Full ASF governance (no single-vendor risk), exceptional multi-language agent support (Java, .NET, Go, Python, Node.js, PHP, Rust, C++), native service mesh integration (Istio/Envoy), purpose-built BanyanDB reduces resource usage 5x vs Elasticsearch, and pioneering GenAI observability features.

  • When it fits (Applicability):

  • Java-heavy enterprise environments
  • Service mesh deployments (Istio/Envoy) needing topology analysis
  • Organizations requiring ASF governance and vendor-neutrality
  • Large-scale distributed systems (100B+ telemetry data points)
  • Teams needing multi-language auto-instrumentation agents

  • Pros and Cons:

Pros Cons
ASF governance (no vendor lock-in) Java ecosystem (JVM overhead for OAP)
Best-in-class Java agent Steeper learning curve than SigNoz/Coroot
10+ language agents BanyanDB still maturing (v0.10)
BanyanDB: 5x less RAM than ES Older UI compared to modern alternatives
Service mesh native (Istio/Envoy) Complex multi-repo ecosystem
GraalVM native image support Less OTel-native (proprietary agent format)
GenAI/LLM observability (v10.4) Helm chart complexity
eBPF network profiling Smaller cloud presence vs Grafana

Architecture

flowchart TB
    subgraph Probes["Probes & Agents"]
        JA["Java Agent"]
        NA[".NET / Go / Python<br/>Node.js / PHP Agents"]
        SW_eBPF["eBPF Agent<br/>(Rover)"]
        OTEL_P["OTel Collector"]
        Envoy["Envoy ALS<br/>(Service Mesh)"]
    end

    subgraph OAP["OAP Server<br/>(Observability Analysis Platform)"]
        direction TB
        Recv["Receiver Layer<br/>(gRPC, REST, Kafka)"]
        Core["Analysis Core<br/>(MAL, MQE, LAL)"]
        Alert["Alerting Engine"]
        Topo["Topology Analysis"]
    end

    subgraph StorageLayer["Storage (Pluggable)"]
        BDB["BanyanDB<br/>(recommended)"]
        ES["Elasticsearch<br/>/ OpenSearch"]
        CH_SW["ClickHouse"]
        PG["PostgreSQL"]
    end

    Probes --> OAP
    OAP --> StorageLayer
    OAP --> SWUI["SkyWalking UI"]

    style BDB fill:#1b5e20,color:#fff
    style OAP fill:#0d47a1,color:#fff

Key Components

Component Role
Language Agents Auto-instrument Java, .NET, Go, Python, Node.js, PHP, Rust, C++
OAP Server Core analysis engine: ingestion, aggregation, topology, alerting
BanyanDB Native observability database: 5x less RAM, 30% less disk vs ES
SkyWalking UI Web dashboard: topology, trace waterfall, metrics, logs
Satellite (Go) Sidecar/edge agent for proxy, rate limiting, load balancing
Rover (eBPF) Kernel-level network profiling agent

Sub-Projects & Versions (April 2026)

Sub-Project Version Status
SkyWalking APM 10.4.0 Production
BanyanDB 0.10.1 Production-ready
Java Agent 9.5.0 Stable
GraalVM Distro Experimental ~41 MiB idle vs ~1.2 GiB JVM
Satellite Latest Production
Rover (eBPF) Latest Production

Key Features

Feature Detail
Multi-Language APM Auto-instrumentation for 10+ languages
Service Mesh Native Istio/Envoy ALS topology analysis
BanyanDB Purpose-built columnar + time-series DB
eBPF Profiling Network profiling via Rover agent
GenAI Observability LLM latency, TTFT, token usage, cost (v10.4)
Topology Analysis Auto-discovered service dependency graphs
Alerting Rule-based + ML-powered anomaly detection
GraalVM Native Sub-ms startup, 30x less memory
100B+ Scale Proven at massive telemetry volumes

Compatibility

Dimension Support
Probe protocols Native SW, OpenTelemetry, Zipkin, Prometheus, Zabbix
Storage backends BanyanDB (recommended), Elasticsearch, OpenSearch, ClickHouse, PostgreSQL, H2
Service meshes Istio, Envoy (ALS), Linkerd
Languages Java, .NET, Go, Python, Node.js, PHP, Rust, C++, Lua
Platforms Kubernetes (Helm/Operator), Docker, bare metal, GraalVM native
CPU architecture amd64, arm64

Sources

Tracked URLs, documentation references, and source materials for the SkyWalking folder.

Official Documentation

Source URL Retrieved Via
Official Website https://skywalking.apache.org/ Direct
Documentation https://skywalking.apache.org/docs/ Direct
Downloads https://skywalking.apache.org/downloads/ Direct
BanyanDB Docs https://skywalking.apache.org/docs/skywalking-banyandb/latest/readme/ Direct
Rover Docs https://skywalking.apache.org/docs/skywalking-rover/latest/readme/ Defuddle
OAP Config Vocab https://skywalking.apache.org/docs/main/latest/en/setup/backend/configuration-vocabulary/ Direct

Engineering Blogs

Source URL Retrieved Via
GraalVM Distro: Design & Benchmarks https://skywalking.apache.org/blog/2026-03-13-skywalking-graalvm-distro-design-and-benchmarks/ Defuddle
BanyanDB Benchmark Blog https://skywalking.apache.org/blog/ Web Search

Repositories

Repository URL
SkyWalking (main) https://github.com/apache/skywalking
BanyanDB https://github.com/apache/skywalking-banyandb
Java Agent https://github.com/apache/skywalking-java
GraalVM Distro https://github.com/apache/skywalking-graalvm-distro
Rover (eBPF) https://github.com/apache/skywalking-rover
Satellite (Go) https://github.com/apache/skywalking-satellite
Helm Charts https://hub.docker.com/r/apache/skywalking-helm

Release Data

Source URL Retrieved Via
GitHub Releases https://github.com/apache/skywalking/releases Web Search
GraalVM Distro Release https://skywalking.apache.org/events/release-apache-skywalking-graalvm-distro-0.3.0/ Defuddle

Community

Source URL
Dev Mailing List https://lists.apache.org/[email protected]
GitHub Discussions https://github.com/apache/skywalking/discussions
CWIKI https://cwiki.apache.org/confluence/display/SKYWALKING/Home

Questions

Open and answered questions about Apache SkyWalking.

Open Questions

Answered Questions

  • What is the production-ready BanyanDB cluster sizing guidance for 100B+ data points? — No published sizing guide at 100B+ scale yet. The official benchmark (BanyanDB v0.6.1) tested with 3 Data Nodes (8 CPU, 4 GB RAM, 50 GB storage each), 3 ETCD/Meta Nodes (2 CPU, 4 GB), and 2 Liaison Nodes (4 CPU, 4 GB), showing ~50% less CPU, ~50% less memory, and ~40% less disk vs Elasticsearch at similar scale. BanyanDB is still recommended for "medium-scale deployments" until v1.0. For 100B+ data points, expect to scale Data Nodes horizontally and increase storage significantly; consult the SkyWalking dev mailing list for community guidance.
  • How does BanyanDB handle cross-datacenter replication? — Cross-datacenter replication is not currently supported. BanyanDB v0.8.0 added data file snapshotting for backups and periodic metadata sync from etcd to local cache, but active-active or cross-DC replication is not in the current feature set. Multi-region deployments would require operating independent BanyanDB clusters per datacenter. Check the BanyanDB roadmap on GitHub for future plans.
  • What is the GraalVM Distro coverage for all OAP modules? — GraalVM support is limited and separated into the standalone skywalking-graalvm-distro project (see Issue 11518). Due to the complexity of the GraalVM ecosystem and native-image constraints (reflection, class loading, dynamic agents), only a subset of OAP modules are supported — primarily core storage (BanyanDB) and basic receiver functionality. Many modules that rely on JVM-specific features (Java agent instrumentations, dynamic classloading) are excluded. Coverage is expanding incrementally.
  • How does the v10.4.0 LAL breaking change (slowSql {} removal) affect existing deployments? — The slowSql LAL filter was removed as part of LAL engine refactoring in the 10.x line. Existing deployments using slowSql {} in their LAL scripts will fail to parse on upgrade. Migration requires replacing slowSql() calls with generic LAL primitives: use json() or regex() for SQL extraction from logs, and tag() for setting relevant tags. Alternatively, use SkyWalking's native database slow SQL monitoring which now captures slow statements automatically without LAL parsing. The built-in LAL files (mysql-slowsql, pgsql-slowsql, redis-slowsql) were updated to use the new syntax. Resolved in observability/skywalking/operations#v10.4.0 Migration Notes.
  • What is the practical throughput ceiling for Rover eBPF agent vs Coroot's node-agent? — No direct benchmark comparison exists. SkyWalking Rover uses eBPF for CPU profiling (on-cpu/off-cpu) and network profiling (TCP/HTTP traffic), with default 10-minute monitoring windows and 20-minute cooldown periods to limit overhead. It targets diagnostic/triggered profiling rather than continuous high-throughput collection. Coroot's node-agent also uses eBPF but focuses on continuous metrics collection. A direct throughput comparison has not been published by either project. Benchmark comparison remains TBD.
  • What storage backend should I use? → BanyanDB (recommended), uses 5x less RAM and 30% less disk than Elasticsearch. See observability/skywalking/architecture.
  • How fast does GraalVM native image start? → ~5ms vs ~635ms JVM. See observability/skywalking/architecture#Benchmarks.
  • Does SkyWalking support OpenTelemetry? → Yes, OTLP receiver in OAP. Native agents preferred for Java.
  • How many threads does OAP use? → ~150+ (JVM V1), ~72 (V2 with virtual threads on JDK 25+). See observability/skywalking/architecture#Benchmarks.
  • Can SkyWalking integrate with Grafana? → Yes, via PromQL plugin for metrics visualization.