偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一文聊聊監(jiān)控,可觀測性與數(shù)據(jù)存儲(chǔ)

新聞 系統(tǒng)運(yùn)維
對于 DevOps 而言,監(jiān)控是其中重要的一環(huán),上一次的專題內(nèi)容中,我們與大家分享了大型企業(yè)級(jí)監(jiān)控系統(tǒng)的設(shè)計(jì)。

 [[331531]]

對于 DevOps 而言,監(jiān)控是其中重要的一環(huán),上一次的專題內(nèi)容中,我們與大家分享了大型企業(yè)級(jí)監(jiān)控系統(tǒng)的設(shè)計(jì)。今天我們將和大家從另一個(gè)角度進(jìn)一步探討互聯(lián)網(wǎng)工程技術(shù)領(lǐng)域的監(jiān)控設(shè)計(jì)(monitoring):系統(tǒng)的可觀測性(observerbality)。

無論監(jiān)控,還是可觀測性,都是工程界的術(shù)語,并非嚴(yán)格定義的概念。人們可以描述它,但很難定義它。所以本文不會(huì)糾結(jié)于這些名詞之間的區(qū)別。

在實(shí)踐中,所有這些概念/術(shù)語,目標(biāo)都是增強(qiáng)工程師對于線上系統(tǒng)運(yùn)行情況的了解。

對工程師而言,監(jiān)控/可觀測性工程存在的意義,是幫助工程師發(fā)現(xiàn)問題,定位問題,解決問題。

對系統(tǒng)自身而言,這些工作都是通過數(shù)據(jù)的采集/存儲(chǔ)/分析,以及進(jìn)一步迭代來完成。

一、監(jiān)控需求的產(chǎn)生

當(dāng)程序被交付,部署到生產(chǎn)環(huán)境,才是其生命周期中最長的部分的開始。人們需要了解生產(chǎn)環(huán)境是否一切正常,監(jiān)控需求自然而然產(chǎn)生。

互聯(lián)網(wǎng)發(fā)展過程中涌現(xiàn)大量監(jiān)控相關(guān)的工具/系統(tǒng),Ganlia, Zabbix, RRDTools, Graphite,各自在不同的層面為“是否正常”提供答案。

監(jiān)控本身,無論是業(yè)界對監(jiān)控的認(rèn)知,監(jiān)控工具/系統(tǒng)自身的能力,也在以下兩個(gè)方向演進(jìn)著:

  1. 黑盒到白盒
  2. 資源到業(yè)務(wù)

這個(gè)階段監(jiān)控的愿景是很明確的,如何落地則各顯神通。

直到 Etsy 于 2011 年通過博客公開了他們的 監(jiān)控實(shí)踐,利用 StatsD(已開源),以非常簡單統(tǒng)一的方式,實(shí)現(xiàn)資源/業(yè)務(wù)層面的數(shù)據(jù)采集/存儲(chǔ)/分析。后來的監(jiān)控系統(tǒng),尤其是基于 metrics 的監(jiān)控系統(tǒng),大多受過 StatsD 的啟發(fā)和影響。

二、可觀測性的提出

互聯(lián)網(wǎng)工程界,Twitter 應(yīng)該是最早提出可觀測性 的組織。在這系列文章中,Twitter 集中闡述了他們的可觀測性技術(shù)棧,其中包括了 Zipkin,Google Dapper 的開源實(shí)現(xiàn)。

如前言所說,本文不糾結(jié)于幾個(gè)名詞之間的包含關(guān)系。

拋開這些名詞的辯論,可觀測性相對于過去監(jiān)控,最大的變化就是系統(tǒng)需要處理的數(shù)據(jù),從 metrics 為主,擴(kuò)展到了更廣的領(lǐng)域。綜合起來,大約有幾類數(shù)據(jù)被看作是可觀測性的支柱(pillar)

  • metrics
  • logging
  • tracing
  • events

因此,一個(gè)現(xiàn)代化的監(jiān)控系統(tǒng)/可觀測性工程系統(tǒng),也就必須具備妥善存儲(chǔ)以上幾種數(shù)據(jù)的能力。

三、存儲(chǔ)

Metrics

Metrics,通常是數(shù)值類型的時(shí)間序列數(shù)據(jù)。這類需求的存在如此廣泛,以至于衍生了專門服務(wù)于這個(gè)目標(biāo)的數(shù)據(jù)庫子類,時(shí)間序列數(shù)據(jù)庫,TSDB。

TSDB 經(jīng)歷了大約如下幾個(gè)方面的重要演進(jìn)

  • 數(shù)據(jù)模型。描述信息從 metric naming 中剝離出來,形成 tag?,F(xiàn)代的 tsdb 通常都已采用 tag 化的數(shù)據(jù)模型。
  • 數(shù)據(jù)類型。從簡單的數(shù)值記錄,到為不同場景衍生出 gauge, counter, timer 等等更多的數(shù)據(jù)類型
  • 索引結(jié)構(gòu)。索引結(jié)構(gòu)跟數(shù)據(jù)模型密切相關(guān),在 tag 為主的現(xiàn)代 tsdb, 倒排索引已經(jīng)是主流索引結(jié)構(gòu)。
  • 數(shù)據(jù)存儲(chǔ)。從 rrdtool 寫環(huán)形隊(duì)列到文件的時(shí)代,到 OpenTSDB 這樣自行編解碼寫入底層數(shù)據(jù)庫,再到 Facebook 提出的時(shí)序數(shù)據(jù)壓縮算法,通常會(huì)是若干種技術(shù)的綜合使用,并且針對不同的數(shù)據(jù)類型采用不同方案

