Introduction to Application Performance Management (APM) and Apache SkyWalking: Architecture, Installation, and UI Guide
This article explains APM concepts, compares traditional monitoring tools, introduces Apache SkyWalking as a cloud‑native APM solution, details its architecture and core modules, provides step‑by‑step Docker‑based installation of the server and agent, and walks through the SkyWalking UI features for monitoring microservice systems.
Application Performance Management (APM) collects and reports data via probes to monitor key metrics of applications, providing a systematic solution for performance and fault management.
Common APM tools include Cat, Zipkin, Pinpoint, and SkyWalking; the article focuses on SkyWalking, an open‑source APM that supports distributed tracing, performance metrics, and service dependency analysis.
Traditional monitoring systems such as Zabbix, Prometheus, and Open‑Falcon mainly track server hardware and service status, whereas APM emphasizes internal execution metrics and inter‑service call chains, complementing traditional monitoring by pinpointing slow request roots.
Distributed tracing captures the complete request flow across microservices (e.g., Redis, MySQL) and records precise response times, method calls, and keys, enabling full‑link reconstruction in UI and data views.
SkyWalking offers six visualization dimensions: Global view, Topology view, Application view, Service view, Trace view, and Alarm view, each presenting specific performance insights.
The architecture diagram (image omitted) illustrates the interaction between agents, collectors, storage, and the UI.
Core modules include:
SkyWalking Agent : collects tracing and metric data and reports via HTTP or gRPC to the Collector.
SkyWalking Collector : aggregates data, processes it with the Analysis Core, and stores results for the Query Core.
Storage : supports Elasticsearch, MySQL, TiDB, H2, etc.
SkyWalking UI : web visualisation platform (RocketBot is the default UI).
Installation environment: CentOS 7, 4 CPU + 8 GB RAM, Docker 19.03.12, docker‑compose 1.26.2, SkyWalking 8.1.0, Elasticsearch 7.5.0.
Step 1 – create directory:
mkdir -p /data/ent/skywalking cd /data/ent/skywalkingStep 2 – write docker-compose.yml (excerpt):
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
container_name: elasticsearch
restart: always
ports:
- 9200:9200
healthcheck:
test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
skywalking-oap:
image: apache/skywalking-oap-server:8.1.0-es7
container_name: skywalking-oap
depends_on:
- elasticsearch
restart: always
ports:
- 11800:11800
- 12800:12800
environment:
TZ: Asia/Shanghai
SW_STORAGE: elasticsearch7
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
skywalking-ui:
image: apache/skywalking-ui:8.1.0
container_name: skywalking-ui
depends_on:
- skywalking-oap
restart: always
ports:
- 28080:8080
environment:
TZ: Asia/Shanghai
SW_OAP_ADDRESS: skywalking-oap:12800Step 3 – start services:
docker-compose up -dStep 4 – open firewall ports:
firewall-cmd --zone=public --add-port=11800/tcp --permanent firewall-cmd --zone=public --add-port=12800/tcp --permanent firewall-cmd --zone=public --add-port=28080/tcp --permanent firewall-cmd --reloadAccess the SkyWalking UI at http:// :28080 .
SkyWalking Agent installation (Java example): download the package, unzip, copy the agent directory into the Java project, and start the application with:
java -javaagent:agent/skywalking-agent.jar=agent.service_name=sab-service,collector.backend_service=192.168.35.226:11800 -jar sab-manager.war --spring.profiles.active=local_devThe UI provides several modules:
Dashboard – overall service health.
Topology – service dependency graph.
Trace – detailed request call chain.
Profiling – endpoint sampling and stack traces.
Alarm – real‑time alerts for services, instances, and endpoints.
Promotional content follows, offering architecture e‑books, case studies, Docker tutorials, and other resources via QR code and WeChat contact, with a disclaimer that the material is for learning and the copyright belongs to original authors.
IT Architects Alliance
Discussion and exchange on system, internet, large‑scale distributed, high‑availability, and high‑performance architectures, as well as big data, machine learning, AI, and architecture adjustments with internet technologies. Includes real‑world large‑scale architecture case studies. Open to architects who have ideas and enjoy sharing.
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.