“随着雲原生技術的蓬勃發展,可觀測性已成為現代應用程式開發、部署和維護的核心要素之一。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