SkyWalking一個開源可觀測性平臺,用於收集、分析、聚合和可視化來自服務和雲原生基礎設施的數據。SkyWalking提供了一種簡單的方法,可讓你清晰的查看分佈式系統、甚至是跨雲環境中。它更像是現代化APM(Application Performance Manager),專爲雲原生、基於容器和分佈式系統而設計的。css
經過在應用程序中添加 SkyWalking Agent,就能夠將接口、服務、數據庫、MQ等進行追蹤,將追蹤結果經過 HTTP 或 gRPC 發送到 SkyWalking Collecter,SkyWalking Collecter 通過分析和聚合,將結果存儲到 Elasticsearch 或 H2,SkyWalking 同時提供了一個 SkyWalking UI 的可視化界面,UI 以 GraphQL + HTTP 方式獲取存儲數據進行展現。html
只需在項目目錄下增長skywalking目錄,而後再啓動參數中增長jvm參數便可:
-javaagent:/path/to/skywalking-agent/skywalking-agent.jar
同時,咱們也能夠修改config文件夾中agent.config的相關配置java
# 當前的應用編碼,最終會顯示在webui上。 # 建議一個應用的多個實例,使用有相同的application_code。請使用英文 agent.application_code=Your_ApplicationName # 每三秒採樣的Trace數量 # 默認爲負數,表明在保證不超過內存Buffer區的前提下,採集全部的Trace # agent.sample_n_per_3_secs=-1 # 設置須要忽略的請求地址 # 默認配置以下 # agent.ignore_suffix=.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg # 探針調試開關,若是設置爲true,探針會將全部操做字節碼的類輸出到/debugging目錄下 # skywalking團隊可能在調試,須要此文件 # agent.is_open_debugging_class = true # 對應Collector的config/application.yml配置文件中 agent_server/jetty/port 配置內容 # 例如: # 單節點配置:SERVERS="127.0.0.1:8080" # 集羣配置:SERVERS="10.2.45.126:8080,10.2.45.127:7600" collector.servers=127.0.0.1:10800 # 日誌文件名稱前綴 logging.file_name=skywalking-agent.log # 日誌文件最大大小 # 若是超過此大小,則會生成新文件。 # 默認爲300M logging.max_file_size=314572800 # 日誌級別,默認爲DEBUG。 logging.level=DEBUG
對於skywalking暫時不支持的監控,能夠本身編寫插件,我在項目中就遇到了使用netty封裝的http請求不能被監控的情形,因而在github上找到了相關的插件:https://github.com/otyyyywangwenbin/skywalking-plugin-netty-http 編譯好之後將jar加入到plugins目錄,從新啓動項目便可。git