最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

AMP國產(chǎn)化方案-DeepFlow(可觀測性)

2023-08-06 20:25 作者:程序員升職加薪  | 我要投稿

DeepFlow 架構(gòu)

# 1. 軟件架構(gòu)

DeepFlow 由 Agent 和 Server 兩個進(jìn)程組成。每個 K8s 容器節(jié)點、虛擬機(jī)或物理裸機(jī)中運行一個 Agent,負(fù)責(zé)該服務(wù)器上所有應(yīng)用進(jìn)程的 AutoMetrics 和 AutoTracing 數(shù)據(jù)采集。Server 運行在一個 K8s 集群中,提供 Agent 管理、數(shù)據(jù)標(biāo)簽注入、數(shù)據(jù)寫入、數(shù)據(jù)查詢服務(wù)。


DeepFlow 軟件架構(gòu)


# 2. 設(shè)計理念

DeepFlow 名稱來自對 Flow自動化采集能力。網(wǎng)絡(luò)中的 Flow 對應(yīng)一個 TCP/IP 五元組,應(yīng)用中的 Flow 對應(yīng)一個應(yīng)用 Request。DeepFlow 使用 eBPF 等技術(shù)自動獲取任意軟件技術(shù)棧的 Request-scoped 數(shù)據(jù),包括 Raw data 形態(tài)的 Request-scoped events、聚合后形成的 Rquest-scoped metrics、關(guān)聯(lián)后構(gòu)建的 Trace。這些數(shù)據(jù)通常用于繪制原始請求表、服務(wù)調(diào)用拓?fù)?、分布式調(diào)用火焰圖。

除了能夠自動化的獲取 Request-scoped 觀測數(shù)據(jù)之外,DeepFlow 通過 Agent 的開放能力集成大量其他開源 SDK 和 Agent 數(shù)據(jù)源,完整覆蓋可觀測性的 Tracing、Metrics、Logging 三大支柱。DeepFlow 并不是簡單的將這些數(shù)據(jù)納入進(jìn)來,獨有的 AutoTagging 和 SmartEncoding 技術(shù)能夠高性能、自動化的為所有觀測數(shù)據(jù)注入統(tǒng)一的屬性標(biāo)簽,消除數(shù)據(jù)孤島,并釋放數(shù)據(jù)的下鉆切分能力。


DeepFlow 設(shè)計定位


# 3. DeepFlow Agent

DeepFlow Agent 使用 Rust 語言實現(xiàn),有著極致的處理性能和內(nèi)存安全性。

Agent 采集的數(shù)據(jù)包括三類:

  • eBPF 數(shù)據(jù)

    • 基于 eBPF(Linux Kernel 4.14+)的 AutoMetrics 機(jī)制采集任意應(yīng)用 Request 的 RED 性能指標(biāo)

    • 基于 BPF、AF_PACKET(Linux Kernel 2.6+)、winpcap(Windows 2008+)的 AutoMetrics 機(jī)制采集任意應(yīng)用 Request 的 RED 性能指標(biāo)、網(wǎng)絡(luò)吞吐、時延、性能、異常性能指標(biāo)

    • 基于 eBPF(Linux Kernel 4.14+)的 AutoTracing 機(jī)制,分析 Raw Request 數(shù)據(jù)關(guān)聯(lián)性,構(gòu)建分布式調(diào)用鏈

  • 集成的觀測數(shù)據(jù):接收其他開源 Agent、SDK 的觀測數(shù)據(jù)

  • 標(biāo)簽數(shù)據(jù):自動同步 K8s apiserver 和服務(wù)注冊中心中的服務(wù)、實例和 API 屬性信息

Agent 支持運行于各種工作負(fù)載環(huán)境中:

  • 以 Daemonset Pod 形態(tài)運行于 K8s Node 中,采集 Node 中所有 Pod 的數(shù)據(jù)

  • 以進(jìn)程形態(tài)運行于 Linux 服務(wù)器中,采集服務(wù)器中所有進(jìn)程的數(shù)據(jù)

  • 以進(jìn)程形態(tài)運行于 Windows 服務(wù)器中,采集服務(wù)器中所有進(jìn)程的數(shù)據(jù) [1]

  • 以 Sidecar 形態(tài)運行于 Serverless Pod 中,采集 Pod 中所有 Container 的數(shù)據(jù) [1:1]

