APM工具尋找了一圈,發現SkyWalking才是我的真愛
阿新 • • 發佈:2019-12-31
▶ 概述
SkyWalking 是一個開源的 APM 系統,核心功能如下:
- 服務、服務例項、端點指標分析
- 根本原因分析
- 服務拓撲圖分析
- 服務、服務例項和端點依賴性分析
- 慢服務和端點檢測
- 效能優化
- 分散式跟蹤和上下文傳播
- 資料庫訪問指標,慢 SQL 檢測(包括 SQL 語句)
- 報警
▶ SkyWalking 架構圖
SkyWalking 支援多種來源和多種格式的 traces / metrics 資料,包括:
- Java,.NET Core,NodeJS and PHP auto-instrument agents in SkyWalking format
- Istio telemetry format
- Zipkin v1/v2 format
- Jaeger gRPC format.
- Envoy metrics format (the metric entries itself is prometheus client metric family)
▶ 部署 SkyWalking OAP & SkyWalking UI
參考檔案:Docker 部署 SkyWalking OAP & UI
▶ 示例:Spring Boot & SkyWalking Java Agent
1、獲取 Java Agent 庫
參考 Docker 映象 - 構建 SkyWalking OAP & UI ,編譯後,Java Agent 即為 skywalking-agent/skywalking-agent.jar, agent 配置檔案為 skywalking-agent/config/agent.config
2、啟動 Spring Boot 應用
以 spring-boot-demos/hello spring boot 專案作為示例,使用 maven 打包後,通過如下命令啟動服務:
java \
-javaagent:/<skywalking-project-path>/skywalking-agent/skywalking-agent.jar \
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 \
-DSW_AGENT_NAME=spring-boot \
-jar hello-world-1.0-SNAPSHOT.jar複製程式碼
輸出日誌類似如下代表 Agent 啟動成功:
DEBUG 2019-05-08 11:58:52:399 main AgentPackagePath : The beacon class location is jar:file:/Users/admin/docker/skywalking/apache-skywalking-apm-6.1.0/skywalking-agent/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class.
INFO 2019-05-08 11:58:52:401 main SnifferConfigInitializer : Config file found in /Users/admin/docker/skywalking/apache-skywalking-apm-6.1.0/skywalking-agent/config/agent.config.
.........複製程式碼
3、任意訪問 Spring Boot 服務的地址,即可自動採集資訊
- http://localhost:8080/
SkyWalking UI Dashboard
儀表盤
拓撲圖
往期推薦
● Spring Boot 注入外部配置到應用內部的靜態變數
● Java 使用 UnixSocket 呼叫 Docker API
● Service Mesh - gRPC 本地聯調遠端服務
● Spring Security 實戰乾貨:如何保護使用者密碼
● Spring Boot RabbitMQ - 優先順序佇列
本文由部落格一文多發平臺 OpenWrite 釋出!