Apache SkyWalking — Distributed APM & Observability Platform
Apache-licensed APM platform unifying distributed tracing, metrics, logs, and eBPF profiling for microservices and service meshes.
What it is
Apache SkyWalking is an open-source Application Performance Monitoring (APM) platform that unifies distributed tracing, metrics collection, log aggregation, and eBPF-based profiling. It supports auto-instrumentation for Java, Python, Go, Node.js, and other languages. SkyWalking provides topology maps of service dependencies and deep drill-down into individual trace spans.
SkyWalking is designed for platform teams and SREs managing microservice architectures who need end-to-end observability without the cost of commercial APM tools.
How it saves time or tokens
Commercial APM tools (Datadog, New Relic) charge per host or per GB of data. SkyWalking provides equivalent functionality as a self-hosted solution at zero licensing cost. Auto-instrumentation means you add observability to Java, Go, or Node.js services without changing application code. The unified platform replaces separate tools for tracing (Jaeger), metrics (Prometheus), and profiling (pprof) with a single integrated system.
How to use
- Start SkyWalking OAP server and UI:
docker run --name skywalking-oap -d \
-p 11800:11800 -p 12800:12800 \
apache/skywalking-oap-server:latest
docker run --name skywalking-ui -d \
-p 8080:8080 \
-e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
apache/skywalking-ui:latest
- Instrument a Java application (zero code changes):
java -javaagent:skywalking-agent.jar \
-Dskywalking.agent.service_name=my-service \
-Dskywalking.collector.backend_service=localhost:11800 \
-jar my-app.jar
- Open
http://localhost:8080to view traces, metrics, and service topology.
Example
SkyWalking auto-detects service dependencies and generates topology maps:
┌─────────┐
│ Gateway │
└────┬────┘
┌─────────┼─────────┐
┌─────┴────┐ ┌─┴────┐ ┌─┴──────┐
│ User Svc │ │Order │ │Payment │
└─────┬────┘ │ Svc │ │ Svc │
│ └──┬───┘ └────┬───┘
┌─────┴────┐ │ │
│ MySQL │ ┌──┴───┐ ┌────┴───┐
└──────────┘ │Redis │ │ Stripe │
└──────┘ └────────┘
Click any service or connection to drill down into traces, latency percentiles, and error rates.
Related on TokRepo
- Monitoring tools — Browse observability and APM tools
- DevOps tools — Explore infrastructure monitoring
Common pitfalls
- Not configuring storage for production. The default in-memory storage loses data on restart. Use Elasticsearch, BanyanDB, or PostgreSQL for persistent trace and metric storage.
- Instrumenting too many services at once. Start with the most critical services, verify traces appear correctly, then expand instrumentation to other services.
- Ignoring the sampling rate. In high-traffic systems, tracing every request generates massive data volumes. Configure sampling rates appropriate for your traffic volume.
- Starting with an overly complex configuration instead of defaults. Begin with the minimal setup, verify it works, then customize incrementally. This approach catches configuration errors early and keeps troubleshooting straightforward.
Frequently Asked Questions
SkyWalking provides auto-instrumentation agents for Java, Python, Go, Node.js, .NET, PHP, Rust, and C++. Java has the most mature agent with the widest framework coverage.
Jaeger focuses on distributed tracing only. SkyWalking provides tracing plus metrics, logs, eBPF profiling, and service topology in a unified platform. SkyWalking replaces multiple separate tools with one integrated solution.
Yes. SkyWalking provides a Helm chart for Kubernetes deployment and integrates with Istio and Envoy for service mesh observability. It can monitor both application-level and infrastructure-level metrics.
SkyWalking can profile application performance using eBPF (extended Berkeley Packet Filter) in the Linux kernel. This provides CPU profiling, network analysis, and system call tracing without modifying application code.
Yes. SkyWalking is an Apache Software Foundation top-level project, fully open source under the Apache 2.0 license. There is no commercial version or paid features.
Citations (3)
- SkyWalking GitHub— Apache SkyWalking APM platform
- SkyWalking Documentation— Auto-instrumentation agents for multiple languages
- ASF SkyWalking— Apache Software Foundation top-level project
Related on TokRepo
Discussion
Related Assets
doctest — The Fastest Feature-Rich C++ Testing Framework
doctest is a single-header C++ testing framework designed for minimal compile-time overhead and maximum speed.
Chai — BDD/TDD Assertion Library for Node.js
Chai is a flexible assertion library for Node.js and browsers that supports expect, should, and assert styles.
Supertest — HTTP Assertion Library for Node.js APIs
Supertest provides a high-level API for testing HTTP servers in Node.js with fluent assertion chaining.