<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自從上了 Prometheus 監(jiān)控,睡覺真香!

          共 4047字,需瀏覽 9分鐘

           ·

          2021-03-24 11:20


          點(diǎn)擊上方 藍(lán)字 關(guān)注我們!



          Java,Python,C/C++,Linux,PHP,Go,C#,QT,大數(shù)據(jù),算法,軟件教程,前端,簡歷,畢業(yè)設(shè)計(jì)等分類,資源在不斷更新中... 點(diǎn)擊領(lǐng)取

          每天 11 點(diǎn)更新文章,餓了點(diǎn)外賣,點(diǎn)擊 ??《無門檻外賣優(yōu)惠券,每天免費(fèi)領(lǐng)!》

          對(duì)很多人來說,未知、不確定、不在掌控的東西,會(huì)有潛意識(shí)的逃避。

          當(dāng)我第一次接觸 Prometheus 的時(shí)候也有類似的感覺。對(duì)初學(xué)者來說, Prometheus 包含的概念太多了,門檻也太高了。

          概念:Instance、Job、Metric、Metric Name、Metric Label、Metric Value、Metric Type(Counter、Gauge、Histogram、Summary)、DataType(Instant Vector、Range Vector、Scalar、String)、Operator、Function

          馬云說:“雖然阿里巴巴是全球最大的零售平臺(tái),但阿里不是零售公司,是一家數(shù)據(jù)公司”。

          Prometheus 也是一樣,本質(zhì)來說是一個(gè)基于數(shù)據(jù)的監(jiān)控系統(tǒng)。

          日常監(jiān)控

          假設(shè)需要監(jiān)控 WebServerA 每個(gè)API的請(qǐng)求量為例,需要監(jiān)控的維度包括:服務(wù)名(job)、實(shí)例IP(instance)、API名(handler)、方法(method)、返回碼(code)、請(qǐng)求量(value)。

          如果以SQL為例,演示常見的查詢操作:

          查詢 method=put 且 code=200 的請(qǐng)求量(紅框)

          SELECT * from http_requests_total WHERE code=”200” AND method=”put” AND created_at BETWEEN 1495435700 AND 1495435710;

          查詢 handler=prometheus 且 method=post 的請(qǐng)求量(綠框)

          SELECT * from http_requests_total WHERE handler=”prometheus” AND method=”post” AND created_at BETWEEN 1495435700 AND 1495435710;

          查詢 instance=10.59.8.110 且 handler 以 query 開頭 的請(qǐng)求量(綠框)

          SELECT * from http_requests_total WHERE handler=”query” AND instance=”10.59.8.110” AND created_at BETWEEN 1495435700 AND 1495435710;

          通過以上示例可以看出,在常用查詢和統(tǒng)計(jì)方面,日常監(jiān)控多用于根據(jù)監(jiān)控的維度進(jìn)行查詢與時(shí)間進(jìn)行組合查詢。另外,關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):面試,可以獲取我整理的最新Java系列面試題和答案

          如果監(jiān)控100個(gè)服務(wù),平均每個(gè)服務(wù)部署10個(gè)實(shí)例,每個(gè)服務(wù)有20個(gè)API,4個(gè)方法,30秒收集一次數(shù)據(jù),保留60天。那么總數(shù)據(jù)條數(shù)為:100(服務(wù)) 10(實(shí)例) 20(API) 4(方法) 86400(1天秒數(shù))* 60(天) / 30(秒)= 138.24 億條數(shù)據(jù),寫入、存儲(chǔ)、查詢?nèi)绱肆考?jí)的數(shù)據(jù)是不可能在Mysql類的關(guān)系數(shù)據(jù)庫上完成的。

          因此 Prometheus 使用 TSDB 作為 存儲(chǔ)引擎。

          存儲(chǔ)引擎

          TSDB 作為 Prometheus 的存儲(chǔ)引擎完美契合了監(jiān)控?cái)?shù)據(jù)的應(yīng)用場(chǎng)景:

          那么 TSDB 是怎么實(shí)現(xiàn)以上功能的呢?


          "labels": [{
              "latency":        "500"
          }]
          "samples":[{
              "timestamp": 1473305798,
              "value": 0.9
          }]

          原始數(shù)據(jù)分為兩部分 label, samples。前者記錄監(jiān)控的維度(標(biāo)簽:標(biāo)簽值),指標(biāo)名稱和標(biāo)簽的可選鍵值對(duì)唯一確定一條時(shí)間序列(使用 series_id 代表);后者包含包含了時(shí)間戳(timestamp)和指標(biāo)值(value)。

          series
          ^
          │. . . . . . . . . . . .   server{latency="500"}
          │. . . . . . . . . . . .   server{latency="300"}
          │. . . . . . . . . .   .   server{}
          │. . . . . . . . . . . . 
          v
          <-------- time ---------->

          TSDB 使用 timeseries:doc:: 為 key 存儲(chǔ) value。為了加速常見查詢查詢操作:label 和 時(shí)間范圍結(jié)合。

          TSDB 額外構(gòu)建了三種索引:Series, Label Index 和 Time Index。

          以標(biāo)簽 latency 為例:

          Series

          存儲(chǔ)兩部分?jǐn)?shù)據(jù)。一部分是按照字典序的排列的所有標(biāo)簽鍵值對(duì)序列(series);另外一部分是時(shí)間線到數(shù)據(jù)文件的索引,按照時(shí)間窗口切割存儲(chǔ)數(shù)據(jù)塊記錄的具體位置信息,因此在查詢時(shí)可以快速跳過大量非查詢窗口的記錄數(shù)據(jù)

          Label Index

          每對(duì) label 為會(huì)以 index:label: 為 key,存儲(chǔ)該標(biāo)簽所有值的列表,并通過引用指向 Series 該值的起始位置。

          Time Index

          數(shù)據(jù)會(huì)以 index:timeseries:: 為 key,指向?qū)?yīng)時(shí)間段的數(shù)據(jù)文件

          數(shù)據(jù)計(jì)算

          強(qiáng)大的存儲(chǔ)引擎為數(shù)據(jù)計(jì)算提供了完美的助力,使得 Prometheus 與其他監(jiān)控服務(wù)完全不同。

          Prometheus 可以查詢出不同的數(shù)據(jù)序列,然后再加上基礎(chǔ)的運(yùn)算符,以及強(qiáng)大的函數(shù),就可以執(zhí)行 metric series 的矩陣運(yùn)算(見下圖)。

          如此,Promtheus體系的能力不弱于監(jiān)控界的“數(shù)據(jù)倉庫”+“計(jì)算平臺(tái)”。因此,在大數(shù)據(jù)的開始在業(yè)界得到應(yīng)用,就能明白,這就是監(jiān)控未來的方向。

          一次計(jì)算,處處查詢

          當(dāng)然,如此強(qiáng)大的計(jì)算能力,消耗的資源也是挺恐怖的。

          因此,查詢預(yù)計(jì)算結(jié)果通常比每次需要原始表達(dá)式都要快得多,尤其是在儀表盤和告警規(guī)則的適用場(chǎng)景中,儀表盤每次刷新都需要重復(fù)查詢相同的表達(dá)式,告警規(guī)則每次運(yùn)算也是如此。

          因此,Prometheus提供了 Recoding rules,可以預(yù)先計(jì)算經(jīng)常需要或者計(jì)算量大的表達(dá)式,并將其結(jié)果保存為一組新的時(shí)間序列, 達(dá)到一次計(jì)算,多次查詢的目的。

          來源:https://www.cyningsun.com/02-22-2020/hidden-secret-to-understanding-prometheus.html

          往期推薦

          看不見摸不著的算法,究竟有多重要?

          如何寫好注釋,讓同事贊不絕口?

          免費(fèi)領(lǐng)紅包!零門檻!

          驚呆了!一個(gè)程序員的水平能差到什么程度?

          看完文章,餓了點(diǎn)外賣,點(diǎn)擊 ??《無門檻外賣優(yōu)惠券,每天免費(fèi)領(lǐng)!》

          END



          若覺得文章對(duì)你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動(dòng)力。


          長按二維碼,掃掃關(guān)注哦

          ?「C語言中文網(wǎng)」官方公眾號(hào),關(guān)注手機(jī)閱讀教程 ?


          必備編程學(xué)習(xí)資料


          目前收集的資料包括: Java,Python,C/C++,Linux,PHP,go,C#,QT,git/svn,人工智能,大數(shù)據(jù),單片機(jī),算法,小程序,易語言,安卓,ios,PPT,軟件教程,前端,軟件測(cè)試,簡歷,畢業(yè)設(shè)計(jì),公開課 等分類,資源在不斷更新中...


          點(diǎn)擊“閱讀原文”,立即免費(fèi)領(lǐng)取最新資料!
          ??????
          瀏覽 43
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷五月丁香狠狠撸 | 久久xxxx | 欧美日韩性 | 黄色大片网址 | 舔逼吃鸡吧吞精操逼网站 |