使用skywalking進行服務鏈監控
前言
在上一篇介紹了使用pinpoint進行微服務的服務鏈監控( https://www.jianshu.com/p/5a6dc609acea ),但由於在使用過程中pinpoint的當前版本1.8.2還不支援webflux導致專案中使用的spring cloud gateway不能監控到,所以換用能夠支援webflux的skywalking。
SkyWalking一個開源可觀測性平臺,用於收集、分析、聚合和視覺化來自服務和雲原生基礎設施的資料。SkyWalking提供了一種簡單的方法,可以讓你清晰的檢視分散式系統、甚至是跨雲環境中。它更像是現代化APM(Application Performance Manager),專為雲原生、基於容器和分散式系統而設計的。
SkyWalking是由國人開發,現在已經成為apache開源專案。對於SkyWalking的基本介紹可以直接參見中文文件: https://github.com/apache/incubator-skywalking/tree/master/docs/others/cn 。
安裝部署
這裡採用docker-compose的方式部署skywalking。部署所用的docker-compose.yml如下,skywalking-oap中掛載的配置檔案volume來自於: https://github.com/apache/incubator-skywalking/tree/master/docker 中的config目錄。
version: '3.3' services: elasticsearch: image: elasticsearch:6.6.1 container_name: skywalking-es restart: always environment: discovery.type: single-node oap: image: apache/skywalking-oap-server:6.0.0-GA container_name: skywalking-oap depends_on: - elasticsearch links: - elasticsearch restart: always ports: - 11800:11800 - 12800:12800 volumes: - ./config:/skywalking/config:ro ui: image: apache/skywalking-ui:6.0.0-GA container_name: skywalking-ui depends_on: - oap links: - oap restart: always ports: - 18080:8080 environment: collector.ribbon.listOfServers: oap:12800
執行容器
執行docker-compose命令啟動skywalking。啟動後使用瀏覽器開啟 http://localhost:18080 地址訪問skywalking介面。
docker-compose up -d
- 登入的預設使用者密碼為:admin/admin
使用 Agent收集呼叫資訊
skywalking與pinpoint一樣,採用javaagent無侵入的方式實現了應用呼叫資訊的收集,原應用程式無需做任何改動。只需要在啟動時增加javaagent引數。啟動時引數如下:
java -javaagent:/opt/skywalking-agent/skywalking-agent.jar=agent.service_name=demo -jar demo.jar
說明:
- javaagent 引數必須在 jar引數之前;
- agent.service_name 表示服務名稱;
- 啟動前需要修改agent.config 檔案中的相應配置:
collector.backend_service (後端服務的ip地址和埠 xxx.xxx.xxx.xxx:11800)
skywalking的web介面

dashboard.png

topo.png

service.png

server.png