Operations 13 min read

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.

IT Architects Alliance
IT Architects Alliance
IT Architects Alliance
Introduction to Application Performance Management (APM) and Apache SkyWalking: Architecture, Installation, and UI Guide

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/skywalking

Step 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:12800

Step 3 – start services:

docker-compose up -d

Step 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 --reload

Access 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_dev

The 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.

dockerAPMoperationsDistributed TracingApache SkyWalkingMicroservices Monitoring
IT Architects Alliance
Written by

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.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.