Introduction to Application Performance Management (APM) and Apache SkyWalking: Concepts, Architecture, and Installation Guide
This article introduces Application Performance Management (APM), explains distributed tracing fundamentals, provides an overview of Apache SkyWalking’s features and architecture, and offers step‑by‑step Docker‑based installation instructions for the SkyWalking server, UI, and Java agent.
Application Performance Management (APM) collects and reports key performance metrics from applications using probes, enabling systematic performance and fault management. Popular APM tools include Cat, Zipkin, Pinpoint, and SkyWalking, the latter offering distributed tracing, metric analysis, and service dependency visualization.
Unlike traditional monitoring systems such as Zabbix or Prometheus that focus on hardware and service health, APM emphasizes internal execution metrics and inter‑service call chains, making it complementary for pinpointing slow requests.
Distributed tracing captures the complete request flow across microservices, databases, and caches, showing precise response times, invoked methods, and accessed resources, which is essential for debugging complex architectures.
Apache SkyWalking is a cloud‑native APM designed for microservice, container (Docker, Kubernetes, Mesos) environments. It supports multiple languages (Java, .NET Core, Node.js, Go) and follows the OpenTracing standards.
SkyWalking’s visualization includes six dimensions:
Global view – overall service and component overview.
Topology view – service dependency graph.
Application view – upstream/downstream relations, JVM and host info.
Service view – entry point performance and dependencies.
Trace view – detailed request execution path.
Alarm view – real‑time alerts based on thresholds.
The core modules are:
SkyWalking Agent – non‑intrusive tracing and metric collection, reporting via HTTP/gRPC.
SkyWalking Collector – aggregates data, processes it in the Analysis Core, and stores it.
Storage – supports Elasticsearch, MySQL, TiDB, H2, etc.
SkyWalking UI – web dashboard (RocketBot) for visualizing collected data.
Installation steps (Docker environment):
mkdir -p /data/ent/skywalking cd /data/ent/skywalking vim docker-compose.yml # docker‑compose.yml content (excerpt) version: '3.8' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0 ports: - 9200:9200 skywalking-oap: image: apache/skywalking-oap-server:8.1.0-es7 ports: - 11800:11800 - 12800:12800 skywalking-ui: image: apache/skywalking-ui:8.1.0 ports: - 28080:8080After configuring the services, start them with:
docker-compose up -dOpen the UI at http:// :28080 to verify that services are registered.
To instrument a Java application, download the SkyWalking package, copy the agent directory into the project, and launch the app with the Java agent:
java -javaagent:agent/skywalking-agent.jar=agent.service_name=my-service,collector.backend_service=192.168.35.226:11800 -jar my-app.war --spring.profiles.active=local_devThe UI provides dashboards for global metrics, topology, service details, trace analysis, performance profiling, and alarm management, allowing users to monitor request latency, throughput, error rates, JVM resources, and more across microservice architectures.
Architect
Professional architect sharing high‑quality architecture insights. Topics include high‑availability, high‑performance, high‑stability architectures, big data, machine learning, Java, system and distributed architecture, AI, and practical large‑scale architecture case studies. Open to ideas‑driven architects who enjoy sharing and learning.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.