Metrics 存儲(chǔ),或者是 TSDB 的研究和演進(jìn),我們會(huì)有另外的文章專門介紹。

logging

logging 通常會(huì)是工程師定位生產(chǎn)環(huán)境問題最直接的手段。日志的處理大約在如下幾個(gè)方面進(jìn)行演進(jìn)

  • 集中存儲(chǔ)/檢索。使得工程師免于分別登陸機(jī)器查看日志之苦,日志被統(tǒng)一采集,集中存儲(chǔ)于日志服務(wù),并提供統(tǒng)一的檢索服務(wù)。這個(gè)過程牽扯到例如日志格式統(tǒng)一,解析,結(jié)構(gòu)化等等問題。
  • 日志的監(jiān)控。
  • 原文中的關(guān)鍵字,例如 error, fatal 大概率意味著值得關(guān)注的錯(cuò)誤產(chǎn)生
  • 從日志中提取的 metrics,例如 access log 中攜帶的大量數(shù)據(jù),都可以被提取成有用的信息。至于提取的手段,有的通過客戶端在日志本地進(jìn)行解析,有的在集中存儲(chǔ)過程中進(jìn)行解析。

tracing

隨著互聯(lián)網(wǎng)工程日漸復(fù)雜,尤其是微服務(wù)的風(fēng)潮下,分布式 tracing 通常是理解系統(tǒng),定位系統(tǒng)故障的最重要手段。

在存儲(chǔ)層面,tracing 已經(jīng)有相對明確的方案,無論是 OpenZipkin,還是 CNCF 的 Jaeger ,都提供幾乎開箱即用的后端軟件,其中當(dāng)然包括存儲(chǔ)。

Tracing 的存儲(chǔ)設(shè)計(jì)主要考慮

1. 稀疏數(shù)據(jù):tracing 數(shù)據(jù)通常是稀疏的,這通常有幾個(gè)原因

  • 不同業(yè)務(wù)的 trace 路徑通常不同,也就是 span 不同,因而稀疏
  • 同種業(yè)務(wù)的 trace ,在不同內(nèi)外部條件下,路徑也不同。例如訪問數(shù)據(jù)庫,是否命中緩存,都會(huì)產(chǎn)生不同的 span 鏈
  • 訪問正常/異常的 trace ,產(chǎn)生不同 span

2. 多維度查詢:通常的解決思路

  • 二級(jí)索引:在以 HBase, Cassandra 為基礎(chǔ)的方案中比較常見
  • 引入倒排索引,在二級(jí)索引方案無法滿足全部查詢請求時(shí),可能會(huì)引入 Elasticsearch 輔助索引,提升查詢靈活性

Events

同樣是一個(gè)難以定義,但是很容易描述的術(shù)語。我們把,一次部署,一次配置變更,一次dns 切換,諸如此類的變更,稱為事件。

它們通常意味著生產(chǎn)環(huán)境的變更。而故障,通常因?yàn)椴磺‘?dāng)?shù)淖兏稹?/p>

對 events 的處理主要包括

  • 集中存儲(chǔ):事件種類很多,較難歸納共同的查詢緯度,所以倒排索引在這種無法事先確定查詢緯度的場景下,是非常合適的存儲(chǔ)結(jié)構(gòu)
  • Dashboard:以恰當(dāng)?shù)姆绞?,把事件查?/展示出來。上文提到 Etsy 的博客中,展示了很好的實(shí)踐方法,使得工程師能夠通過 dashboard ,非常輕松確認(rèn)網(wǎng)站登陸失敗,與登錄模塊部署事件之間的關(guān)系。

總結(jié)

現(xiàn)代的監(jiān)控,或者可觀測性工程,通常是對不同類型數(shù)據(jù)的采集/存儲(chǔ)/分析。這些數(shù)據(jù)各有特點(diǎn),因而存儲(chǔ)也不存在銀彈。通常是根據(jù)各自特點(diǎn),獨(dú)立設(shè)計(jì)存儲(chǔ)方案,上層提供一個(gè)統(tǒng)一、綜合的存儲(chǔ)系統(tǒng)。

 

責(zé)任編輯:張燕妮 來源: 高效運(yùn)維
相關(guān)推薦

2022-03-24 17:56:51

數(shù)據(jù)平臺(tái)觀測

2024-01-15 05:55:33

2021-07-23 11:35:49

架構(gòu)運(yùn)維技術(shù)

2021-06-23 10:00:46

eBPFKubernetesLinux

2022-08-16 07:49:48

云原生數(shù)據(jù)庫系統(tǒng)

2023-12-27 06:51:21

可觀測性系統(tǒng)數(shù)字體驗(yàn)

2023-12-26 07:40:34

2023-10-26 08:47:30

云原生數(shù)據(jù)采集

2021-11-19 09:40:50

數(shù)據(jù)技術(shù)實(shí)踐

2024-03-27 14:43:07

.NET Core后端監(jiān)控可觀測性

2023-09-20 11:33:41

服務(wù)網(wǎng)格監(jiān)控報(bào)警

2023-03-09 08:00:22

2023-05-18 22:44:09

2022-08-05 08:22:10

eBPFHTTP項(xiàng)目

2023-10-13 13:40:29

2022-08-30 08:22:14

可觀測性監(jiān)控軟件

2023-01-09 11:23:03

系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)