这个项目用于演示 SkyWalking 的完整观测链路,包含:
skywalking-java-demo(handler 服务,端口 8080,含 MySQL)demo-order(order 服务,端口 8081,主动调用 handler)- SkyWalking OAP/UI
- OAP 告警规则(响应时间、成功率)
- 告警回调示例接口
固定 SkyWalking 版本:
apache/skywalking-oap-server:10.3.0apache/skywalking-ui:10.3.0apache/skywalking-banyandb:0.9.0
skywalking-java-demo/
├── demo-order-service/
├── deploy/
│ ├── mysql/
│ │ └── init.sql
│ └── skywalking/
│ ├── alarm-settings.yml
│ └── general-root-reference.json
├── docs/
│ └── SKYWALKING_COMPREHENSIVE_LAB.md
├── scripts/
│ ├── apply-general-root-template.sh
│ ├── download-skywalking-agent.sh
│ ├── generate-topology-traffic.sh
│ ├── run-order-with-agent.sh
│ └── run-with-agent.sh
├── src/main/java/com/example/skywalkingdemo/
└── docker-compose.yml
- 启动基础设施(MySQL + OAP + UI)
cd /Users/RunwangGuo/Documents/Playground/skywalking-java-demo
docker compose up -d- 下载 SkyWalking Java Agent
./scripts/download-skywalking-agent.sh- 启动 handler 服务(终端 A)
SW_AGENT_NAME=skywalking-java-demo ./scripts/run-with-agent.sh- 启动 order 服务(终端 B)
SW_AGENT_NAME=demo-order ./scripts/run-order-with-agent.sh- 造一批跨服务请求
./scripts/generate-topology-traffic.sh 40- 查看 SkyWalking UI
- http://localhost:8088
- 在
General Service -> Topology里应看到demo-order -> skywalking-java-demo
- 如果 UI 被覆盖为默认表格布局,重新应用参考布局模板
./scripts/apply-general-root-template.sh- handler:
GET /api/lab/health - handler:
POST /api/lab/record?action=create-order&detail=test - order:
GET /api/orders/health - order:
POST /api/orders/create?orderNo=NO-1&slowMs=400&failRate=0.2 - alarm webhook:
POST /api/lab/skywalking-alarm
for i in {1..30}; do
curl -s -X POST "http://localhost:8081/api/orders/create?orderNo=ALARM-$i&slowMs=1600&failRate=0.8" >/dev/null
done随后查看 handler 日志中的:Received SkyWalking alarm
docker compose down- 完整重装与卡片验收手册:
docs/SKYWALKING_10_3_BANYANDB_FULL_REPRO.md