圖解 Apache SkyWalking UI 的使用

2022-06-07 12:01:18

Apache SkyWalking的UI介面主要分為以下幾個區域:

  • 功能選擇區:這裡列出了主要的UI功能,包括儀表盤、拓撲圖、追蹤、效能刨析、告警等功能
  • 重新載入區:控制重新載入機制,包括定期重新載入或手動重新載入。
  • 時間選擇器:控制時區和時間範圍。這裡有一箇中文/英文切換按鈕,預設,UI使用瀏覽器語言設定。

下面逐一介紹功能選擇區的各個功能。

文章持續更新,微信搜尋「萬貓學社」第一時間閱讀,關注後回覆「電子書」,免費獲取12本Java必讀技術書籍。

儀表盤

儀表盤又分為以下幾個功能:

  • APM:以全域性(Global)、服務(Service)、服務範例(Instance)、端點(Endpoint)的維度展示各項指標。
  • Database:展示資料庫的各項指標。
  • SelfObservability:展示OAP伺服器端的各項指標。
  • Web Browser:以服務和頁面的維度展示Web瀏覽器端的各項指標。

相關概念解釋:

  • 服務(Service):表示對請求提供相同行為的一組工作負載,比如:一個的 Web API系統。
  • 服務範例(Instance):上述的一組工作負載中的每一個工作負載稱為一個範例,比如:一個的 Web API 系統叢集中的一個範例。
  • 端點(Endpoint):對於特定服務所接收的請求路徑,如 HTTP 的 URI 路徑和 gRPC 服務的類名 + 方法簽名。

APM - 全域性(Global)

全域性(Global)展示的是所有服務的各項指標,包括:

  • 吞吐量排名,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 服務響應時間排名,單位為毫秒。
  • 不健康服務排名,單位為Apdex(Application Performance Index,應用效能指數)。
  • 端點響應時間排名,單位為毫秒。
  • 響應時間百分位,包括 p99, p95, p90, p75, p50,單位為毫秒。
  • 響應時間熱力圖,單位為毫秒。

相關概念解釋:

  • Apdex:Application Performance Index,應用效能指數, Apdex = (滿意樣本數 + 可容忍樣本數 * 0.5) / 樣本總數,滿意樣本為響應時間小等於Apdex閾值可容忍樣本為響應時間大於Apdex閾值並小等於4倍的Apdex閾值。目前Apdex閾值為0.5秒。

APM - 服務(Service)

服務(Service)是以服務的維度展示各項指標,包括:

  • 服務Apdex(Application Performance Index,應用效能指數)。
  • 服務平均響應時間,單位為毫秒。
  • 服務成功率。
  • 服務吞吐量,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 服務Apdex曲線圖。
  • 服務百分位,包括 p99, p95, p90, p75, p50,單位為毫秒。
  • 服務成功率曲線圖。
  • 服務吞吐量曲線圖,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 端點吞吐量排名,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 端點響應時間排名,單位為毫秒。
  • 端點成功率排名。

APM - 服務範例(Instance)

服務範例(Instance)是以範例的維度展示各項指標,包括:

  • 範例吞吐量,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 範例成功率。
  • 範例平均響應時間,單位為毫秒。
  • JVM的CPU使用百分比。
  • JVM的記憶體使用情況。
  • JVM的GC時間。
  • JVM的GC次數。

APM - 端點(Endpoint)

端點(Endpoint)是以端點的維度展示各項指標,包括:

  • 端點吞吐量排名,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 端點平均響應時間排名,單位為毫秒。
  • 端點成功率排名。
  • 端點吞吐量曲線圖,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 端點平均響應時間曲線圖,單位為毫秒。
  • 端點百分位,包括 p99, p95, p90, p75, p50,單位為毫秒。
  • 端點成功率曲線圖。

文章持續更新,微信搜尋「萬貓學社」第一時間閱讀,關注後回覆「電子書」,免費獲取12本Java必讀技術書籍。

Database

展示資料庫(Database)相關的各項指標,包括:

  • 資料庫平均響應時間,單位為毫秒。
  • 資料庫存取成功率。
  • 資料庫吞吐量,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 資料庫存取百分位,包括 p99, p95, p90, p75, p50,單位為毫秒。
  • 慢查詢列表,單位為毫秒。
  • 所有資料庫吞吐量排名,單位為CPM(calls per minute,每分鐘的呼叫次數)。
  • 所有資料庫成功率排名。

拓撲圖

拓撲圖可以顯示服務之間的拓撲關係,如下圖:

  • 服務選擇器,可以選擇某個服務,顯示其直接關係,包括上游和下游。
  • 自定義組,可以建立自定義的任意一組服務,用於顯示其一組服務的拓撲圖。

