skywalking學習


skywalking簡介

SkyWalking一個開源可觀測性平台,用於收集、分析、聚合和可視化來自服務和雲原生基礎設施的數據。SkyWalking提供了一種簡單的方法,可以讓你清晰的查看分布式系統、甚至是跨雲環境中。它更像是現代化APM(Application Performance Manager),專為雲原生、基於容器和分布式系統而設計的。

特點

  • 性能好:針對單實例5000tps的應用,在全量采集的情況下,只增加 10% 的CPU開銷
  • 支持多語言探針
  • 支持自動及手動探針:其中手動探針通過OpenTrackingApi、@Trace注解、trackId集成到日志中。

整體架構


通過在應用程序中添加 SkyWalking Agent,就可以將接口、服務、數據庫、MQ等進行追蹤,將追蹤結果通過 HTTP 或 gRPC 發送到 SkyWalking Collecter,SkyWalking Collecter 經過分析和聚合,將結果存儲到 Elasticsearch 或 H2,SkyWalking 同時提供了一個 SkyWalking UI 的可視化界面,UI 以 GraphQL + HTTP 方式獲取存儲數據進行展示。

java項目接入skywalking

只需在項目目錄下增加skywalking目錄,然后再啟動參數中增加jvm參數即可:
-javaagent:/path/to/skywalking-agent/skywalking-agent.jar
同時,我們也可以修改config文件夾中agent.config的相關配置


# 當前的應用編碼,最終會顯示在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目錄,重新啟動項目即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM