天天看點

建構可觀性系統流量分布圖

作者:閃念基因

“随着雲原生技術的蓬勃發展,可觀測性已成為現代應用程式開發、部署和維護的核心要素之一。2017年,Peter Bourgon的文章《 Metrics, Tracing, and Logging》将傳統領域中可觀測性的概念引入到雲原生領域,深入剖析了名額,追蹤,日志的定義、特性以及它們之間的關系,赢得了廣泛認可。”

建構可觀性系統流量分布圖

01

現狀分析

雲原生計算基金會(CNCF)目前為多種可觀測性工具提供支援,涉及名額監控、日志管理和資料追蹤等領域。衆多企業依據CNCF推薦的産品目錄,定制出符合自身業務特點的可觀測體系。

在我們的公司,我們采用了VictoriaMetrics、SkyWalking和ELK,分别用于名額、追蹤和日志資料的采集和分析。盡管取得了一定進展,資料整合仍是我們需要深入探索的領域。

面對系統開發人員難以全面掌握系統狀态的問題,我們通過建構系統服務流量分布圖,提供一個直覺的視圖,幫助團隊更好地了解系統的整體狀态,進而采取進一步的優化措施。本文将闡述如何建構一個系統服務流量分布圖。

02

基礎資料模組化

2.1 基礎資料标準化

在可觀測領域,資料的标準化和處理至關重要。以下是我們的資料标準化的一些規範,保證各個系統中能夠保持一緻性。

名稱 含義 說明 層級
biz 業務線 服務的業務系統 1
plt 産品線 服務的産品系統 2
sid 系統 獨立對外提供服務的系統 3
mdl 子產品 功能相同的服務集合 4
srv 服務 所有相同服務執行個體的聚合 5
sc 叢集 某可用區相同服務執行個體的聚合 6
si 執行個體 單個服務執行個體 7

2.2 資料改造

改造CICD系統

改造持續內建/持續傳遞(CICD)系統,不侵入使用者代碼,讓名額域代碼滿足标準化需求。

日志列印改造

一方面,日志列印中的标簽要符合上述規範,另一方面,日志列印出traceId和追蹤資料進行關聯。

追蹤資料采集

由于我們使用的是SkyWalking,改造應用啟動的标簽,使得SkyWalking中的屬性也能和上述标準化資料一緻。

2.3系統流量圖模組化

建立流量模型,系統流量是由通路入口流入,經過系統内部各個服務之間流轉,最後進入各個中間件,或者到下遊系統中。

建構可觀性系統流量分布圖

03

資料處理和存儲

3.1 資料處理

為了更全面地反映系統的整體情況,我們需要執行以下資料聚合步驟:

1)按時間聚合資料(一分鐘,五分鐘,十分鐘)

2)處理不同可用區的資料

3)抽象通路入口資料

4)識别微服務和資料資訊

3.2資料存儲

我們選擇ClickHouse作為我們的資料存儲引擎。它具有高效的列存儲結構,快速地資料分析能力和低延遲的查詢性能。

04

資料可視化

4.1 選型

選擇桑基圖展示流量分布圖。

4.2 顔色設計

1)亮色系表示異常狀态

2)正常狀态使用中性顔色

3)增加圖示說明

建構可觀性系統流量分布圖
建構可觀性系統流量分布圖

4.3 資料展示歸一化

将資料按實際流量歸一化為五個等級,使得流量圖整體資訊簡潔清晰。

4.4 聚焦

1)剔除配置中心和注冊中心的資料

2)精簡複雜系統的服務

4.5 demo展示

建構可觀性系統流量分布圖

按可用區次元展示:

建構可觀性系統流量分布圖

05

結論

系統服務流量分布圖,目前是從宏觀上面了解系統的整體情況,業務開發以及系統管理人員可以快速地檢視系統潛在的問題。同時我們也積累的大量的原始資料,後續通過對這些資料的分析,能持續給業務提供價值。

作者:孟梁

來源-微信公衆号:百勝技術團隊

出處:https://mp.weixin.qq.com/s/_Wg1R44l456ub_fRaTx2sw