點選某些服務的圖示,可檢視該服務的型別、Apdex、成功率、響應時間、吞吐量、百分位等資訊,如下圖:


點選服務之間的連線,可檢視兩個服務之間的響應時間、吞吐量、成功率、百分位等資訊,如下圖:


點選上圖中的展示範例依賴按鈕,可檢視各個範例之間的響應時間、吞吐量、成功率、百分位等資訊,如下圖:

追蹤

追蹤頁面可以查詢到某個分散式鏈路的整體情況,如下圖:

  • 搜尋條件設定,支援按服務、範例、端點名稱、追蹤ID、時間範圍等條件進行查詢。
  • 片段(Segment)列表,點選某個片段(Segment),在右側展示與片段(Segment)相關的整個追蹤(Trace)。
  • 服務列表,是這個追蹤(Trace)涉及的所有服務,每個服務用不同的顏色展示。
  • 跨度(Span)列表,是這個追蹤(Trace)涉及的所有跨度(Span),還可以看到每個跨度(Span)耗時和層級關係。點選某個跨度(Span),可以看到它的等服務名稱、端點名稱資訊。
  • 追蹤(Trace)檢視設定,提供3種檢視展示追蹤(Trace):列表、樹結構、表格。

相關概念解釋:

  • 追蹤(Trace):一個追蹤(Trace)表示一個事務或者流程在分散式系統中的執行過程,是一條完整的分散式呼叫鏈。
  • 跨度(Span):一個跨度(Span)表示系統中具有開始時間和執行時長的邏輯執行單元。跨度(Span)之間通過巢狀或者順序排列建立邏輯因果關係,最終形成一個追蹤(Trace)。
  • 片段(Segment):一個片段(Segment)表示同一端點內的一組跨度(Span)的集合。

常見的錯誤可能是由程式碼異常或網路故障引起的,通過追蹤(Trace)檢視提供的跨度(Span)細節,可以快速找到錯誤發生在哪個環節。

效能刨析

效能剖析是利用方法棧快照,並對方法執行情況進行分析和彙總,對程式碼執行速度進行估算。

效能剖析啟用時,會對指定執行緒週期性的進行執行緒棧快照,並將所有的快照進行彙總分析,如果兩個連續的快照含有同樣的方法棧,則說明此棧中的方法大概率在這個時間間隔內都處於執行狀態。從而,通過這種連續快照的時間間隔累加成為估算的方法執行時間。

文章持續更新,微信搜尋「萬貓學社」第一時間閱讀,關注後回覆「電子書」,免費獲取12本Java必讀技術書籍。

建立任務

想要進行效能刨析,我們必須建立一個任務,如下圖:

  • 選擇指定的服務。
  • 輸入端點名稱,這裡的端點名稱通常是第一個片段(Segment)的操作名,在追蹤頁面的追蹤(Trace)檢視裡可以找到。
  • 選擇監控時間,可以從現在開始,也可以從未來的任何時間開始。
  • 選擇監視持續時間,可以設定監視的時間視窗,以查詢到合適的請求進行效能刨析。
  • 監控間隔,提供了一個過濾器機制,如果給定端點響應的請求很快,它就不會效能刨析,可以確保效能刨析的資料是預期的資料。
  • 最大取樣數,表示探針收集的最巨量資料集,它有助於減少記憶體和網路負載。

即使效能刨析對目標系統的效能影響非常有限,但它仍然是一個額外的負載,以上設定可以使效能影響可控。另外,在任何時刻,每個服務只能執行一個效能刨析任務。

分析結果

等待效能刨析的任務完成後,對應的片段(Segment)就會在右側展示出來。點選某個片段(Segment),可以更詳細地看到各個片段(Segment)的耗時,如下圖:


從上圖可以看到最慢的片段(Segment)。點選分析按鈕,可以看到基於方法棧的分析結果,包括對應的類名、方法名、程式碼行數、耗時等資訊,最慢的方法棧被高亮顯示,如下圖:

效能剖析的優勢

  1. 精確的問題定位,直接找到程式碼方法和程式碼行;
  2. 無需反覆的增刪埋點,大大減少了人力開發成本;
  3. 不用承擔過多埋點對目標系統和監控系統的壓力和效能風險;
  4. 按需使用,平時對系統無消耗,使用時的消耗穩定可控。

告警

在告警頁面可以檢視所有觸發的告警,如下圖:


過濾範圍的設定包括:服務、服務範例、端點、服務關係、服務範例關係、端點關係等。

微信公眾號:萬貓學社

微信掃描二維條碼

關注後回覆「電子書」

獲取12本Java必讀技術書籍