Prometheus 介紹node
Prometheus(普羅米修斯)是一個最初在SoundCloud上構建的監控系統。自2012年成爲社區開源項目,擁有很是活躍的開發人員和用戶社區。爲強調開源及獨立維護,Prometheus於2016年加入雲原生雲計算基金會(CNCF),成爲繼Kubernetes以後的第二個託管項目。git
Prometheus 特色github
做爲新一代的監控框架,Prometheus 具備如下特色:web
一、多維數據模型:由度量名稱和鍵值對標識的時間序列數據api
二、PromSQL:一種靈活的查詢語言,能夠利用多維數據完成複雜的查詢服務器
三、不依賴分佈式存儲,單個服務器節點可直接工做架構
四、基於HTTP的pull方式採集時間序列數據框架
五、推送時間序列數據經過PushGateway組件支持分佈式
六、經過服務發現或靜態配置發現目標網站
七、多種圖形模式及儀表盤支持(grafana)
八、適用於以機器爲中心的監控以及高度動態面向服務架構的監控
Prometheus 組織架構
Prometheus 由多個組件組成,可是其中許多組件是可選的:
這種方式主要用於服務層面的 metrics:
注:大多數 Prometheus 組件都是用 Go 編寫的,所以很容易構建和部署爲靜態的二進制文件。
Prometheus 數據模型
Prometheus將全部數據存儲爲時間序列;具備相同度量名稱以及標籤屬於同一個指標。
每一個時間序列都由度量標準名稱和一組鍵值對(也成爲標籤)惟一標識。
時間序列格式:
<metric name>{<label name>=<label value>, ...}
示例:
api_http_requests_total{method="POST", handler="/messages"}
度量名稱{標籤名=值}值
HELP 說明指標是幹什麼的
TYPE 指標類型,這個數據的指標類型
注:度量名一般是一英文命名清晰。標籤名英文、值推薦英文。
Prometheus 指標類型
• Counter:遞增的計數器
適合:API 接口請求次數,重試次數。
• Gauge:能夠任意變化的數值
適合:cpu變化,相似波浪線不均勻。
• Histogram:對一段時間範圍內數據進行採樣,並對全部數值求和與統計數量、柱狀圖
適合:將web 一段時間進行分組,根據標籤度量名稱,統計這段時間這個度量名稱有多少條。
適合:某個時間對某個度量值,分組,一段時間http相應大小,請求耗時的時間。
• Summary:與Histogram相似
Prometheus 做業和實例
scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node' static_configs: - targets: ['192.168.1.10:9090']