性能監控-skywalking的了解和使用


簡單操作就可以使用,方便監控服務運行情況

 

一. 概述

基於Skywalking,提供分布式服務鏈路追蹤,服務依賴拓撲繪制,慢端點、慢SQL等面板展示能力,以及服務告警能力,同時自帶顯示面板,可以提供前后端調用鏈整合能力。支持多種語言:如 Java, C# , Node.js , Go , PHP 以及 Nginx LUA。

SkyWalking 為 服務(service), 服務實例(service instance), 以及 端點(endpoint) 提供了可觀測能力。

二. 架構

SkyWalking 邏輯上分為四部分: 探針, 平台后端, 存儲和用戶界面.

image

  • 探針 基於不同的來源可能是不一樣的, 但作用都是收集數據, 將數據格式化為 SkyWalking 適用的格式.

  • 平台后端, 支持數據聚合, 數據分析以及驅動數據流從探針到用戶界面的流程。分析包括 Skywalking 原生追蹤和性能指標以及第三方來源,包括 Istio 及 Envoy telemetry , Zipkin 追蹤格式化等。

  • 存儲 通過開放的插件化的接口存放 SkyWalking 數據. 你可以選擇一個既有的存儲系統, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以選擇自己實現一個存儲系統. 當然, 我們非常歡迎你貢獻新的存儲系統實現。

  • UI 一個基於接口高度定制化的Web系統,用戶可以可視化查看和管理 SkyWalking 數據。

三. 安裝-java

1. 基本環境

jdk和elasticsearch的下載安裝自行百度

jdk1.8
elasticsearch-7.8.1
apache-skywalking-apm-es7-8.3.0

下載對應的apm包,skywalking下載地址:https://skywalking.apache.org/downloads/

 

2. 解壓apache-skywalking-apm-es7-8.3.0.tar.gz並配置
  • 解壓后的內容

  • 修改config/application.yml中配置存儲(本次測試使用elasticsearch7)

存儲有多種方式:elasticsearch6,7/h2/mysql/tidb/influxdb

storage:
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
  nameSpace: ${SW_NAMESPACE:""}
  clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
  user: ${SW_ES_USER:""}
  password: ${SW_ES_PASSWORD:""}
3. 啟動skywalking

啟動之前確認elasticsearch已經啟動且正常運行

在bin目錄下執行 startup.sh腳本啟動

訪問localhost:8080即可打開UI界面

 

四,啟動應用程序

  • -Dskywalking.agent.namespace 命名空間---可以區分不同的環境

  • -Dskywalking.agent.service_name 服務的名字

  • -Dskywalking.collector.backend_service skywalking的接口地址(啟動默認端口11800)

jar啟動:(包含skywalking-agent.jar完整路徑,而且不能移動jar)

java -javaagent:/developSoftware/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=ajisun-dev -Dskywalking.agent.service_name=ajisun-dev:ajisun-platform -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar

idea中啟動:(在VM options中寫入)

-javaagent:/developSoftware/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=ajisun-dev -Dskywalking.agent.service_name=ajisun-dev:ajisun-platform -Dskywalking.collector.backend_service=localhost:11800

如圖:

 

五,功能介紹

  • 儀表盤

  1. 吞吐量CPM,表示每分鍾的調用.

  1. Apdex分數:衡量服務器性能的標准

  1. 響應時間百分比,包括 p99, p95, p90, p75, p50.

  1. SLA表示成功率。對於HTTP,表示響應為200的請求.

監控數據匯總:

服務維度的數據:

 

  • 拓撲圖

拓撲圖用指標顯示服務和實例之間的關系.,點擊服務顯示監控數據

  1. 拓撲顯示包含所有服務的默認全局拓撲.

  2. 服務選擇器 支持顯示直接關系,包括上游和下游.

  3. 自定義組 提供服務組的任意子拓撲功能.

  4. 服務下鑽 當單擊任何服務時打開。該圖形可以對所選擇的服務進行度量、跟蹤和告警查詢.

  5. 服務指標的關系 提供服務RPC交互的度量以及這兩個服務的實例.

 

  • 跟蹤查詢

跟蹤查詢是與skywalk提供的分布式代理一樣的典型特性.

 

  1. 跟蹤部分列表 不是跟蹤列表。每個跟蹤都有幾個屬於不同服務的段。 如果通過所有服務或通過跟蹤id進行查詢,可以在其中列出具有相同跟蹤id的不同段.

  1. 跨度 是否可單擊,每個跨度的細節將在左側彈出.

  1. 跟蹤視圖 提供3個典型的和不同的使用視圖來可視化跟蹤.

  2. 關聯的服務 顯示接口調用中經過的所有服務

 

  • 性能剖析

一個交互特性。提供了方法級的性能診斷.

  1. 選擇特定的服務。

  2. 設置端點名稱。這個端點名通常是第一個span的操作名。在追蹤查詢上找到這個 段列表視圖。

  3. 監控時間可以從現在開始,也可以從未來的任何時間開始。

  4. 監視持續時間定義了觀察時間窗口,以查找合適的請求進行性能分析。 即使概要文件對目標系統的性能影響非常有限,但它仍然是一個額外的負載。這個時間 使沖擊可控。

  5. 最小持續時間閾值提供了一個過濾器機制,如果給定端點響應的請求很快,它就不會異形。這可以確保配置的數據是預期的數據。

  6. 最大抽樣計數表示agent將收集的最大數據集。它有助於減少內存和網絡負載。

  7. 一個隱式條件,在任何時候,skywalk只接受一個配置文件任務的每個服務

  8. 代理可以有不同的設置來控制或限制此特性,請閱讀文檔設置以了解更多細節。

  9. 並不是所有的SkyWalking生態系統代理都支持此特性,7.0.0中的java代理默認支持此特性。

一旦配置文件完成,配置的跟蹤段就會顯示出來。你可以要求分析任意張成的空間。 通常,我們分析跨度具有較長的自持續時間,如果跨度及其子跨度都具有較長的持續時間,則可以進行選擇 “包括子跨度”或“排除子跨度”來設定分析界限。

選擇正確的跨度后,單擊“analysis”按鈕,您將看到基於堆棧的分析結果。最慢的方法 已被高亮顯示

 

 

參考:
官網:https://skywalking.apache.org/docs/

中文文檔:https://skyapm.github.io/

 


免責聲明!

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



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