開源APM系統skywalking介紹與使用


介紹

SkyWalking 創建與2015年,提供分布式追蹤功能。從5.x開始,項目進化為一個完成功能的Application Performance Management系統。
他被用於追蹤、監控和診斷分布式系統,特別是使用微服務架構,雲原生或容積技術。提供以下主要功能:

  • 分布式追蹤和上下文傳輸
  • 應用、實例、服務性能指標分析
  • 根源分析
  • 應用拓撲分析
  • 應用和服務依賴分析
  • 慢服務檢測
  • 性能優化

主要特性

  • 多語言探針或類庫
    • Java自動探針,追蹤和監控程序時,不需要修改源碼。
    • 社區提供的其他多語言探針
  • 多種后端存儲: ElasticSearch, H2
  • 支持OpenTracing
    • Java自動探針支持和OpenTracing API協同工作
  • 輕量級、完善功能的后端聚合和分析
  • 現代化Web UI
  • 日志集成
  • 應用、實例和服務的告警

架構

在線體驗

安裝

安裝es

新版本的skywalking使用ES作為存儲,所以先安裝es,注意6.X版本不行,安裝5.6.8:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz
tar zxvf elasticsearch-5.6.8.tar.gz
cd elasticsearch-5.6.8/

修改配置文件,主要修改cluster.name,並增加兩行配置,
vim config/elasticsearch.yml:

cluster.name: CollectorDBCluster # ES監聽的ip地址 network.host: 0.0.0.0 thread_pool.bulk.queue_size: 1000

保存,然后啟動es:

nohup bin/elasticsearch &

安裝skywalking

先下載編譯好的版本並解壓:

wget http://mirrors.hust.edu.cn/apache/incubator/skywalking/5.0.0-beta/apache-skywalking-apm-incubating-5.0.0-beta.tar.gz
tar zxvf apache-skywalking-apm-incubating-5.0.0-beta.tar.gz 
cd apache-skywalking-apm-incubating/

然后部署,注意skywalking會使用(8080, 10800, 11800, 12800)端口,因此先排除端口占用情況。

然后運行bin/startup.sh,windows用戶為.bat文件。

一切正常的話,訪問localhost:8080就能看到頁面了。

安裝過程問題解決

  1. 啟動bin/startup.sh后,提示success,但是不能訪問,ps 查看並無相關進程,經過檢查發現是端口被占用
  2. collector 不能正常啟動,發現是es問題:
    • es需要使用5.x版本
    • es的集群名稱需要和collector的配置文件一致

java程序使用skywalking探針

1.拷貝apache-skywalking-apm-incubating目錄下的agent目錄到應用程序位置,探針包含整個目錄,請不要改變目錄結構
2.java程序啟動時,增加JVM啟動參數,-javaagent:/path/to/agent/skywalking-agent.jar。參數值為skywalking-agent.jar的絕對路徑

在IDEA里調試程序怎么辦?

enter description here

增加VM參數即可。

agent探針配置,簡單修改下agent.application_code即可

# 當前的應用編碼,最終會顯示在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 ui看到了。

enter description here

可以看到累出了slow service等信息,更多的細節慢慢挖掘吧。


作者:Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

 
 
分類:  java編程
標簽:  SkyWalkingapmjava

 

 


免責聲明!

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



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