Apache SkyWalking APM: Concepts, Docker Installation, and UI Guide
This article introduces Application Performance Management (APM), explains the features of Apache SkyWalking for micro‑service and cloud‑native monitoring, and provides step‑by‑step Docker‑compose installation, agent configuration, and a detailed walkthrough of the SkyWalking UI components.
APM (Application Performance Management) collects and reports key metrics and traces from applications to enable systematic performance and fault management. Popular APM tools include Cat, Zipkin, Pinpoint, and SkyWalking, with SkyWalking offering distributed tracing, metric analysis, and service dependency visualization for micro‑service and cloud‑native architectures.
SkyWalking consists of several core components:
SkyWalking Agent : collects tracing and metric data from applications and reports it via HTTP or gRPC to the collector.
SkyWalking Collector : aggregates, analyzes, and stores data, providing query and alarm capabilities.
Storage : supports ElasticSearch, MySQL, TiDB, H2, etc., for persisting collected data.
SkyWalking UI : a web dashboard that visualizes the data, using RocketBot as the default UI.
The article demonstrates installing SkyWalking using Docker on a CentOS 7 host (4 CPU, 8 GB RAM) with Docker 19.03.12 and docker‑compose 1.26.2. The steps include creating a directory, writing a docker-compose.yml file, and starting the services.
mkdir -p /data/ent/skywalking
cd /data/ent/skywalking
vim docker-compose.yml
# add the provided YAML content
docker-compose up -dKey configuration details:
Elasticsearch service (image docker.elastic.co/elasticsearch/elasticsearch:7.5.0 ) exposing port 9200.
SkyWalking OAP server (image apache/skywalking-oap-server:8.1.0-es7 ) exposing ports 11800 and 12800.
SkyWalking UI (image apache/skywalking-ui:8.1.0 ) exposing port 28080.
Health checks and environment variables for each service.
After starting the containers, open the required ports on the firewall:
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:// server_ip :28080 to explore the following views:
Dashboard : overall service health, alerts, slow services, and throughput.
Topology : visual service dependency graph with latency‑colored links.
Service View : per‑service metrics such as Apdex, success rate, load, and response times.
Instance View : JVM CPU, memory, GC, thread counts, and instance‑level latency.
Endpoint View : request rates, slow endpoints, success rates, and response time percentiles.
Trace : detailed request flow showing each method call, duration, and status.
Profiling : sampling of specific endpoints with stack traces.
Alarm : real‑time alerts based on configured thresholds.
To instrument a Java application, download the SkyWalking package (e.g., apache-skywalking-apm-es7-8.1.0.tar.gz ), extract it, copy the agent directory into the project, and start the application 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 will then show the registered service, allowing you to monitor its performance and trace requests.
Overall, the guide provides a comprehensive introduction to SkyWalking’s architecture, installation, configuration, and usage for monitoring micro‑service applications.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
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.