日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Prometheus 系统监控方案

發(fā)布時間:2023/12/4 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Prometheus 系统监控方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近一直在折騰時序類型的數(shù)據(jù)庫,經(jīng)過一段時間項目應用,覺得十分不錯。而Prometheus又是剛剛推出不久的開源方案,中文資料較少,所以打算寫一系列應用的實踐過程分享一下。

Prometheus 是什么?

Prometheus是一套開源的監(jiān)控&報警&時間序列數(shù)據(jù)庫的組合,起始是由SoundCloud公司開發(fā)的。隨著發(fā)展,越來越多公司和組織接受采用Prometheus,社會也十分活躍,他們便將它獨立成開源項目,并且有公司來運作。google SRE的書內(nèi)也曾提到跟他們BorgMon監(jiān)控系統(tǒng)相似的實現(xiàn)是Prometheus。現(xiàn)在最常見的Kubernetes容器管理系統(tǒng)中,通常會搭配Prometheus進行監(jiān)控。

Prometheus 的優(yōu)點

  • 非常少的外部依賴,安裝使用超簡單

  • 已經(jīng)有非常多的系統(tǒng)集成 例如:docker HAProxy Nginx JMX等等

  • 服務自動化發(fā)現(xiàn)

  • 直接集成到代碼

  • 設計思想是按照分布式、微服務架構來實現(xiàn)的

Prometheus 的特性

  • 自定義多維度的數(shù)據(jù)模型

  • 非常高效的存儲 平均一個采樣數(shù)據(jù)占 ~3.5 bytes左右,320萬的時間序列,每30秒采樣,保持60天,消耗磁盤大概228G。

  • 強大的查詢語句

  • 輕松實現(xiàn)數(shù)據(jù)可視化

等等

相對于Graphite這種產(chǎn)品,還是有不少優(yōu)點的。最讓我覺得不錯的是非常優(yōu)秀的寫性能和讀取性能,它數(shù)據(jù)結構實現(xiàn)和OpenTSDB是有相似之處,有興趣可以看看這個文檔。解密OpenTSDB的表存儲優(yōu)

Prometheus 的系統(tǒng)架構

它的服務過程是這樣的 Prometheus daemon 負責定時去目標上抓取 metrics(指標) 數(shù)據(jù),每個抓取目標需要暴露一個http服務的接口給它定時抓取。
Prometheus支持通過配置文件、文本文件、zookeeper、Consul、DNS SRV lookup等方式指定抓取目標。
Alertmanager 是獨立于Prometheus的一個組件,可以支持Prometheus的查詢語句,提供十分靈活的報警方式。
Prometheus支持很多方式的圖表可視化,例如十分精美的Grafana,自帶的Promdash,以及自身提供的模版引擎等等,還提供HTTP API的查詢方式,自定義所需要的輸出。
PushGateway這個組件是支持Client主動推送 metrics 到PushGateway,而Prometheus只是定時去Gateway上抓取數(shù)據(jù)。

如果有使用過statsd的用戶,則會覺得這十分相似,只是statsd是直接發(fā)送給服務器端,而Prometheus主要還是靠進程主動去抓取。

Prometheus 的數(shù)據(jù)模型

Prometheus 從根本上所有的存儲都是按時間序列去實現(xiàn)的,相同的 metrics(指標名稱) 和 label(一個或多個標簽) 組成一條時間序列,不同的label表示不同的時間序列。為了支持一些查詢,有時還會臨時產(chǎn)生一些時間序列存儲。

metrics name & label 指標名稱和標簽

每條時間序列是由唯一的 指標名稱 和 一組 標簽 (key=value)的形式組成。
指標名稱 一般是給監(jiān)測對像起一名字,例如?http_requests_total?這樣,它有一些命名規(guī)則,可以包字母數(shù)字_之類的的。
通常是以應用名稱開頭_監(jiān)測對像_數(shù)值類型_單位這樣。
例如:

  • push_total

  • userlogin_mysql_duration_seconds

  • app_memory_usage_bytes

  • 標簽 就是對一條時間序列不同維度的識別了,例如 一個http請求用的是POST還是GET,它的endpoint是什么,這時候就要用標簽去標記了。
    最終形成的標識便是這樣了

    http_requests_total{method="POST",endpoint="/api/tracks"}

    記住,針對http_requests_total這個metrics name 無論是增加標簽還是刪除標簽都會形成一條新的時間序列。
    查詢語句就可以跟據(jù)上面標簽的組合來查詢聚合結果了。
    如果以傳統(tǒng)數(shù)據(jù)庫的理解來看這條語句,則可以考慮 http_requests_total是表名,標簽是字段,而timestamp是主鍵,還有一個float64字段是值了。(Prometheus里面所有值都是按float64存儲)

    Prometheus 的四種數(shù)據(jù)類型

    Counter

    • Counter 用于累計值,例如 記錄 請求次數(shù)、任務完成數(shù)、錯誤發(fā)生次數(shù)。

    • 一直增加,不會減少。

    • 重啟進程后,會被重置。

    例如:http_response_total{method="GET",endpoint="/api/tracks"} 100
    10秒后抓取 http_response_total{method="GET",endpoint="/api/tracks"} 100

    Gauge

    • Gauge 常規(guī)數(shù)值,例如 溫度變化、內(nèi)存使用變化。

    • 可變大,可變小。

    • 重啟進程后,會被重置

    例如: memory_usage_bytes{host="master-01"} 100 < 抓取值
    memory_usage_bytes{host="master-01"} 30
    memory_usage_bytes{host="master-01"} 50
    memory_usage_bytes{host="master-01"} 80 < 抓取值

    Histogram

    • Histogram 可以理解為柱狀圖的意思,常用于跟蹤事件發(fā)生的規(guī)模,例如:請求耗時、響應大小。它特別之處是可以對記錄的內(nèi)容進行分組,提供 count 和 sum 全部值的功能。

      例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值

    Summary

    • Summary和Histogram十分相似,常用于跟蹤事件發(fā)生的規(guī)模,例如:請求耗時、響應大小。同樣提供 count 和 sum 全部值的功能。

    • 例如:count=7次,sum=7次的值求值

    • 它提供一個quantiles的功能,可以按%比劃分跟蹤的結果。例如:quantile取值0.95,表示取采樣值里面的95%數(shù)據(jù)。


    原文地址: http://www.cnblogs.com/vovlie/p/Prometheus_CONCEPTS.html


    .NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結

    以上是生活随笔為你收集整理的Prometheus 系统监控方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。