此外,Agent 支持基于 WASM 向開發(fā)者提供可編程接口 [1:2],用于解析 Agent 尚未識別的應(yīng)用協(xié)議,以及構(gòu)建面向具體場景的業(yè)務(wù)分析能力。

# 4. DeepFlow Server

DeepFlow Server 使用 Golang 實現(xiàn),由 Controller、Labeler、Ingester、Querier 四個模塊組成:

  • Controller:管理 Agent、均衡調(diào)度 Agent 與 Server 的通信關(guān)系、同步采集器發(fā)現(xiàn)的 Tag 數(shù)據(jù)。

  • Labeler:向觀測數(shù)據(jù)中注入統(tǒng)一的屬性標(biāo)簽。

  • Ingester:觀測數(shù)據(jù)存儲,插件化機(jī)制支持替換分析數(shù)據(jù)庫。

  • Querier:觀測數(shù)據(jù)查詢,提供統(tǒng)一的 SQL 接口查詢所有類型的觀測數(shù)據(jù)。

DeepFlow 的關(guān)鍵特性有兩點:

  • AutoTagging:自動為所有觀測數(shù)據(jù)注入統(tǒng)一的屬性標(biāo)簽,消除數(shù)據(jù)孤島問題,并釋放數(shù)據(jù)的下鉆切分能力

  • SmartEncoding:利用分布式的編碼技術(shù),將屬性標(biāo)簽編碼為整形值,在標(biāo)簽注入階段直接注入整形標(biāo)簽,在生產(chǎn)環(huán)境中的實際運行數(shù)據(jù)表明 SmartEncoding 可將標(biāo)簽存儲性能提升一個數(shù)量級。

DeepFlow Server 以 Pod 形態(tài)運行在 K8s 集群中,支持水平擴(kuò)展。Server 集群能夠自動根據(jù) Agent 的數(shù)據(jù)均衡調(diào)度Agent 與 Server 之間的通信關(guān)系。一個 Server 集群可管理多個異構(gòu)資源池中的 Agent,并支持跨 Region 統(tǒng)一管理。


Server 的多集群、多區(qū)域管理能力


DeepFlow 使用的分析數(shù)據(jù)庫是可替換的,目前我們提供 ClickHouse 作為默認(rèn)選項,未來會增加對更多數(shù)據(jù)庫的支持,另外也計劃支持將不同數(shù)據(jù)存儲到不同的數(shù)據(jù)庫中,充分發(fā)揮不同數(shù)據(jù)庫的優(yōu)勢。

DeepFlow 提供統(tǒng)一的 SQL 查詢接口,默認(rèn)提供基于 Grafana 的數(shù)據(jù)能力。開發(fā)者可以選擇通過 Grafana 可視化數(shù)據(jù),也可選擇將DeepFlow 集成到自己的可觀測性平臺中。另外我們也計劃在 SQL 之上開發(fā)主流的 QL 方言,例如 PromQL 等,使得使用者能將數(shù)據(jù)無縫遷移到 DeepFlow。


AMP國產(chǎn)化方案-DeepFlow(可觀測性)的評論 (共 條)

分享到微博請遵守國家法律
中山市| 得荣县| 郁南县| 湄潭县| 治县。| 泰兴市| 偏关县| 三穗县| 罗田县| 峡江县| 敖汉旗| 承德市| 于都县| 壤塘县| 南雄市| 古浪县| 海林市| 全南县| 亚东县| 榆林市| 安平县| 延庆县| 彭泽县| 普兰店市| 睢宁县| 宁陵县| 沅江市| 浦城县| 贵港市| 南昌市| 疏勒县| 海口市| 雅江县| 桑日县| 东光县| 手游| 贺兰县| 商都县| 新民市| 岗巴县| 营口市|