1. 程式人生 > >java分散式鏈路追蹤;jvm應用監控-skywalking

java分散式鏈路追蹤;jvm應用監控-skywalking

當企業應用進入分散式微服務時代,應用服務依賴會越來越多,skywalking可以很好的解決服務呼叫鏈路追蹤的問題,而且基於java探針技術,基本對應用零侵入零耦合。

skywalking是什麼,有什麼用?

Skywalking 是一個APM系統,即應用效能監控系統,為微服務架構和雲原生架構系統設計。它通過探針自動收集所需的指標,並進行分散式追蹤。通過這些呼叫鏈路以及指標,Skywalking APM會感知應用間關係和服務間關係,並進行相應的指標統計。目前支援鏈路追蹤和監控應用元件如下,基本涵蓋主流框架和容器,如國產PRC Dubbo和motan等,國際化的spring boot,spring cloud都支援了

skywalaking總體架構分為三部分

skywalking-collector:鏈路資料歸集器,資料可以落地ElasticSearch,單機也可以落地H2,不推薦,H2僅作為臨時演示用

skywalking-web:web視覺化平臺,用來展示落地的資料

skywalking-agent:探針,用來收集和傳送資料到歸集器

如何快速開始?

第一步:進入官方release地址https://github.com/OpenSkywalking/skywalking/releases,分別下載skywalking-collector,skywalking-web,skywalking-agent,解壓後,歸集器和web應用都會有一個bin目錄,單機模式下,不需要改配置,直接執行對應的指令碼即可

第二步:配置需要監控的應用的agent探針

拷貝skywalking-agent目錄到所需位置,探針包含整個目錄,請不要改變目錄結構,可修改agent.config配置agent.application_code=xxl-job為自己的應用名

增加JVM啟動引數,-javaagent:/path/to/skywalking-agent/skywalking-agent.jar。引數值為skywalking-agent.jar的絕對路徑。

第三步:開啟web頁面,檢視拓撲資訊,埠預設8080,所以一般沒問題,開啟localhost:8080就會看到如下的系統圖例了

系統使用圖例

系統主頁各應用的拓撲圖

系統例項,一個應用一個例項

系統jvm和cpu使用率等監控資訊

服務呼叫的span詳細資訊

服務依賴樹

服務呼叫鏈路

其他

1.除了可以使用自動探針上報資料外,還可以使用註解,用埋點的方式手動上傳業務資料

2.還可以將traceId。整合到主流的日誌框架中輸出,如log4j,logback等